I wrote a detailed blog post comparing Windows Azure Table Storage and Amazon DynamoDB. You can read that post here: https://gauravmantri.com/2012/04/30/comparing-windows-azure-table-storage-and-amazon-dynamodb/. This blog post summarizes that comparison.
Like the other post, for the sake of brevity we’re going to refer Windows Azure Table Storage as WATS and Amazon DynamoDB as ADDB in the rest of this blog post as well.
Following table provides a comparison summary of features in WATS and ADDB.
WATS | ADDB | |
Current service version | 2011-08-18 | 2011-12-05 |
NoSQL database | Yes | Yes |
User controlled provisioned throughput | No | Yes |
Consumption based pricing | Yes | Yes |
Only pay for the data stored | Yes | Yes |
Pay for transactions | Yes | No |
Pay for data ingress | No | No |
Pay for data egress | Yes | Yes |
Indexing support | Partial | Partial |
Consistency model | Strong | Strong/Eventual |
Ability to create tables | Yes | Yes |
Minimum/Maximum length | 3/63 | 3/255 |
Case Sensitivity | Mixed case | Mixed case |
Valid Characters | Alphanumeric | Alphanumeric, Dash (-), Hyphen (_) and Period (.) |
Is create operation idempotent | No | No |
Maximum number of tables | N/A | 256 |
Maximum size of a table | N/A | N/A |
Ability to have user defined Primary Key for a table | No | Yes |
Ability to fetch list of tables | Yes | Yes |
Maximum number of tables returned per call to the service | 1000 | All |
Returns continuation token in case more tables are available | Yes | Yes |
Ability to delete tables | Yes | Yes |
Is delete operation idempotent | No | No |
Ability to get metadata about a table like number of entities/items, size of table etc. | No | Yes |
Ability to customize provisioned throughput | N/A | Yes |
Ability to create an entity/item in a table | Yes | Yes |
Maximum number of attributes per entity/item | 256 | N/A |
Maximum number of custom attributes per entity/item | 253 | N/A |
Attribute data type | One of eight data types (Binary, Boolean, DateTime, Decimal, Int32, Int64, Guid, and String) | String, Number, String/Number Sets (Arrays) |
Maximum size of an entity/item | 1 MB | 64 KB |
Ability to update an entity/item in a table | Yes | Yes |
Supports conditional updates | Yes | Yes |
Ability to delete an entity/item from a table | Yes | Yes |
Is delete operation idempotent | No | Yes |
Ability to get all attributes of an entity/item | Yes | Yes |
Ability to get selected attributes of an entity/item | Yes | Yes |
Ability to perform batch operations on multiple entities/items | Yes | Yes |
Ability to query tables | Yes | Yes |
Maximum number of entities/items returned per call | 1000 | N/A |
Default number of entities/items returned per call | 1000 | N/A |
Maximum size of response payload | N/A | 1 MB |
System can time out queries | Yes | Yes |
Maximum execution time after which a query will be timed out by the system | 5 Seconds | 5 Seconds |
Possibility of system returning partial records | Yes | Yes |
I hope you will find this information useful.