首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure Cosmos DB分区键

Azure Cosmos DB分区键
EN

Stack Overflow用户
提问于 2019-03-05 08:22:23
回答 2查看 195关注 0票数 0

大多数情况下,我们需要在当前系统中搜索PublisherId和PlanId,其中模型结构如下:

发布者型号: Publisher Id Publisher Name…。。

计划模型:计划Id计划名称发布者Id…。。

发布者与计划模型的关系为1:M。

场景:我们不能将Publisher Id或Plan Id作为分区键,因为我们有3-5个发布者,他们用来提交可能很快就会超过10 GB限制的批量数据。

EN

回答 2

Stack Overflow用户

发布于 2019-03-06 21:37:35

从给定的情况来看,Publisher Id听起来确实是一个很好的分区键候选者,但不是足够的。

我建议使用另一个值来创建分区来传播数据。一个不错的选择是year。也就是说,创建一个将Publisher id与文档创建年份相结合的Id,例如<PublisherId>.2019 (如果每年每个publisher都有非常多的文档,则可以包括month )。

这可以很容易地及时归档较旧的内容,并可以为查询提供好处,但这取决于您的系统。

正如您所注意到的,您将需要查看数据的分布情况,并选择一个在您进行扩展时可以正常工作的分区。

票数 0
EN

Stack Overflow用户

发布于 2019-03-07 17:24:11

10 GB的限制是在逻辑分区上的,如果您选择的partitionKey足够宽,就不应该担心这个问题。

我假设您的文档如下所示,并创建了一个新的合成分区键- publisherIdentifier。

代码语言:javascript
运行
复制
{
  "publisherIdentifier": "1.Content.USA",
  "publisherId": "1",
  "publisherName": "A",
  "publisherType": "Content",
  "publisherCountry": "USA",
  "plans": [{"planId": "P1"},{"planId": "P2"},{"planId": "P3"}]
}

然后,可以根据发布者的计划查询发布者

代码语言:javascript
运行
复制
SELECT VALUE publisher.publisherName
FROM publisher
JOIN plans IN publisher.plans
where plans.planId = "P1"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54993621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档