Several months ago, at the Microsoft Build 2017 conference, Azure Cosmos DB, the world’s first globally distributed, massively scalable, multi-model database service announced a public preview of its Table API with a native key-value data model.
Today we are happy to announce the general availability of the Azure Cosmos DB Table API. General availability means that the Table API is now formally supported as a production-ready capability by Microsoft.
The Table API is intended for users of Azure Table storage who find themselves constrained by the lack of more premium features. For example, Azure Cosmos DB Table API offers some of the following benefits not found in Azure Table storage:
- Turnkey global distribution
- Dedicated worldwide throughput
- Single-digit millisecond latency for reads and writes at the 99th percentile
- Automatic secondary indexing
- 5 well-defined, practical and intuitive consistency models
- Industry-leading comprehensive SLAs for latency, throughput, consistency and high availability
To make it as easy as possible for existing Azure Table storage users to move over, Azure Cosmos DB Table API supports four of the existing Azure Table storage SDKs, .Net, Java, Node.js and Python. This enables Azure Table storage users to leverage their existing mastery of the Azure Table storage API but, by just changing the connection string, use the Azure Cosmos DB Table API with premium capabilities.
In deciding between Azure Table storage and Azure Cosmos DB Table API please keep the following in mind:
|Azure Table Storage||Azure Cosmos DB Table API|
|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 indexed writes at the 99th percentile.|
|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.|
|Global distribution||Single region with one optional readable secondary read region for high availability. You can't initiate failover.||Turnkey global distribution with any number of Azure regions. Support for automatic and manual failovers at anytime, 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.|
|SLAs||99.99% availability.|| |
99.99% availability within a single region, and the ability to add more regions for higher availability. Industry-leading comprehensive SLAs for availability, latency at the 99th percentile, consistency and throughput.
To get started using Azure Cosmos DB Table API, please head over to our Introduction to Azure Cosmos DB Table API page and remember, anyone can try Azure Cosmos DB Table API for free. All existing Table preview accounts will be migrated seamlessly to GA service with zero downtime by the end of 2017. Until then, preview customers can safely use the Preview SDK for Table API with their account. For help, questions or feedback, please reach out to us on the developer forums on Stack Overflow.