专为表和 Azure 表存储设计的 Azure Cosmos DB 使用相同的表数据模型和操作,因此可以轻松构建可扩展的应用程序。 本文介绍如何同时使用这两个服务进行高效的表存储管理。
注意
Azure Cosmos DB API for Table 上提供了 无服务器容量模式 。 有关详细信息,请参阅 Azure Cosmos DB 无服务器。
如果当前使用 Azure 表存储,那么改用 Azure Cosmos DB for Table 可以获得以下好处:
| Feature | Azure 表存储 | Azure Cosmos DB for Table | 
|---|---|---|
| 延迟 | 快速,但对延迟没有上限。 | 读取和写入的延迟不到 10 毫秒,在全球任何位置,对于任何规模,99% 的情况下读取延迟 < 10 毫秒,写入延迟 < 15 毫秒。 | 
| 吞吐量 | 可变吞吐量模型。 表的可伸缩性上限为每秒 20,000 个操作。 | 使用 SLA 支持的每个表专用保留吞吐量实现高度可缩放。 帐户没有吞吐量上限,在预配的吞吐量模式下,每个表每秒支持 >1000 万个操作。 | 
| 全球分布 | 具有一个高可用性可选可读辅助读取区域的单一区域,支持自动和手动帐户故障转移。 | 从 1 个到 30 多个区域进行统包式全局分发。 支持在全球各地随时进行服务托管和手动故障转移。 | 
| 索引 | 仅 PartitionKey和RowKey上的主要索引。 没有辅助索引。 | 自动对所有属性完成编制索引,没有索引管理。 | 
| 查询 | 执行查询时使用主键的索引,否则进行扫描。 | 查询可以利用属性的自动索引缩短查询时间。 | 
| 一致性 | 在主要区域内实现强一致性。 在辅助区域内实现最终一致性。 | 五个定义完善的一致性级别可基于应用程序需要权衡可用性、延迟、吞吐量和一致性。 | 
| 定价 | 基于使用量。 | 提供基于使用量和预配容量两种模式。 | 
| SLA | 99.99% 可用性。 | 在公开发布时,为所有单区域帐户和具有松散一致性的所有多区域帐户提供 99.99% 的可用性 SLA,为所有多区域数据库帐户提供 99.999% 的读取可用性方面的行业领先的综合 SLA。 | 
Azure SDK
Azure 软件开发工具包(SDK)为多种编程语言提供库,使开发人员能够无缝地与用于表和 Azure 表存储的 Azure Cosmos DB 进行交互。
当前版本
这些 SDK 包适用于 Azure Cosmos DB for Table 和表存储。
以前的版本
这些 SDK 包仅适用于 Azure Cosmos DB for Table。
- .NET - Azure.Data.Tables可在 NuGet 上使用。 Azure 表客户端库面向表存储或用于表服务终结点的 Azure Cosmos DB,无需更改代码。
- Python。 - azure-cosmosdb-table可从 PyPi 获取。 此 SDK 可连接表存储和 Azure Cosmos DB for Table。
- JavaScript/TypeScript。 - azure-storage在 npm.js上可用。 此 Azure 存储 SDK 使用 API for Table 连接到 Azure Cosmos DB 帐户。
- Java。 适用于 Java 的 Azure 存储客户端 SDK 在 Maven 上可用。 此 Azure 存储 SDK 使用 API for Table 连接到 Azure Cosmos DB 帐户。 
- C++。 使用用于C++的 Azure 存储客户端库 ,可以生成适用于 Azure 存储的应用程序。 
- Ruby。 用于 Ruby 的 Azure 存储表客户端库 提供用于访问 Azure 存储表服务的 Ruby 包。 
- PHP。 Azure 存储表 PHP 客户端库 提供用于访问 Azure 存储表服务的 PHP 客户端库。 
- PowerShell。 - AzureRmStorageTablePowerShell 模块 包含用于存储表的 cmdlet。