web-dev-qa-db-fra.com

Tables de stockage Azure vs SQL

Je commence tout juste à apprendre Azure et je ne vois pas trop de scénarios dans lesquels vous voudriez mettre quelque chose dans une table de stockage Azure, par opposition à SQL. Je suppose que je suis peut-être habitué à travailler dans des environnements où j'ai besoin de données associées?

Quand est-il préférable de placer quelque chose dans une table de stockage Azure et non dans une table d'une base de données SQL Azure?

53
TheWommies

SQL Azure est idéal lorsque vous souhaitez utiliser des données structurées à l'aide de relations, d'index, de contraintes, etc.

La table de stockage Azure est idéale lorsque vous devez travailler avec des données structurées centralisées sans relations et généralement avec des volumes importants.

Le prix: SQL Azure: 25,98 $/mois pour 5 Go

Table de stockage: 21,88 USD/m pour 175 Go (sans transaction ni bande passante) Ainsi, lorsque vous stockez de gros volumes de données, la table de stockage coûte beaucoup moins cher ... pensez à la journalisation, par exemple.

La centralisation: Windows Azure est un environnement distribué pour serveurs, donc si vous enregistrez quelque chose sur une machine, les autres ne le sauront pas. Par conséquent, la table de stockage est une bonne solution pour les connexions centralisées, le en gardant à l'esprit qu'il y a une latence même dans un centre de données)

La vitesse: Si vous le concevez correctement, dans de nombreux cas, la table de stockage devrait être plus rapide que SQL Azure, mais cela dépend probablement des cas d'utilisation et je n'ai pas vraiment testé cela.

59
Ragnar

Bien que j'ajoute tard à ce message, je voulais mentionner une chose qui semble ne pas avoir été couverte. Azure SQL a des limites de données (bientôt, je suppose). 5 Go pour Web Edition et 150 Go pour Business Edition. Pour certaines solutions, cela convient parfaitement. Mais pour d’autres, ce n’est peut-être pas le cas et j’ai personnellement rencontré cela.

Les limites supérieures des disques des tables Azure sont beaucoup plus élevées. Je crois que c'est 100 To.

De plus, bien que NoSQL soit non relationnel par nature, ce n'est pas nécessairement une mauvaise chose. Nous pensons souvent que nous avons besoin de relations alors qu'en fait, si nous pensons différemment à nos problèmes, nous pourrions ne pas en avoir autant. Vous pouvez appliquer des relations dans le code lui-même, ce que la plupart des développeurs font probablement beaucoup plus qu'ils ne le pensent vraiment.

28

J'utiliserais toujours les tables Azure comme BEAUCOUP solution moins chère si:

  • J'effectue des sélections de table UNIQUEMENT par PK (la sélection sur la propriété est lente en raison de la désérialisation complète)
  • Je peux vivre avec un ensemble limité de Linq ( Query Operators (Table Service Support)
  • Je n'ai pas besoin de joindre des tables et d'effectuer des requêtes complexes sur le serveur 
  • J'ai besoin de partitionner horizontalement le "partage" de mes données (Sql Azure Federations est un pas dans cette direction par les tables ont PartionKey à partir du jour 0
10
Nikola Malovic

Vous devriez lire les avantages de 'NoSQL' http://en.wikipedia.org/wiki/NoSQL

Bases de données non relationnelles, pas de schéma, big data, évoluez pour en nommer quelques-unes! 

0
user728584