Clickhouse配置多级存储实现低成本扩充容量

经过接近7个月的测试, 目前两级存储中共有5.1亿条数据, 总数据量约230GB. SSD中热数据量约为10%

背景: 因为SSD存储太贵, 而且一般只有最近14天的数据需要经常查询, 因此把14天外的数据送到HDD里保存节约成本.

  1. 需要新增存储配置文件 storage.xml 其中 cold_disk 为HDD存储配置, cold_volume为HDD存储策略
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<clickhouse>
<storage_configuration>
<disks>
<default>
</default>
<cold_disk>
<path>/var/lib/clickhouse-hdd/</path>
</cold_disk>
</disks>
<policies>
<default>
<volumes>
<default>
<disk>default</disk>
</default>
<cold_volume>
<disk>cold_disk</disk>
</cold_volume>
</volumes>
</default>
</policies>
</storage_configuration>
</clickhouse>
  1. 给数据表添加TTL策略, 默认去default, 15天以上的去cold_volume
1
alter table database_name.table_name modify TTL create_time TO VOLUME 'default', create_time + INTERVAL 15 DAY TO VOLUME 'cold_volume'
  1. 刷新TTL策略, 强制冷数据移动
1
alter table database_name.table_name materialize ttl

参考资料

ClickHouse 单机docker多盘搭建教程

Amplifying ClickHouse Capacity with Multi-Volume Storage (Part 1)

Amplifying ClickHouse Capacity with Multi-Volume Storage (Part 2)

Putting Things Where They Belong Using New TTL Moves 中文翻译,但是水平一般: 【ClickHouse 技术系列】- 使用新的 TTL move,将数据存储在合适的地方

Manage Data with TTL (Time-to-live)