Developing with Azure Cosmos DB for Table and Azure Table storage
APPLIES TO: Table
Azure Cosmos DB for Table and Azure Table storage share the same table data model and expose the same create, delete, update, and query operations through their SDKs.
The serverless capacity mode is now available on Azure Cosmos DB's API for Table.
If you currently use Azure Table Storage, you gain the following benefits by moving to Azure Cosmos DB for Table:
|Feature||Azure Table storage||Azure Cosmos DB for Table|
|Latency||Fast, but no upper bounds on latency.||Single-digit millisecond latency for reads and writes, backed with <10-ms latency reads and <15-ms latency writes at the 99th percentile, at any scale, anywhere in the world.|
|Throughput||Variable throughput model. Tables have a scalability limit of 20,000 operations/s.||Highly scalable with dedicated reserved throughput per table that's backed by SLAs. Accounts have no upper limit on throughput and support >10 million operations/s per table (in provisioned throughput mode).|
|Global distribution||Single region with one optional readable secondary read region for high availability which supports automatic and manual account failover.||Turnkey global distribution from one to 30+ regions. Support for service-managed and manual failovers at any time, anywhere in the world.|
|Indexing||Only primary index on PartitionKey and RowKey. No secondary indexes.||Automatic and complete indexing on all properties, no index management.|
|Query||Query execution uses index for primary key, and scans otherwise.||Queries can take advantage of automatic indexing on properties for fast query times.|
|Consistency||Strong within primary region. Eventual within secondary region.||Five well-defined consistency levels to trade off availability, latency, throughput, and consistency based on your application needs.|
|Pricing||Consumption-based.||Available in both consumption-based and provisioned capacity modes.|
|SLAs||99.99% availability.||99.99% availability SLA for all single region accounts and all multi-region accounts with relaxed consistency, and 99.999% read availability on all multi-region database accounts Industry-leading comprehensive SLAs on general availability.|
The following SDK packages work with both the Azure Cosmos DB Table API and Azure Table storage.
.NET - Use the Azure.Data.Tables available on NuGet.
Python - Use the azure-data-tables available from PyPi.
Java - Use the azure-data-tables package available on Maven.
The following SDK packages work only with Azure Cosmos DB for Table.
.NET - Azure.Data.Tables available on NuGet. The Azure Tables client library can seamlessly target either Azure Table storage or Azure Cosmos DB table service endpoints with no code changes.
Python - azure-cosmosdb-table available from PyPi. This SDK connects with both Azure Table storage and Azure Cosmos DB for Table.
Java - Microsoft Azure Storage Client SDK for Java on Maven. This Azure Storage SDK has the ability to connect to Azure Cosmos DB accounts using the API for Table.
C++ - Azure Storage Client Library for C++. This library enables you to build applications against Azure Storage.
Ruby - Azure Storage Table Client Library for Ruby. This project provides a Ruby package that makes it easy to access Azure storage Table services.
PHP - Azure Storage Table PHP Client Library. This project provides a PHP client library that makes it easy to access Azure storage Table services.
PowerShell - AzureRmStorageTable PowerShell module. This PowerShell module has cmdlets to work with storage Tables.