关于ClickHouse的SQL操作

2023-09-21 22:45:21

目录

clickhouse 和 mysql 的比较

5.1 create 

5.2  Insert

   1.标准 INSERT

     2.从表到表的插入

5.3 Update 和 Delete

   1.删除操作

    2.修改操作


clickhouse 和 mysql 的比较

共同点:

  • 都是关系型数据库,支持SQL查询语言;
  • 支持事务处理,具备 ACID 特性(原子性、一致性、隔离性、持久性);
  • 可以使用索引来提高查询效率;
  • 支持备份和恢复数据。

优点:

ClickHouse:

  • 面向列的存储模式,在 OLAP 场景下查询速度更快;
  • 支持高并发和大规模数据的处理;
  • 可以快速地处理复杂的数据分析和聚合操作;
  • 支持分布式部署。

MySQL:

  • 支持 OLTP 场景下的高并发,适用于在线事务处理;
  • 支持多种存储引擎,可以根据不同场景选择不同的存储引擎;
  • 支持主从复制和集群部署;
  • 有丰富的社区支持,应用广泛

5.1 create 

在 ClickHouse 中创建表的 SQL 语句与 MySQL 类似,但是需要指定引擎类型,例如,使用 MergeTree 引擎存储数据:

CREATE TABLE example_table (
    column1 String,
    column2 Int32,
    column3 Float64
) ENGINE = MergeTree()
PARTITION BY toYYYYMMDD(column3)
ORDER BY (column1, column2);

解释:

  • example_table 是表名;
  • column1column2column3 是表中的列名;
  • StringInt32Float64 是列的数据类型;
  • ENGINE 指定了使用 MergeTree 引擎存储数据(还有TinyLog 和 memory
  • PARTITION BY 根据日期分区,partition key 为 column3;
  • ORDER BY 指定了排序规则,按照 column1 和 column2 排序。

5.2  Insert

ClickHouse 的 INSERT 语法和 MySQL 基本一致

   1.标准 INSERT

INSERT INTO example_table(column1, column2, column3)
VALUES ('value1', 123, 1.23), ('value2', 456, 4.56);

    解释:

  • example_table 是要插入数据的表名;
  • column1column2column3 是表中的列名;
  • VALUES 后跟着要插入的数据,多条数据用逗号分隔2

     2.从表到表的插入

INSERT INTO example_table(column1, column2, column3)
SELECT column_a, column_b, column_c FROM example_table_2;

解释:

  • example_table 是要插入数据的表名;
  • column1column2column3 是表中的列名;
  • SELECT 子句用于选取要插入的数据,从 example_table_2 表中选取 column_acolumn_bcolumn_c 这三个列。

注意,使用 INSERT INTO 语句插入数据时,数据会先缓存在内存中,并不是立即写入磁盘,需要手动执行 optimize table  或等待后台自动执行。

5.3 Update Delete

在 ClickHouse 中,Mutation 查询包括 Delete 和 Update 两种操作,并且不支持事务。Mutation 查询会导致目标数据的原有分区被放弃,重建新分区,因此最好进行批量的变更,避免频繁小数据的操作。

以下是 Delete 和 Update 的示例 SQL 语句:

   1.删除操作

ALTER TABLE t_order_smt DELETE WHERE sku_id = 'sku_001';

解释:

  • t_order_smt 是要删除数据的表名;
  • sku_id = 'sku_001' 为删除的过滤条件。

    2.修改操作

ALTER TABLE t_order_smt UPDATE total_amount = toDecimal32(2000.00, 2) WHERE id = 102;

解释:

  • t_order_smt 是要修改数据的表名;
  • total_amount = toDecimal32(2000.00, 2) 为修改的内容;
  • id = 102 为修改的过滤条件。

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

示例:

-- 创建表 t_order_smt 并插入数据
CREATE TABLE t_order_smt
(
  id UInt32,
  sku_id String,
  total_amount Float32
)
ENGINE = MergeTree
PARTITION BY id
ORDER BY (id, sku_id);

INSERT INTO t_order_smt VALUES (101, 'sku_001', 1000.00), (102, 'sku_002', 1500.00);

-- 修改 id 为 102 的 total_amount
ALTER TABLE t_order_smt UPDATE total_amount = toDecimal32(2000.00, 2) WHERE id = 102;

-- 删除 sku_id 为 'sku_001' 的数据
ALTER TABLE t_order_smt DELETE WHERE sku_id = 'sku_001';
更多推荐

unordered_set和unordered_map的封装

目录一、前言二、容器的使用1、unordered_map2、unordered_set​编辑三、哈希表的改造1、结点2、哈希表的迭代器*构造函数*重载**重载->*重载++*重载!=和==3、哈希表的析构4、unordered_map的[]实现5、修改后的哈希表四、unordered_set的实现五、unordered

NSS [NISACTF 2022]is secret

NSS[NISACTF2022]issecret原题是[CISCN2019_华东南赛区]Double_Secret开题蒙蔽。猜测是/secret路由,猜对了。GET提交参数?secret=1,这里应该是一个注入点。看了一下network,后端语言是python2,不确定是哪种漏洞,所有想到的都测一遍,最后在测SSTI时

【2023年11月第四版教材】第14章《沟通管理》(第二部分)

第14章《沟通管理》(第二部分)4规划沟通管理4.1规划沟通管理4.2沟通技术4.3沟通模型4.4沟通方法★★★(22下案例)4.5人际关系与团队技能4.6沟通管理计划★★★(18下44)(13上论文)(22下案例)5管理沟通5.1管理沟通5.2沟通技能5.3人际关系与团队技能6监督沟通6.1监督沟通★★★6.2人际关

Tomcat架构设计及组件详解

继Tomcat配置详解(Tomcat配置server.xml详解)Tomcat配置详解(Tomcat配置server.xml详解)_tomcatxml配置https://blog.csdn.net/imwucx/article/details/132166738文章之后,深入的学习tomcat相关知识,对Tomcat的

自动驾驶中的决策规划

参考:【干货篇】轻舟智航:自动驾驶中的决策规划技术(附视频回放+PPT下载)-AIQ如图所示,各模块介绍定位模块主要负责解答的问题是“车现在在哪里”,是在道路上还是在路口,是在高架桥上还是在停车场里。感知模块则负责解答“车周围有什么”这个问题。预测模块,预测模块主要解答“周围的车现在想干什么”,比如前面的车要cutin

全流程HEC-RAS 1D/2D水动力与水环境模拟丨恒定流模型(1D/2D)、一维非恒定流、二维非恒定流模型、HEC-RAS水质模型

目录​专题一​水动力模型基础专题二恒定流模型(1D/2D)专题三一维非恒定流专题四二维非恒定流模型(一)专题五二维非恒定流模型(二)专题六HEC-RAS的水质模型专题七高级主题更多应用水动力与水环境模型的数值模拟是实现水资源规划、环境影响分析、防洪规划以及未来气候变化下预测和分析的主要手段。然而,一方面水动力和水环境模

3D点云目标检测:Centerformer训练waymo数据集

一、环境准备项目地址:centerformer1.0、基础环境python==3.8.0torch==1.9.1+cu111waymo-open-dataset-tf-2-6-0==1.4.9spconv==1.2.1其余按照requirement.txt里安装就行pipinstall-ihttps://pypi.tu

用微服务平台框架,实现高效的流程化办公!

想要实现流程化办公,可以用什么样的软件平台实现?随着市场竞争越来越激烈,很多企业会采用低代码技术平台实现高效管理企业的内部资源,从而减少很多繁琐工作和时间,实现提质增效的目的。流辰信息助力大家采用微服务平台框架低代码技术平台打破信息孤岛,创造高效办公。低代码的便捷性和灵活性就不言而喻了,它在企业的发展过程中扮演了非常重

K8S-存储卷,pv,pvc

pv,pvc一、emptyDir存储卷1.概述2.示例二、hostPath存储卷1.概述三、nfs共享存储卷1.在stor01节点上安装nfs,并配置nfs服务2.master节点操作3.在nfs服务器上创建index.html4.master节点操作四、PVC和PV1.概述2.PV和PVC之间的相互作用遵循的生命周期

Java高级: 反射

目录反射反射概述反射获取类的字节码反射获取类的构造器反射获取构造器的作用反射获取成员变量&使用反射获取成员方法反射获取成员方法的作用反射的应用案例接下来我们学习的反射、动态代理、注解等知识点,在以后开发中极少用到,这些技术都是以后学习框架、或者做框架的底层源码。讲这些技术的目的,是为了以后我们理解框架、或者自己开发框架

网络安全(黑客)自学

前言我是去年8月22日才正式学习网络安全的,因为在国营单位工作了4年,在广东一个月工资只有5000块,而且看不到任何晋升的希望,如果想要往上走,那背后就一定要有关系才行。而且国营单位的气氛是你干的多了,领导觉得你有野心,你干的不多,领导却觉得你这个人不错。我才24周岁,实在的受不了这种工作氛围,情绪已经压制了很多久,一

热文推荐