我在两台不同的机器上有两个表,都作为守护进程运行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}。。。。但由于我没有配置远程服务器,所以我假设我可以使用任何值,这无关紧要,因为我不需要查询分发,只需要数据复制。
此外,这些表似乎相互“感知”,因为创建两个副本号为“2”或“1”的表会导致一个错误,即这样的表已经存在。
如果要使用复制,是否需要默认配置远程\u服务器?是否需要为要复制的表专门配置zookeeper?你们有没有关于用clickhouse设置数据复制的详细例子?
1条答案
按热度按时间2vuwiymt1#
看来你什么都做对了。
{layer}-{shard}
部分是可选的-它只是简化了在许多服务器上创建类似表的过程。配置复制表的最小路径是zookeeper中对所有副本通用的路径(按照惯例,此路径以/clickhouse/tables/
但事实上,任何唯一的路径都可以)和对每个复制副本唯一的标识符('1'
以及'2'
完全可以,但建议使用更具描述性的名称来标识相应的主机)。配置
remote_servers
复制不需要,但需要zookeeper。可以对所有复制的表使用单个zookeeper集群。