deepflow icon indicating copy to clipboard operation
deepflow copied to clipboard

[FR] 能否支持replicatemergetree 复制的方式,目前我看到代码默认好像写死了mergetree的引擎

Open wuzongling opened this issue 1 year ago • 1 comments

Search before asking

  • [X] I had searched in the issues and found no similar feature requirement.

DeepFlow Component

Server

What you expected to happen

企业微信截图_1087c885-36b1-46c6-b233-94b59b7c5da3 企业微信截图_9273272a-c920-412a-ba2b-2c9cf5603202

在代码里面看到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

wuzongling avatar Feb 27 '24 06:02 wuzongling

目前只支持 mergetree, 使用 replicatemergetree 需要额外的 Zookeeper或clickhouse-keeper, 并消耗更多资源。 如果需要高可用,可以使用共享存储或raid 让底层磁盘实现高可用。

lzf575 avatar Mar 12 '24 06:03 lzf575

目前我们用户(无论是企业版还是开源版)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 中有多个副本

1473371932 avatar Apr 16 '24 07:04 1473371932