在每分钟有1000个条目(唯一键)输入波斯菊的情况下,使用/ id作为分区键是否安全?
尤其是逻辑分区的概念 https://docs.microsoft.com/en-us/azure/cosmos-db/partition-data 此处的图形使我有些害怕,表明逻辑分区是实际实体(例如,“ city”:“ London”)。如果我有一个8小时的TTL和每分钟1000个条目,那么我并不需要cosmos需要管理的480,000个逻辑分区。
我想像的是,分区键的值只是经过哈希处理,并且与物理分区的数量(例如,模数)成模。 https://docs.microsoft.com/en-us/azure/cosmos-db/partitioning-overview#choose-partitionkey 表示在“逻辑分区管理”部分中,这是正确的。此外,“选择分区密钥”部分建议(但实际上并未声明)/ id将是一个很棒的分区密钥,因为它不必担心10GB的限制,吞吐量限制,没有热点,宽(值范围),并且由于应用程序不需要对除id以外的任何内容进行过滤,因此跨分区查询将不会成为该用例的问题。
总而言之,我是否需要担心成千上万个分区键值(逻辑分区)的内存/ CPU /等开销?文档指出分区键的值越多越好,但是不要说是否有太多的值。
答案 0 :(得分:3)
我来自Cosmos DB工程团队。
您不必担心在Cosmos DB集合/容器上创建的逻辑分区键的数量。只要分区键是您的写入(每个逻辑分区键上限为10GB)和查询的适当选择,您就应该不错。
答案 1 :(得分:0)
含义是:
简单快捷的廉价文档阅读
没有事务,因为事务范围是分区键
id
以外的任何其他查询将被交叉分区 PS。
除了id
读/查询之外,我几乎无法想象不需要任何东西的情况。除了可能用于文档缓存(与TTL结合使用)。