ClickHouse DDL
[TOC]
ClickHouse DDL
IDEA 连接 Clickhouse 问题解决方案:
驱动可能不能正常下载:选择手动本地添加
LZ4 压缩算法不支持报错:修改
Data Source & Drivers => Advanced => compress_algorithm => 从 lz4 修改为 gzip
create database
1 |
|
create table
MergeTree(8192)
简单类型简单表
1 |
|
简单类型分区表
1 |
|
![]()
特殊:
1、primary key 并不唯一,👉可选,主键创建稀疏索引
2、分区👉可选
- 分文件夹避免全表扫描
- 以分区定并行度
- 批量写入临时分区,15分钟左右定期自动合并
可 optimize table TABLE_NAME final 触发全表合并
或 optimize table TABLE_NAME partition ‘PARTITION_VALUE’ final 触发单分区合并3、排序必须 👍
- 非分区表,默认全局单一分区
- 排序确定了分区内数据的排列顺序
- 去重的依据
- 若表有主键,排序必须以主键作为最前缀
![]()
复杂类型简单表
1 |
|
AggregatingMergeTree
聚合字段聚合引擎表
1 |
|

CollapsingMergeTree
以增代删的思路,支持行级数据修改和删除的表引擎
1 |
|
Index 二级索引
1 |
|
TTL 超时设置
表生命周期
字段级生命周期
必须日期(Date,Datetime 不能是 Datetime64)字段且【非主键】字段
需要等待自动合并或手动触发合并,会自动开启合并任务
1 |
|


ReplacingMergeTree
核心:去重
契机:合并时才会去重
范围:分区表只会在分区内去重,不能跨分区
案例
ReplacingMergeTree(create_time)
create_time 为版本字段,重复时保留版本字段最大值,若字段值相同按先后顺序保留后者
若版本字段缺省,则按照插入的先后顺序,保留最后一条
同分区按照 order by 之后的字段【列表】识别去重
注意:新版 clickhouse 插入时会在同分区内执行一次去重
1 |
|
SummingMergeTree
汇总求和
分区内,分片合并时,执行预聚合
按照 order by 之后的字段【列表】进行分组后预聚合
需要指定合并字段,且合并字段必须为数值类型
若未指定合并字段,将会为非 order by 字段列表之外的所有数值字段执行聚合
案例
1 |
|
Kafka
案例 CSV
1 |
|
kafka_format
格式 | 输入 | 输出 |
---|---|---|
[TabSeparated] | ✔ | ✔ |
[TabSeparatedRaw] | ✔ | ✔ |
[TabSeparatedWithNames] | ✔ | ✔ |
[TabSeparatedWithNamesAndTypes] | ✔ | ✔ |
[Template] | ✔ | ✔ |
[TemplateIgnoreSpaces] | ✔ | ✗ |
[CSV] | ✔ | ✔ |
[CSVWithNames] | ✔ | ✔ |
[CustomSeparated] | ✔ | ✔ |
[Values] | ✔ | ✔ |
[Vertical] | ✗ | ✔ |
[JSON] | ✗ | ✔ |
[JSONAsString] | ✔ | ✗ |
[JSONStrings] | ✗ | ✔ |
[JSONCompact] | ✗ | ✔ |
[JSONCompactStrings] | ✗ | ✔ |
[JSONEachRow] | ✔ | ✔ |
[JSONEachRowWithProgress] | ✗ | ✔ |
[JSONStringsEachRow] | ✔ | ✔ |
[JSONStringsEachRowWithProgress] | ✗ | ✔ |
[JSONCompactEachRow] | ✔ | ✔ |
[JSONCompactEachRowWithNamesAndTypes] | ✔ | ✔ |
[JSONCompactStringsEachRow] | ✔ | ✔ |
[JSONCompactStringsEachRowWithNamesAndTypes] | ✔ | ✔ |
[TSKV] | ✔ | ✔ |
[Pretty] | ✗ | ✔ |
[PrettyCompact] | ✗ | ✔ |
[PrettyCompactMonoBlock] | ✗ | ✔ |
[PrettyNoEscapes] | ✗ | ✔ |
[PrettySpace] | ✗ | ✔ |
[Protobuf] | ✔ | ✔ |
[ProtobufSingle] | ✔ | ✔ |
[Avro] | ✔ | ✔ |
[AvroConfluent] | ✔ | ✗ |
[Parquet] | ✔ | ✔ |
[Arrow] | ✔ | ✔ |
[ArrowStream] | ✔ | ✔ |
[ORC] | ✔ | ✔ |
[RowBinary] | ✔ | ✔ |
[RowBinaryWithNamesAndTypes] | ✔ | ✔ |
[Native] | ✔ | ✔ |
[Null] | ✗ | ✔ |
[XML] | ✗ | ✔ |
[CapnProto] | ✔ | ✗ |
[LineAsString] | ✔ | ✗ |
[Regexp] | ✔ | ✗ |
[RawBLOB] | ✔ | ✔ |
ClickHouse DDL
https://leaf-domain.gitee.io/2025/03/22/databases/clickhouse/clickhouse_3_ddl/