1

我在两台不同的机器上有两张表,它们都将 zookeeper 作为守护进程运行,其中一个有 myid 1,另一个有 myid 2。

该表在机器“1”上配置如下:

CREATE TABLE test(values)
ReplicatedMergeTree('/clickhouse/tables/01/test', '1', date, timestamp, 8192)

该表在机器“2”上配置如下:

CREATE TABLE test(values)
ReplicatedMergeTree('/clickhouse/tables/01/test', '2', date, timestamp, 8192)

'/clickhouse/tables/01/test' 中的 01 可能是困扰我的值......因为我用它'{layer}-{shard}'......但因为我没有配置 remote_servers 我假设我可以使用任何值,这没关系,因为我不想要查询分布,只是数据重复。

此外,这些表似乎“知道”彼此,因为创建两个副本号为“2”或“1”的表会导致错误表明这样的表已经存在。

如果我想使用复制,是否需要默认配置 remote_server?我需要专门为要复制的表配置 zookeeper 吗?你们有使用 clickhouse 设置数据复制的详细示例吗?

4

1 回答 1

3

看来您已正确完成所有操作。{layer}-{shard}部分是可选的——它只是简化了在许多服务器上创建类似表的过程。配置复制表的最低要求是 zookeeper 中所有副本都通用的路径(按照惯例,此路径以该路径开头,/clickhouse/tables/但实际上任何唯一路径都可以)和每个副本唯一的标识符('1'并且'2'完全可以,但是建议使用更具描述性的名称,以便您识别相应的主机)。

remote_servers复制不需要配置,但是需要zookeeper。您可以对所有复制的表使用单个 zookeeper 集群。

于 2017-04-10T19:34:55.517 回答