Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Microsoft Azure Storage vs. Azure SQL Database

Tags:

I saw that there was a similar question asked several months back, but it really didn't address my situation well. Here it goes...

I'm in the process of building from scratch a web-based, .NET application that has the potential to become a high-volume site (several hundred thousand page views a month to start) and am strongly considering using Microsoft Azure to host it. I have not built anything yet and am still researching my different options.

The application itself is, at its core, a standard CRUD application that acts upon a number of different types of entities (e.g. user, order, item, etc.). There are probably some background processes that may be running and some queuing of data (for non-realtime updates -- like getting a SO badge, for example), but most of the interactions with the user will be your typical CRUD type of actions.

Regarding Azure, I have read a number of articles about using Microsoft Azure Storage to store transactional data and am strongly considering doing that instead of using Azure SQL DB. However, I haven't seen or read a number of success stories of real people and/or real companies doing that. So I thought I'd reach out to the SO community to see if anyone has had any experience with using Microsoft Azure Storage, what kind of luck have you had, any gotchas I should look out for, and any best practices that you've come up with.

I've read through a lot of the Microsoft Azure MSDN section and the programming Microsoft Azure Table API document from Microsoft. I'm looking for practical advice, lessons learned, best practices, etc. Thanks in advance!

like image 312
David Hoerster Avatar asked Aug 06 '10 17:08

David Hoerster


People also ask

What is the difference between Azure storage and Azure Database?

So in Azure cloud storage and databases are 2 different things. Azure Databases include SQL Db, Maria Db, MySQL Db and Cosmos Db. However, remember databases store their db files into the storage system only. Normally a storage account in azure is used to store raw un-structure files.

Is Azure table storage cheaper than Azure SQL Database?

Azure tables are only cheaper than SQL Azure if the data access pattern is relatively light, since tables have a per-transaction fee and SQL Azure doesn't.

What is the difference between Azure SQL and Azure SQL Database?

Azure SQL Database offers Database-as-a-service (DBaaS-PaaS). With SQL Database, you don't have access to the machines that host your databases. In contrast, Azure Virtual Machine offers Infrastructure-as-a-service (IaaS). Running SQL Server on an Azure VM is similar to running SQL Server in a On-Premise datacenter.

What is the difference between Azure SQL Database and Azure data warehouse?

Azure SQL Database is a relational database-as-a service using the Microsoft SQL Server Engine (more); Azure SQL Data Warehouse is a massively parallel processing (MPP) cloud-based, scale-out, relational database capable of processing massive volumes of data (more);


2 Answers

Windows Azure storage is just like as any NoSQL storage. It works in high-scale scenarios for us (pumping millions of records per user). However, classical CRUD approach is a bit hard to scale or to adapt to this.

I would recommend to start looking along the CQRS style of architectures. Here are some references that might get you started:

  • Open Source Lokad.CQRS project for Windows Azure (patterns and guidance included)
  • Efficient architectures for Azure discussion at MSDN
like image 147
Rinat Abdullin Avatar answered Nov 07 '22 21:11

Rinat Abdullin


Depends on what kind of data you are talking about - generally there is a tendency to overestimate transactional data requirements. A lot of data can really be fit into a 1 GB SQL Azure (we are a SAAS provider and transactional data of almost 20 clients can fit into that much space). Also, for some strange reason, I have seen that SQL Azure space consumption seems to be somewhat lesser than the size of the database I see on-premises (might have to do with how they handle logs, not sure). And now 50 GB is the limit, which is quite frankly, HUGE.

However for this, you also need to consider what increases the space usage - storing images, videos or other large objects in the database can create considerable increase in space consumption. It is better to keep these kind of objects in Windows Azure.

So short answer - keep transactional data in SQL Azure and non-relational data in Windows Azure. Working with SQL Azure will also keep your developers more productive, since it is quite familiar in terms of programming. Treat Windows Azure similar to how you would treat windows local file storage with some added benefits (basic table structures supported).

like image 23
Roopesh Shenoy Avatar answered Nov 07 '22 21:11

Roopesh Shenoy