Crate数据库 - 分片与分区和节点之间的关系

时间:2016-08-30 12:01:24

标签: partitioning sharding crate

我是crate数据库的新手,并试图理解分片,分区和节点之间的关系。

  1. 一个分片对应多少个分区?
  2. 我可以配置将特定分区的数据作为特定分片的一部分发送吗?
  3. 我可以配置将特定分片发送到特定节点吗?
  4. 我可以在包集群中将分片从一个节点移动到另一个节点,因为它可以在elasticsearch中完成吗?
  5. 每个分片可以有不同数量的副本吗?
  6. 用例是将最新数据保存在少数具有更多复制品和旧数据的最佳表现节点上,而不是那么好的硬件,只有0或只有1个副本。

1 个答案:

答案 0 :(得分:1)

碎片是最小的数据单位" Crate有一个表和一个表应该有适当的数量(我知道不是一个精确的科学)来在集群中均匀地分配数据(以及工作负载的范围),因为这是在这些分片中完成的。目前,没有直接控制放置(在哪个节点上)和特定分片的复制。

  

一个分片对应多少个分区?

实际上反过来说:分区有一些分片,因为分区被视为"子表"包含数据子集。从原始CREATE TABLE语句创建分区(它用作模板),因此甚至可以具有与其他分区不同的分片计数。

  

我可以配置将特定分区的数据作为特定分片的一部分发送吗?

嗯,不 - 不明确。碎片管理在后台由魔术算法处理:)控制行所在的分区就像更新分区列的值一样简单。

  

我可以配置将特定分片发送到特定节点吗?

没有。配置中有一些旋钮用于控制节点上的分片数量https://crate.io/docs/reference/configuration.html#allocation但不建议您更改这些设置,除非您确切知道自己在做什么;)

  

我可以在crate集群中将分片从一个节点移动到另一个节点,因为它可以在elasticsearch中完成吗?

不,不明确。

  

每个碎片可以有不同数量的副本吗?

不,副本是按表设置的,整个表格都会受到影响。

  

用例是将最新数据保存在少数具有更多复制品和旧数据的最佳表现节点上,而不是那么好的硬件,只有0或只有1个副本。

对于这个用例,我建议使用第二个表(您无法控制存储数据的机器),或者 - 如果您不需要查询数据 - 请使用旧机器存储快照:https://crate.io/a/backing-up-and-restoring-crate/并在需要时恢复。

干杯,克劳斯