是否有某种方式可以在Clickhouse中分片?

时间:2019-06-07 04:01:31

标签: clickhouse

关于如何在Clickhouse中进行分片,我有两个问题。

Q1。   是否需要使用分布式引擎在Clickhouse中进行分片?

Q2。   我想知道是否可以根据我设定的标准进行分片,而不是根据分片的重量自动分配。

Example.
 - If id is 1, it is stored in shard1.
 - If id is 2, it is stored in shard2.
 - If id is 3, it is stored in shard3.



I understand the sharding through the distribution engine as follows.
- distributed engine use the cluster defined in the config.xml file.
- It is automatically distributed to the shard according to the weight of the shard.

感谢您阅读我的问题。我期待着您的答复。

1 个答案:

答案 0 :(得分:2)

  

Q1。是否需要使用分布式引擎在Clickhouse中进行分片?

是的。分布式引擎知道如何将查询分发到分布在分片和副本上的本地表。没有这个,您将需要在每个分片上运行查询并自行组装结果。

  

Q2。我想知道是否可以根据我设定的标准进行分片,而不是根据分片的重量自动分配。

是的。有两种方法可以将数据写入分片。

  1. 插入分布式表。 ClickHouse将使用分片键分发到本地表。
  2. 直接写入本地表。在这种情况下,由您决定如何分配数据。许多安装使用这种方法,因为它可以直接进入基础表来提高性能。

分布式引擎实际上只是通向本地表的网关,这就是为什么#2起作用的原因。