当前位置: 首页 > 知识库问答 >
问题:

Azure Cosmos DB -了解分区键

孙京
2023-03-14

我正在设置我们的第一个Azure Cosmos数据库-我将从我们的一个SQL Server数据库中的表中导入第一个集合中的数据。在设置集合时,我很难理解分区键的含义和要求,在设置此初始集合时,必须对其进行命名。

我已经阅读了这里的文档:(https://docs . Microsoft . com/en-us/azure/cosmos-db/document db-partition-data)但是我仍然不确定如何处理这个分区键的命名约定。

如果有帮助,我正在导入的表由7列组成,包括一个唯一的主键、一列非结构化文本、一列URL和该记录URL的其他几个辅助标识符。不确定这些信息是否与我应该如何命名我的分区键有任何关系。

编辑:我已经添加了我从中导入的表中的几条记录的屏幕截图,每个记录来自@Porschiey的请求。

共有3个答案

黄宏大
2023-03-14

CosmosDB可用于存储任何限制的数据。它在后端的表现是使用分区键。它与主键相同吗?-否

主键:唯一标识数据分区键有助于数据分片(例如,当城市是分区键时,城市纽约的一个分区)。

分区有10GB的限制,我们越是将数据分布到各个分区,就越能使用它。尽管它最终需要更多的连接才能从所有分区获取数据。示例:在查询中从同一分区获取数据总是比从多个分区获取数据快。

唐兴贤
2023-03-14

分区键充当逻辑分区。

你可能会问,什么是逻辑分区?逻辑分区可能因您的需求而异;假设您有可以根据客户进行分类的数据,这个客户的“Id”将作为一个逻辑分区,用户的信息将根据他们的客户Id放置。

这对查询有什么影响?

查询时,您会将分区键作为提要选项,而不会将其包含在筛选器中。

例如:如果您的查询是

SELECT * FROM T WHERE T.CustomerId= 'CustomerId';

这将是现在

var options = new FeedOptions{ PartitionKey = new PartitionKey(CustomerId)};

var query = _client.CreateDocumentQuery(CollectionUri,$"SELECT * FROM T",options).AsDocumentQuery(); 
西门凯康
2023-03-14

老实说,这里的视频对理解CosmosDb中的分区有很大帮助。

但是,简而言之:分区键是一个属性,它将存在于每个对象上,最好用于将相似的对象组合在一起。

好的例子包括位置(如城市)、客户ID、团队等。自然,它很大程度上取决于您的解决方案;所以也许如果您要发布您的对象的外观,我们可以推荐一个好的分区键。

编辑:应该注意,10GB以下的集合不需要PartitionKey。(感谢大卫·马科贡)

*此MS文档页面上的视频名为“Azure Cosmos DB中的分区和水平扩容”,但已被删除。上面提供了一个直接链接。

 类似资料:
  • 问题内容: 苹果使用Etc / GMT时区的原因是什么,当苹果从App Store返回收据以进行自动续订时,该理由是什么。 Etc / GMT时区到底是什么时间?Java SDK是否了解该时区?还是我必须使用其他第三方库(如Joda- Time) ? 问题答案: Etc / GMT 与UTC或GMT 并不 完全相同。仅当偏移量为0时,它们表示时间上的同一时刻。在所有其他情况下,它们是完全不同的。

  • 第一部分: 了解区块链 这部分主要针对没有接触过区块链技术的初学者。当然,对于不了解技术,在币圈混迹多年的小伙伴,也是有用的,可以帮助您从技术实现角度,更好的理解区块链的有关概念。 这类文章,我把它称作技术类软文,讲理论多一些。我们知道,对于咱们普通老百姓而言,人类语言的力量往往非常苍白,特别是在描述复杂的区块链产品的时候,远不如计算机语言简洁、明了和严谨。所以,阅读这类文章,要保持良好心态,寻求

  • 如果有人能用简单的术语回答这些与火花洗牌相关的问题,我将不胜感激。 在spark中,当加载一个数据集时,我们指定分区的数量,这表示输入数据(RDD)应该被划分为多少个块,并且根据分区的数量启动相等数量的任务(如果假设错误,请纠正我)。对于工作节点中的X个核心数。一次运行相应的X个任务。 沿着类似的思路,这里有几个问题。 因为,所有byKey操作以及联合、重新分区、连接和共组都会导致数据混乱。 >

  • 让我们使用TypeScript来创建一个简单的Web应用。 安装TypeScript 有两种主要的方式来获取TypeScript工具: 通过npm(Node.js包管理器) 安装Visual Studio的TypeScript插件 Visual Studio 2017和Visual Studio 2015 Update 3默认包含了TypeScript。 如果你的Visual Studio还没有安

  • 问题内容: 我当时假设Elasticsearch中的每个碎片都是一个索引。但是我在某处读到,每个段都是一个Lucene索引。 细分到底是什么?它如何影响搜索效果?我的索引每天使用默认的Elasticsearch设置达到450GB左右(我每天创建一个新索引)。 当我执行时,我得到 和。 上面的值不应该是1吗?也许是因为价值?无论如何,这层是什么? 问题答案: 在Elasticsearch中,“索引”

  • 本文向大家介绍简单了解Python write writelines区别,包括了简单了解Python write writelines区别的使用技巧和注意事项,需要的朋友参考一下 一、传入的参数类型要求不同:   1、 file.write(str)需要传入一个字符串做为参数,否则会报错。   write( "字符串")   2、 file.writelines(sequence)可以有两种:字符