Las ventajas que te ofrece Microsoft Azure y el mundo.NET

Almacenando datos en Microsoft Azure, ¿Azure Table Storage o SQL Azure?

 

 

microsoft-azure-storage-dataA la hora de almacenar datos en la nube tenemos diversas posibilidades tan diferentes como eficientes pero, cuando hablamos de Microsoft Azure, las dos primeras que aparecen en la palestra son: Azure Table Storage y SQL Azure. En cualquier caso, ambas opciones son muy buenas y nos aportan gran valor aunque con diferentes matices, entonces ¿por qué opción nos debemos decantar a la hora de almacenar nuestros datos?

Para tomar una decisión es necesario definir las ventajas y fortalezas de cada una de las opciones así como sus debilidades.

SQL Azure

Para los que llevamos años en el mundo del desarrollo de aplicaciones nos es más familiar SQL Azure por ser una base de datos relacional que extiende las capacidades de SQL Server a la nube. Entre los beneficios podemos encontrar escalabilidad, alta disponibilidad, infraestructura administrada y, sobre todo, un enorme abanico de herramientas

Azure Table Storage

Azure Table Storage se fundamenta en un concepto más moderno que SQL Azure, NoSQL que es NO-relacional con lo que no dispondremos de relaciones “fuertes” entre nuestros datos lo que aporta una ventaja a la hora de almacenar grandes cantidades de datos.

Analizando la definición

La mayor diferencia, como se puede observar, se trata de la fortaleza en la relación y estructuras de datos donde, en el caso de SQL Azure nos permitirá trabajar con modelos relacionales de una forma natural, con transacciones, procedimientos almacenados, triggers, etc. En el caso de Azure Table Storage no disponemos de estas relaciones y capacidades pero al mismo tiempo, al no tenerlas, se abre una amplia gama de beneficios como el hecho de poder almacenar diferentes entidades (generalmente relacionadas entre sí de forma lógica) en una misma tabla, como por ejemplo (persona, empleado y cliente) y acceder a los datos de una forma mucho más rápida y simple.

Entonces, ¿cómo decidimos cuál usar?

Aunque, como siempre en el ámbito de la informática, podríamos usar cualquiera de las opciones, dependiendo de la funcionalidad y del objetivo de nuestras aplicaciones habrá una de ellas que será más beneficiosa. Una forma simple de tomar la decisión es seguir un criterio basado en lo siguiente:

Azure Table Storage

  • Almacenaje de grandes volúmenes de datos
  • Sin necesidad de de consultas complejas
  • Recuperación ante desastres de pérdidas de datos gracias a la georedundancia
  • Capacidad de escalado eficaz sin nuestra intervención

SQL Azure

  • Nuestros modelos están altamente relacionados
  • Necesidad de uso de otras características como procedimientos almacenados, constraints, etc.
  • Necesidad de BI
  • Consultas complejas

Almacenado de datos híbridos

En el caso de que nuestra aplicación necesitara de los beneficios de ambas opciones, siempre podríamos optar por la posibilidad de almacenar algunos datos en SQL Azure y otros en Azure Table Storage sin mayor problema que el de tener que disponer de dos cadenas de conexión y dos conectores diferentes para poder interactuar con la información.

Otras consideraciones

Tipos de datos

Algunas cuestiones a tener en cuenta son los tipos de datos, que en Azure Table Storage se limitan a 8 básicos, con lo que tendríamos que tener bien definidos nuestros modelos o, de lo contrario, podríamos estar perdiendo información. Los tipos aceptados son los siguientes:

  • Binary
  • Bool
  • DateTime
  • Double
  • GUID
  • Int
  • Int64
  • String

Almacenamiento

Si bien, Azure Table Storage es capaz de almacenar hasta 200TB de información por tabla, frente a los 150GB por base de datos de SQL Azure, también hemos de tener en cuenta que el primero sólo es capaz de trabajar con filas de no más de 1MB frente a los 2GB de capacidad por fila del segundo. Esto nos indica una cosa bien clara, y es que en Azure Table Storage no vamos a poder almacenar ficheros en la base de datos tal y como sí se podía hacer en SQL Azure por lo que debemos apoyarnos fielmente en Azure Blob Storage, otro de los pilares del almacenamiento en Microsoft Azure.

Consultas

Podría parecer extraño pero, Azure Table Storage sólo permite obtener 1000 filas por consulta y, aunque nos provee de métodos para continuar con la extracción de datos, no deja de ser un “problema” que debemos tener en cuenta a la hora de elegir esta opción. En cambio, SQL Azure tal y como SQL Server, no dispone de límite más que el que nos imponga la tecnología que estemos usando.

Precios

costs

Si necesitáis más información al respecto, podéis contactar con nosotros o acceder a los sitios oficiales de ambas opciones, SQL Azure y Azure Table Storage

mm

Sobre Santiago Porras Rodríguez

UX Developer MVP Windows Platform Development Nokia Developer Champion Experto en desarrollo de experiencias de usuario. Apasionado por las nuevas tecnologías, sobre todo Microsoft, destacando Windows Phone, Windows 8 y SharePoint. Colaboro con la comunidad de desarrolladores como moderador de los foros de SharePoint en MSDN y TechNet, escribiendo artículos en mi blog personal en Geeks.ms y ocasionalmente sobre SharePoint en CompartiMOSS.com. Además, soy uno de los coordinadores de TenerifeDev, grupo de usuarios de .NET de Tenerife y WPSUG, grupo de usuarios de Windows Phone. Puedes encontrarme en la red microparticipando en Twitter con el usuario @saintwukong
Esta entrada ha sido publicada en Azure Table Storage, Cloud computing, Microsoft Azure, SQL Azure y etiquetada como , , , , . Enlace permanente .
Suscríbete a Piensa en Sofware desarrolla en Colores

Suscríbete a Piensa en Sofware desarrolla en Colores

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores