ClickHouse基础知识(五):ClickHouse的SQL 操作

基本上来说传统关系型数据库(以 MySQL 为例)的 SQL 语句,ClickHouse 基本都支持, 这里不会从头讲解 SQL 语法只介绍 ClickHouse 与标准 SQL(MySQL)不一致的地方。

1. Insert 基本与标准

SQL(MySQL)基本一致

(1)标准

insert into [table_name] values(…),(….)  

(2)从表到表的插入

 insert into [table_name] select a,b,c from [table_name_2]

2. Update 和 Delete

ClickHouse 提供了 Delete 和 Update 的能力,这类操作被称为 Mutation 查询,它可以看 做 Alter 的一种。

虽然可以实现修改和删除,但是和一般的 OLTP 数据库不一样,Mutation 语句是一种很 “重”的操作,而且不支持事务

“重”的原因主要是每次修改或者删除都会导致放弃目标数据的原有分区,重建新分区。 所以尽量做批量的变更,不要进行频繁小数据的操作。

(1)删除操作

alter table t_order_smt delete where sku_id ='sku_001'; 

(2)修改操作

alter table t_order_smt update total_amount=toDecimal32(2000.00,2) where id  =102;

由于操作比较“重”,所以 Mutation 语句分两步执行,同步执行的部分其实只是进行 新增数据新增分区和并把旧分区打上逻辑上的失效标记。直到触发分区合并的时候,才会删 除旧数据释放磁盘空间,一般不会开放这样的功能给用户,由管理员完成。

3. 查询操作

ClickHouse 基本上与标准 SQL 差别不大

➢ 支持子查询

➢ 支持 CTE(Common Table Expression 公用表表达式 with 子句)

➢ 支持各种 JOIN,但是 JOIN 操作无法使用缓存,所以即使是两次相同的 JOIN 语句, ClickHouse 也会视为两条新 SQL

窗口函数(官方正在测试中...)

➢ 不支持自定义函数

➢ GROUP BY 操作增加了 with rollup\with cube\with total 用来计算小计和总计。

(1)插入数据

hadoop102 :) alter table t_order_mt delete where 1=1;
insert into t_order_mt values
(101,'sku_001',1000.00,'2020-06-01 12:00:00'),
(101,'sku_002',2000.00,'2020-06-01 12:00:00'),
(103,'sku_004',2500.00,'2020-06-01 12:00:00'),
(104,'sku_002',2000.00,'2020-06-01 12:00:00'),
(105,'sku_003',600.00,'2020-06-02 12:00:00'),
(106,'sku_001',1000.00,'2020-06-04 12:00:00'),
(107,'sku_002',2000.00,'2020-06-04 12:00:00'),
(108,'sku_004',2500.00,'2020-06-04 12:00:00'),
(109,'sku_002',2000.00,'2020-06-04 12:00:00'),
(110,'sku_003',600.00,'2020-06-01 12:00:00');

(2)with rollup:从右至左去掉维度进行小计

hadoop102 :) select id , sku_id,sum(total_amount) from t_order_mt group by id,sku_id with rollup;

(3)with cube : 从右至左去掉维度进行小计,再从左至右去掉维度进行小计

hadoop102 :) select id , sku_id,sum(total_amount) from t_order_mt group by  id,sku_id with cube;

(4)with totals: 只计算合计

hadoop102 :) select id , sku_id,sum(total_amount) from t_order_mt group by  id,sku_id with totals;

4. alter 操作

同 MySQL 的修改字段基本一致

1)新增字段

alter table tableName add column newcolname String after col1; 

2)修改字段类型

 alter table tableName modify column newcolname String; 

3)删除字段

alter table tableName drop column newcolname;

5. 导出数据

 clickhouse-client --query "select * from t_order_mt where  create_time='2020-06-01 12:00:00'" --format CSVWithNames>  /opt/module/data/rs1.csv

更多支持格式参照:

Input and Output Formats | ClickHouse Documentation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/583707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windTerm 连接一段时间之后自动断开

默认是关闭会话空闲保活功能的,如所连接的SSH服务没做连接保活, 就很可能超时自动断开 开启会话保活 在 会话 -> 首选项 -> Default Session Settings -> SSH -> 连接 -> 发送空包以保持会话活动 设置15,即15秒自动发空包保…

kafka 有几种数据保留的策略?

kafka 有几种数据保留的策略? 在 Apache Kafka 中,有几种数据保留策略用于定义消息保存的时长和数据保留的规则。这些策略主要影响 Kafka 中的 Topic。 以下是 Kafka 中常见的数据保留策略: 保留时间策略(retention.ms&#xff…

【JAVA核心知识】分布式事务框架Seata

Seata 基本信息 GitHub:https://github.com/seata/seatastars: 20.6k 最新版本: v1.6.1 Dec 22, 2022 官方文档:http://seata.io/zh-cn/index.html 注意 官方仅仅支持同步调用。 官方在FAQ中表示对于异步框架需要自行支持。 具体的扩展思…

2012年第一届数学建模国际赛小美赛B题大规模灭绝尚未到来解题全过程文档及程序

2012年第一届数学建模国际赛小美赛 B题 大规模灭绝尚未到来 原题再现: 亚马逊是地球上现存最大的雨林,比地球上任何地方都有更多的野生动物。它位于南美洲大陆的北侧,共有9个国家:巴西、玻利维亚、厄瓜多尔、秘鲁、哥伦比亚、委…

C# ASP.NET 实验室 检验中心 医疗LIS源码

LIS系统能够自动处理大量的医学数据,包括样本采集、样本处理、检测分析、报告生成等。它能够快速、准确地进行化验检测,提高医院的运营效率。LIS系统还提供了丰富的数据分析功能,能够对医院化验室的业务流程进行全面、细致的监控。 LIS系统优…

年终回顾与展望:CSDN成就之路,2023年AI浪潮展望及2024 Flag

文章目录 2023年在CSDN获得的肯定1,入围2023博客之星2,《有哪些让你目瞪口呆的Bug?》征文获得TOP33,通过创作者身份认证4,多篇文章被城市开发者社区收录5,多篇文章进入全站综合热榜6,积极参与社…

060:vue中markdown编辑器mavon-editor的应用示例

第060个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

1.2 金融数据处理

跳转到根目录:知行合一:投资篇 已完成: 1.1 编程基础   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas 1.2 金融数据处理 文章目录 1. 股市数据获取1.1. 使用qstock获取股票数据1.2. tushare1.3. python爬虫1.4. akshare 2. …

2023.12.28每日一题

LeetCode每日一题 2735.收集巧克力 2735. 收集巧克力 - 力扣(LeetCode) 介绍 看题目看不懂,在评论区看到一个大哥解释,瞬间明白了。 一张桌子上有n件商品围成一圈,每件都有一个价签,它们构成数组nums。…

磁盘管理 :逻辑卷、磁盘配额

一 LVM可操作的对象:①完成的磁盘 ②完整的分区 PV 物理卷 VG 卷组 LV 逻辑卷 二 LVM逻辑卷管理的命令 三 建立LVM逻辑卷管理 虚拟设置-->一致下一步就行-->确认 echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- -…

23种设计模式学习

设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合…

多功能演示工具ProVideoPlayer2 mac特色介绍

ProVideoPlayer2 mac是用于大多数任何生产的首选多功能演示工具。ProVideoPlayer 2是一种动态视频播放和处理媒体服务器,可将视频映射(包括播放和实时视频输入)实时控制到一个或多个输出。包括实时效果,调度,网络同步和…

【笔试强训】Day1_贪心算法_组队竞赛

题目链接:牛客_组队竞赛 目录 题目解析 代码书写 知识补充 题目解析 题目让我们求所有队伍的水平值总和最大 由题可得: 队伍的水平值等于该队伍队员中第二高水平值; 随机给定3*n个数,需要自己组队并且得出队伍水平最大值; 我…

geemap学习笔记037:分析地理空间数据--坐标格网和渔网

前言 坐标格网(Coordinate Grid)简称“坐标网”,是按一定纵横坐标间距,在地图上划分的格网,坐标网是任何地图上不可缺少的要素之一。下面将详细介绍一下坐标格网和渔网。 1 导入库并显示地图 import ee import geem…

vue黑马之小兔鲜首页组件案例

素材领取:点我领取素材 提取码:1024 页面开发思路: 1.分析页面,按模块拆分组件,搭架子 (局部或全局注册) 2.根据设计图,编写组件html 结构 css 样式(已准备好) 3.拆分封装通用小组件 (局部或全局注册将来&…

react 之 美团案例

1.案例展示 2.环境搭建 克隆项目到本地(内置了基础静态组件和模版) git clone http://git.itcast.cn/heimaqianduan/redux-meituan.git 安装所有依赖 npm i 启动mock服务(内置了json-server) npm run serve 启动前端服务 npm…

mp4视频转rosbag文件(图片压缩格式)

目录 目的 环境 主要步骤 创建py文件 执行py文件 效果 程序解释 后续调整 目的 将相机录制的mp4格式文件,转为ROS系统能使用的bag格式文件。 环境 安装有ROS和python2 主要步骤 创建py文件 新建python文件Video2ROSbag.py #this is ok # -*- coding: …

零代码也能玩出花:Mugeda在H5设计中的魔法力量

文章目录 一、Mugeda零代码可视化H5设计工具简介二、Mugeda零代码可视化H5设计实战案例1. 注册并登录Mugeda账号2. 选择模板3. 编辑页面内容4. 添加动画效果5. 预览和发布 三、Mugeda零代码可视化H5设计的优势《Mugeda零代码可视化H5设计实战》内容简介作者简介目录前言/序言 随…

C练习——一元二次方程求解

题目:编程计算并输出一元二次方程ax bxc0的两个根 解析:先判断delta与0的关系, 若delta>0,则有两个不同的实根,利用求根公式( -b 土 √b^2 -4*a*c)/2*a ; 若delta0,则有两个相同的实根,则根为x1 x2 …

Docker本地部署开源浏览器Firefox并远程访问进行测试

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…