Comparison Criteria | Azure Table Storage | Azure SQL Database |
---|---|---|
Data relationships | No Azure Table Storage does not provide a way to represent relationships between data. You can obtain simple relationships by using schema-less properties of tables and structuring the data in the required format. | Yes Similar to SQL Server, Azure SQL Database allows you to define relationships between data stored in different tables by using foreign keys. |
Server-side processing | No Supports basic operations such as insert, update, delete, and select, but it does not support joins, foreign keys, stored procedures, triggers, or any processing on the storage engine side. | Yes Provides standard SQL Server features such as stored procedures, views, multiple indices, joins, and aggregation. |
Transaction support | Limited Supports transactions for entities in the same table and the same partition. Up to 100 operations are supported in a transaction. Supports optimistic concurrency. For more information, see Entity Group Transactions. | Yes Supports typical ACID transactions within the same database. Transactions are not supported across databases. Azure SQL Database also supports optimistic concurrency. |
Geo-replication | Yes By default, a table is replicated to other regions. This replication provides a high degree of disaster recovery capabilities. | Yes See Azure SQL Database Business Continuity for the latest options. |
Table schema | Relaxed Each entity (row) can have different properties. For example, in the same table you can store order information in one row and customer information in another row. | Managed Fixed schema for the entire table once defined but can be altered at any time. All rows must adhere to the schema rules. Consider using the XML type or sparse columns for additional flexibility. |
Similarity to existing data stores used on-premises | No Cloud-based storage with no on-premises alternatives at present. | Yes Similar to SQL Server with some limitations. For more information, see General Guidelines and Limitations. |
Scale-out | Automatic Partitioned based on the PartitionKey property. A table might be stored in different partitions on different storage devices. This structure allows clients to access data in parallel. | Automatic Sharded across a managed group of database instances by using the Elastic Scale feature. See Elastic Scale Documentation Map. |
Data types | Simple | Simple, Complex, and User Defined Azure SQL Database supports a rich set of data types, including custom user-defined types. |
Accessible from on-premises applications or applications hosted in non-Azure platforms | Yes | Yes |
Consistency model | Strong | Strong |
Windows Communication Foundation (WCF) Data Services client support | Yes | Yes |
REST client support | Yes Supports REST-based access out of the box. | Yes Supports REST-based access by adding an OData layer on top of a SQL database. |
Firewall protection (restricted IP range access) | No | Yes Uses the Azure firewall that is configurable from the portal, or using command-line tools. |
Transaction throttling behavior | Yes For more information, see this blog post. | Yes For more information, see this article. |
Fault tolerance | Yes To provide a high degree of fault tolerance, the stored data is replicated three times within the region, and replicated an additional 3 times in another region more than 400 miles (644 kilometers) apart. | Yes Three copies of a Azure SQL Database instance are maintained within the chosen data center. |
Logging and metrics | Yes For more information, see this blog post. | No |
Transaction logs | No | Yes |
Maximum row size | 1 MB With no more than 255 properties, including three required properties: PartitionKey, RowKey, Timestamp. | 2 GB Can contain up to 1024 columns (or 30,000 if sparse columns are used). |
Maximum data size | 500 TB per table There is no maximum number of blob containers, blobs, file shares, tables, queues, entities, or messages per storage account. The only limit is the 500 TB per storage account. See Azure Storage Scalability and Performance Targets for more information. | Variable Calculated as Database Throughput Units (DTUs) that vary according to tiers. For the latest, see Azure SQL Database General Guidelines and Limitations. |
Target throughput for single blob Up to 60 MB per second, or up to 500 requests per second. Other metrics: See Azure Storage Scalability and Performance Targets for ingress and egress limits. | Variable Calculated as Database Throughput Units (DTUs) that vary according to tiers. For more information about DTUs, see Azure SQL Database General Guidelines and Limitations and Azure SQL Database Service Tiers and Performance Levels. | |
Maximum number of rows retrieved per query | 1,000 No more than 1,000 rows (entities) are returned in response to a single request. If a query has more results than this amount, a continuation token is returned to allow the query to continue with additional requests. | Unlimited If not tuned correctly, connection and query timeouts can limit the number of rows fetched. |
Management protocol and tools | REST over HTTP/HTTPS You can use the Azure Storage Explorer or another third-party tool, such as Cloud Storage Studio. | ODBC/JDBC REST over HTTP/HTTPS You can use the Azure Management Portal or SQL Server Management Studio to manage a Azure SQL Database instance. |
Data access | OData Protocol Interface You can access data by using the HTTP(S) REST API or the .NET Client Library for WCF Data Services that is included in the Azure SDK. | ODBC/JDBC/NODE.JS/PHP/.NET You can use applications written using existing technologies such as ADO.NET and ODBC that communicate with SQL Server to access Azure SQL Database instances with minimal code changes. |
Java API support | Yes | Yes |
Node.js API support | Yes | Yes |
PHP API support | Yes | Yes |
LINQ support | Yes | Yes |
Python support | Yes | No |
Offline developer experience | Yes Provided by the local storage emulator included in the Azure SDK. | No SQL Express or other editions of SQL Server are different products and do not offer full simulation of a Microsoft Azure SQL Database environment. |
Authentication | Symmetric Key Shared Access Signatures 512-bit HMAC key is used to authenticate users. | SQL Authentication Standard SQL Authentication is used to authenticate users. Azure Active Directory Authentication: Supports integrated, username/password, and token-based authentication using Azure Active Directory identities. |
Role-based access | No | Yes Supports standard SQL database and application roles. |
Azure Active Directory (formerly ACS) support | No | No |
Identity provider federation | No | No |
Storage cost | $0.125 per gigabyte stored per month based on the daily average. See Azure Pricing Overview for latest pricing details. | See Azure Pricing Overview for latest pricing details. |
Transaction cost | $0.01 per 100,000 storage transactions. | $0.00 Azure SQL Database does not charge for transactions. |
Billable operations | All In addition to storage costs, transaction cost is computed based on the volume of transactions against tables. | None Cost does not depend on the volume of transactions, only on the database size. |
Egress costs | $0.12 - $0.19 per gigabyte, based on a graduated, region-specific scale | $0.12 - $0.19 per gigabyte, based on a graduated, region-specific scale |
TripleGold777 is a leading technology media property, dedicated to obsessively profiling startups, reviewing new Internet products, and breaking tech news.
Tuesday, 2 February 2016
Azure Table Storage vs Azure SQL Database
The Azure documentation on NoSQL-based Table is pretty comprehensive (Azure Storage Table Design Guide runs into 50+ pages if you print it) & well written. The consolidated comparison chart on Azure Table Storage vs Azure SQL Database copied from MSDN is a great reference to review occasionally. Nothing summarizes info as well as a table (heh!).
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment