专为表和 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。
AzureRmStorageTable
PowerShell 模块 包含用于存储表的 cmdlet。