0

我有一组如下所示的文档:

在此处输入图像描述

每个 VIN/SiteID 有一个文档,我们的访问模式显示特定站点的所有文档。我看到我们可以选择两个潜在的分区键:

  1. SiteID - 我们只有 75 个站点,因此基数不是很高。此外,文档不是很大,因此 10GB 的限制可能还可以。
  2. SiteID/VIN:数据现在分布更均匀,但这意味着每个逻辑分区将只存储一项。这是反模式吗?此外,为了支持我们的访问模式,我们将需要使用跨分区查询。再次,数据集很小,这是一个问题吗?

根据我所描述的,哪个分区键更有意义?

任何其他建议将不胜感激!

4

1 回答 1

0

您的第一个选项很有意义,并且可能是一个很好的分区键,但“可能还可以”这句话并不能真正培养信心。请记住,更改分区键的唯一方法是迁移到新集合。如果您可以承担这个风险,那么 SiteId(我猜您将永远拥有)是一个很好的分区键。

如果您在读取或查询时同时拥有 VIN 和 SiteId,那么这是更安全的组合。让每个逻辑分区本身存储一个项目是没有问题的。只有在进行跨分区查询时才会出现问题。如果您在查询中同时知道 VIN 和 SiteId,那么这是一个很棒的计划。

您还必须记住,您的 RU 在集合内的分区之间平均分配。

于 2018-09-27T13:25:23.597 回答