Microsoft Cosmos DB包括DocumentDB API,Table API等。我有大约10 TB的数据,并希望有一个快速的键值查找(很少更新和写入,大多数是读取)。添加Microsoft Cosmos DB的链接: https://docs.microsoft.com/en-us/azure/cosmos-db/
答案 0 :(得分:11)
引入了Azure Cosmos数据库表API,以使Azure表存储社区可以使用Cosmos DB及其高级索引,地理分布等功能。我们的想法是,使用Azure Table存储的人只需要Cosmos DB提供的更多高级功能,他们只需要更改他们的连接字符串,他们现有的代码就可以使用Cosmos DB。
但是,如果您是绿地客户,那么我建议使用SQL API(以前称为Document DB API),它是Table API的超级集合。我们一直致力于为SQL API提供更多高级特性和功能,对于Table API,我们只是希望保持与Azure Table存储API的兼容性,这种API在多年内没有改变。
您拥有多少数据对您选择的API没有任何影响。它们都具有相同的多模型基础架构,可以处理相同大小的数据,查询负载,分发等。
答案 1 :(得分:6)
那么我应该如何在DocumentDB API和Table API之间做出选择?
在DocumentDB API
和Table API
之间进行选择主要取决于您要存储的数据类型。 DocumentDB API
提供schema-less JSON database engine with SQL querying capabilities
,而Table API
提供key-value storage database service
。由于您提到您的数据基于key-value
,因此建议您使用Table API
。
或者我应该何时选择DocumentDB API?我什么时候应该选择Table API?
与上述相同。
使用DcoumentDB API存储10 TB数据是一个好习惯吗?
Document DB API
和Table API
都旨在存储大量数据。
但您也可以查看Azure Table Storage
。通过Cosmos DB,您可以微调所需的吞吐量以及强大的索引/查询支持,而且需要付出代价。另一方面,Azure Tables
具有固定的吞吐量和有限的索引/查询支持,与Cosmos DB相比非常便宜。
您可能会发现此链接有助于详细了解Cosmos DB:https://docs.microsoft.com/en-us/azure/cosmos-db/introduction。
答案 2 :(得分:2)
请不要将此标记为偏离主题。
提前知道它可能会有所帮助:如果您正在考虑文档界面,那么实际上存在一个不区分大小写的情况会影响DataContract类(我相信所有其他类)在Cosmos中的转换方式。
在下面的链接讨论中,您将看到Newtonsoft.Json中存在不区分大小写的情况,这会影响您对传递或直接从API获取的对象的处理。并不是说Cosmos有任何缺陷,实际上它非常出色。但是使用文档API,您可能(像我一样)开始简单地将DataContract对象传递给Cosmos(这显然没有错,实际上非常期望从对象API中获得),但是有一些序列化器和命名策略处理程序选项,你可能更善于至少提前意识到这一点。
所以只需添加一个注释,让您通过对象接口了解此行为。讨论在GitHub上进行: