Step 4:为索引设置生命周期策略 。创建完生命周期策略之后,用户需要把这个策略应用到索引上,也就是要为索引去设置刚刚创建好的策略 。用户可以通过索引模板的方式,可以在 Kibana 里创建索引模板,也可以通过 index.lifycycle.name,显式通过 API 配置 。
这里有几个小提示:
Tip 1:Warm 或 Cold 节点的副本数(replica)可以设置为 1 。所有数据本质上都是放在 JuiceFS 上,它的底层是对象存储,因而数据的可靠性已经足够高了,所以在 ES 这边可以适当降低副本数,节省存储空间 。

文章插图
Tip 2:开启 Force merge 可能会导致节点 CPU 持续占用,酌情关闭 。从热数据转移到温数据这个阶段时,ES 会将所有热数据索引对应的底层 segment 做合并 。如果开启 Force merge 这个功能,ES 会先合并完这些 segment 以后,再把它存储到温数据的底层系统 。然而合并 segment 是一个非常消耗 CPU 的过程,如果温数据的数据节点同时也需要承载一些查询请求,可以酌情关闭这个功能能,也就是原封不动地把数据保留下来,直接写到底层存储中 。
Tip 3:Warm 或 Cold 阶段的索引可以设置为只读 。在给温数据和冷数据阶段建立索引时,我们基本上可以认为这些数据是只读的,这些阶段的索引不会被修改 。设置为只读可以适当降低温冷数据节点上的资源,比如内存可以释放一些,从而节省一些在温节点或者冷节点上的硬件资源 。
05- 实操:ClickHouse + JuiceFSStep 1:在所有 ClickHouse 节点上挂载 JuiceFS 文件系统 。这个路径可以是任意路径,因为 ClickHouse 会有一个配置文件去指向挂载点 。
Step 2:修改 ClickHouse 配置,新增 JuiceFS 盘 。在 ClickHouse 中把刚刚挂载好的 JuiceFS 文件系统挂载点添加进来,让 ClickHouse 可以识别这个新磁盘 。
Step 3:新增存储策略,设定下沉数据规则 。这个存储策略会根据用户的规则去不定期的、自动地将数据从默认磁盘上下沉到指定的,比如 JuiceFS 中 。
Step 4:为特定表设置存储策略及 TTL 。存储策略制定好之后,需要把这个策略应用到某一个表上 。前期测试阶段和验证阶段,可以把用相对大一点的表去做测试和验证,如果用户希望基于时间维度来实现数据下沉,就同时也需要在表上设置 TTL 。整个下沉过程是一个自动的机制,可以通过 ClickHouse 的 system 表查看当前正在进行数据迁移的 part 以及迁移进度 。
Step 5:手动移动 part 进行验证 。可以通过手动执行
MOVE PARTITION
命令的方式去验证当前的配置或存储策略是否生效 。下图是一个具体示例,在 ClickHouse 中有一个叫做
storage_configuration
的配置项,其中包含 disks 配置,这里会把 JuiceFS 作为一个盘加进来,我们将它命名为“jfs”,但其实可以用任意名字,挂载点是 /jfs
目录 。<storage_configuration> <disks> <jfs> <path>/jfs</path> </jfs> </disks> <policies> <hot_and_cold> <volumes> <hot> <disk>default</disk> <max_data_part_size_bytes>1073741824</max_data_part_size_bytes> </hot> <cold> <disk>jfs</disk> </cold> </volumes> <move_factor>0.1</move_factor> </hot_and_cold> </policies></storage_configuration>
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 花园蚊子多有什么办法
- 2023年10月21日打官司行吗 2023年10月21日适合打官司吗
- 2023年10月21日进货行吗 2023年10月21日进货好吗
- 合欢花花语
- 华为怎么在手机桌面上创建文件夹
- 嘀嗒出租车怎么注册
- 拯救者Y7000P独显模式和混合模式对比
- 爬蚱几点到几点最多
- 小腹胖是什么原因
- 锁芯一般在哪里有卖