精华 「已解决」ReplicatedMergeTree +Distributed 查分布式表数据和案例结果并不一样
发布于 1 个月前 作者 xiaods 236 次浏览 最后一次编辑是 25 天前 来自 问答

新手,clickhouse官方文档没有丰富的例子供参考,所以就找网上的例子验证。发现这块理解基本和例子不一致。 clickhouse 版本:18.14.13

SELECT *                 
FROM ******.clusters
                                  
*─cluster────────*─shard_num─*─shard_weight─*─replica_num─*─host_name───────────────*─host_address─*─port─*─is_local─*─user────*─default_database─*                              
* bitbook-servie *         1 *            1 *           1 * clickhouse-0.clickhouse * 172.19.4.169 * 9000 *        0 * default *                  *                              
* bitbook-servie *         1 *            1 *           2 * clickhouse-1.clickhouse * 172.19.7.185 * 9000 *        0 * default *                  *                              
*────────────────*───────────*──────────────*─────────────*─────────────────────────*──────────────*──────*──────────*─────────*──────────────────*                              
                           
2 rows in set. Elapsed: 0.004 sec.

cluster已经为bitbook-servie

**我分别在2台node上执行创建ReplicatedMergeTree表,但是报错。

****** TABLE test.test_log
(
  date Date, log String
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/hits', '{replica}')
PARTITION BY date
ORDER BY (date, log)
SAMPLE BY date

这个表在第一个节点,运行可以成功,**到第二个节点,再次执行这个建表工具。{replica}这个宏并没有自动切换成2,还是指向1,导致没法创建表。不清楚什么原因。

第二个问题,手工把replica改动后提交,创建成功,插入数据后,2个节点的数据并不会同步。我创建一张Distributed表,一直指向replica 1,不包括replica 2的插入数据。不清楚这是什么规则。请知道的朋友帮个忙,提醒一下。

4 回复

第一个问题我解决了。老外提醒的。我的宏配置的不对。在排错的过程,老外提供这个SQL比较有用,分享给大家: SELECT * FROM ****.macros 可以自身node的宏情况。

replica没有同步的问题是因为配置的kubernetes没有配置正确,让**和地下的实例没有打通。更新后解决。

这个问题解决了。主要是**的端口9009没有开放,打开后一切正常。

@xiaods 你好!我遇到同样的问题,请教一下如何配置的呢?

回到顶部