首页 文章

Microsoft Cosmos DB(DocumentDB API)与Cosmos DB(表API)

提问于
浏览
8

Microsoft Cosmos DB包括DocumentDB API,Table API等 . 我有大约10 TB的数据,并希望有一个快速的键值查找(很少更新和写入,大多数是读取) . 为Microsoft Cosmos DB添加链接:https://docs.microsoft.com/en-us/azure/cosmos-db/

  • 那么我应该如何在DocumentDB API和Table API之间做出选择呢?

  • 或者我应该何时选择DocumentDB API?我什么时候应该选择Table API?

  • 使用DcoumentDB API存储10 TB数据是一个好习惯吗?

3 回答

  • 6

    那么我应该如何在DocumentDB API和Table API之间做出选择呢?

    DocumentDB APITable API 之间选择将主要取决于您要存储的数据类型 . DocumentDB API 提供 schema-less JSON database engine with SQL querying capabilitiesTable API 提供 key-value storage database service . 由于您提到您的数据基于 key-value ,因此建议您使用 Table API .

    或者我应该何时选择DocumentDB API?我什么时候应该选择Table API?

    与上述相同 .

    使用DcoumentDB API存储10 TB数据是一种好习惯吗?

    Document DB APITable API 都旨在存储大量数据 .

    不过,您可能也想查看 Azure Table Storage . 通过Cosmos DB,您可以微调所需的吞吐量以及强大的索引/查询支持,而且需要付出代价 . 另一方面, Azure Tables 具有固定的吞吐量和有限的索引/查询支持,与Cosmos DB相比非常便宜 .

    您可以通过此链接查看有关Cosmos DB的更多信息:https://docs.microsoft.com/en-us/azure/cosmos-db/introduction .

  • 8

    Azure Cosmos数据库表API是为了使Azure表存储社区可以使用Cosmos DB及其高级索引,地理分布等功能而引入的 . 我们的想法是,使用Azure表存储的人需要更多只有Cosmos DB提供的高级功能才能真正改变他们的连接字符串,他们现有的代码将与Cosmos DB一起使用 .

    但是,如果您是绿地客户,那么我建议使用SQL API(以前称为Document DB API),它是Table API的超级集合 . 我们一直致力于为SQL API提供更多高级特性和功能,对于Table API,我们只是希望保持与Azure Table存储API的兼容性,这在多年来一直没有改变 .

    您拥有多少数据对您选择的API没有任何影响 . 它们都具有相同的多模型基础结构,可以处理相同大小的数据,查询负载,分发等 .

  • 1

    请不要将此标记为偏离主题 .

    提前知道它可能会有所帮助:如果您正在考虑文档界面,那么实际上存在一个不区分大小写的情况会影响DataContract类(以及我相信所有其他类)与Cosmos之间的转换 .

    在下面的链接讨论中,您将看到Newtonsoft.Json中存在不区分大小写的情况,这可能会影响您对传递或直接从API获取的对象的处理 . 并不是说Cosmos有任何缺陷,实际上它非常出色 . 但是使用文档API,您可能(像我一样)开始简单地将DataContract对象传递给Cosmos(这显然没有错,实际上非常期望从对象API中获得),但是有一些序列化器和命名策略处理程序选项,你可能更善于至少意识到前面的事情 .

    所以只需添加一个注释,让您通过对象接口了解此行为 . 讨论在GitHub上进行:

    https://github.com/JamesNK/Newtonsoft.Json/issues/815

相关问题