关于ClickHouse的SQL操作

news/2025/3/14 18:17:02/

目录

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';

http://www.ppmy.cn/news/1119616.html

相关文章

NSS [HNCTF 2022 Week1]Interesting_http

NSS [HNCTF 2022 Week1]Interesting_http POST:wantflagCookies:useradminX-Forwarded-For:127.0.0.1

c++ QT 十八位时间戳转换

先说一下UTC: 它是协调世界时间,又称世界统一时间、世界标准时间、国际协调时间,简称UTC UTC时间与本地时间关系:UTC 时间差本地时间 如果UTC时间是 2015-05-01 00:00:00 那么北京时间就是 2015-05-01 08:00:00 解释:…

智能热水器丨打造智能家居新体验

随着科学技术的不断发展,智能电器越来越被大众所采纳,如智能扫地机,智能洗衣机,智能微波炉等等,越来越智能的电器为人们的生活带来了许多便利。以往的热水器一般都是只有按键/机械的控制方式,没有其他无线控…

蓝桥杯每日一题2023.9.12

3491. 完全平方数 - AcWing题库 题目描述 分析 完全平方数的一个特点: 所有的质因子的个数为偶数。eg1.9的质因子为3,3的个数为2,得到了9(3*39) eg2.81的质因子为3,3的个数为4,得到81&#…

JeecgBoot v3.5.5 版本发布,性能大升级版本—开源免费的低代码开发平台

项目介绍 JeecgBoot是一款企业级的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue3,Mybatis-plus,Shiro,JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领…

基于SpringBoot的在线商城系统设计与实现

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 商品分类管理 商品信息管理 轮播图管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储&#xff…

使用GSAP创建惊艳的动画效果(一)

目录 GSAP简介GSAP的语法方法目标变量transform(变换)其它属性 vue中使用GSAP安装GSAP引用GSAP使用GSAP GSAP简介 GSAP是一个非常流行的js动画库,被广泛用于创建跨浏览器和跨平台的高性能动画。它的主要特点包括: 提供丰富的属性和方法,可用…

Video Caption / 视频字幕:常用指标(BELU-4,ROUGE-L,METEOR,CIDEr,SPICE)和数据集总结

本文作为入门Video Caption / 视频字幕 的随笔记录,用于查漏补缺和回顾,难免有疏漏和不足指出,烦请指出! 一、指标 Video Caption / 视频字幕常用的标准指标有四种:BLEU-1[1],BLEU-2[1],BLEU-3[1],BLEU-4[1],ROUGE-L[2],METEOR[3],CIDEr[4],SPICE[5],这些指标在论…