deepflow
deepflow copied to clipboard
[FR] 能否支持replicatemergetree 复制的方式,目前我看到代码默认好像写死了mergetree的引擎
Search before asking
- [X] I had searched in the issues and found no similar feature requirement.
DeepFlow Component
Server
What you expected to happen
在代码里面看到deepflow-server 创建的表默认是选择的mergetree引擎。 我们希望搭建的ck 选择的是replicatemergetree引擎基于zk进行副本数据复制。 deepflow-server是否能够支持呢?
How to reproduce
无
DeepFlow version
6.3
DeepFlow agent list
无
Kubernetes CNI
无
Operation-System/Kernel version
无
Anything else
无
Are you willing to submit a PR?
- [X] Yes I am willing to submit a PR!
Code of Conduct
- [X] I agree to follow this project's Code of Conduct
目前只支持 mergetree, 使用 replicatemergetree 需要额外的 Zookeeper或clickhouse-keeper, 并消耗更多资源。 如果需要高可用,可以使用共享存储或raid 让底层磁盘实现高可用。
目前我们用户(无论是企业版还是开源版)ck 配置的是 多分片,无副本,原因如下:
- 我们的数据表,不支持副本,如果写入多个副本,则无法查询出来,可通过:
kubectl -n deepflow descibe svc deepflow-clickhouse查询后看到目前 deepflow-server 可连接的 clickhouse 节点,需确保 endpoint 资源中不能出现副本主机 - 因为创建的 ck 表引擎为 MergeTree,而并非 ReplicateMergeTree,所以写入一个副本的数据,不会同步到另一个副本
- 不然会导致查询时,clikckhouse 会返回所有分片的一个副本的数据, 导致数据查询不全
解决方法:
kubectl -n deepflow descibe svc deepflow-clickhouse中只保留切片主机即可
推荐做法: 实际上,我们更推荐对 clickhouse 后端的存储做备份,而并非在 clickhouse 中有多个副本