使用 Azure Cosmos DB for Table 和 Azure 表存储进行开发
适用对象: 表
Azure Cosmos DB for Table 和 Azure 表存储通过其 SDK 共享相同的表数据模型,并公开相同的创建、删除、更新和查询操作。
注意
无服务器容量模式现已在 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
当前版本
以下 SDK 包同时适用于 Azure Cosmos DB for Table 和表存储。
.NET 使用 NuGet 上提供的 Azure.Data.Tables。
Python。 使用 PyPi 中的 azure-data-tables。
JavaScript/TypeScript。 使用 npm.js 上提供的 @azure/data-tables 包。
Java。 使用 Maven 上提供的 azure-data-tables 包。
以前的版本
以下 SDK 包仅适用于 Azure Cosmos DB for Table。
.NET NuGet 上提供的 Azure.Data.Tables。 Azure 表客户端库可以无缝面向表存储或 Azure Cosmos DB for Table 服务终结点,无需更改代码。
Python。 PyPi 中提供的 azure-cosmosdb-table。 此 SDK 可连接表存储和 Azure Cosmos DB for Table。
JavaScript/TypeScript。 npm.js 中提供的 azure-storage 包。 此 Microsoft Azure 存储 SDK 能够使用表 API 连接到 Azure Cosmos DB 帐户。
Java。 Maven 上用于 Java 的 Azure 存储客户端 SDK。 此 Microsoft Azure 存储 SDK 能够使用表 API 连接到 Azure Cosmos DB 帐户。
C++。 适用于 C++ 的 Azure 存储客户端库。 此库使你能够针对 Azure 存储构建应用程序。
Ruby。 适用于 Ruby 的 Azure 存储表客户端库。 此项目提供了一个 Ruby 包,使用该包可轻松访问 Azure 存储表服务。
PHP。 Azure 存储表 PHP 客户端库。 此项目提供了一个 PHP 客户端库,使用该库可轻松访问 Azure 存储表服务。
PowerShell。 AzureRmStorageTable PowerShell 模块。 此 PowerShell 模块包含 cmdlet 以使用存储表。