Je souhaite utiliser une base de données NoSQL sur Windows Azure et le volume de données sera très important. Qu'un stockage sur une table Azure ou une base de données MongoDB exécutée à l'aide d'un rôle Worker puisse offrir de meilleures performances et une plus grande évolutivité?. Quelqu'un at-il utilisé MongoDB sur Azure en utilisant un rôle Travailleur? Veuillez partager votre opinion sur l'utilisation de MongoDB sur Azure sur le stockage de table Azure.
Réponses
Trop de publicités?Table de Stockage est un noyau de Windows Azure fonction de stockage, conçu pour être évolutif (100 TO 200TB 500TB par compte), durable (triple-reproduit dans le centre de données, éventuellement georeplicated à un autre centre de données), et schemaless (chaque ligne peut contenir toutes les propriétés que vous voulez). Une ligne est situé en clé de partition + touche de ligne, donner de la recherche rapide. Tous les accès au Stockage est par l'intermédiaire d'un bien définis REST API utilisable par n'importe quelle langue (avec des Kits de développement, construit sur le haut de l'Api REST, déjà en place .NET, PHP, Java, Python Et Ruby).
MongoDB est un document de base de données orientée. Pour l'exécuter dans Azure, vous devez installer MongoDB sur le web/les rôles de travail ou de la Machine Virtuelle, de pointer vers un cloud drive (ce qui fournit une lettre de lecteur) ou disques (pour Windows/Linux Virtual Machines), éventuellement activer la journalisation (que je recommande), et éventuellement définir un point de terminaison externe pour votre utilisation (ou de l'accès via un réseau virtuel). Cloud Drive / disque connecté, en passant, est en fait stockée dans un Azure Blob, vous donnant la même durabilité et georeplication comme Azure Tables.
Lorsque l'on compare les deux, rappelez-vous que la Table de Stockage de Stockage en tant que Service: il vous suffit d'accéder à un bien-connu du point de terminaison REST. Avec MongoDB, vous êtes responsable du maintien de la base de données (par exemple, chaque fois que MongoDB Inc (anciennement 10gen) pousse d'une nouvelle version de MongoDB, vous devrez mettre à jour votre serveur en conséquence).
Concernant MongoDB Inc version alpha pointé par jtoberon: Si vous regardez de plus près, vous verrez quelques éléments clés:
- La configuration est un Autonome mongodb exemple, sans réplique-ensembles ou des fragments. Concernant replica-ensembles, vous pouvez bénéficier de plusieurs avantages l'utilisation de la version Autonome, en raison de la façon dont le stockage Blob œuvres.
- Pour fournir une haute disponibilité, vous pouvez exécuter à plusieurs instances. Dans ce cas, une seule instance sert la base de données, et l'un est un "warm standby" qui lance l'mongod processus dès que l'autre instance est en panne (pour l'entretien redémarrage, panne de matériel, etc.).
Alors que 10gen Windows Azure wrapper est toujours considéré comme 'alpha' mongod.exe ne l'est pas. Vous pouvez lancer le mongod exe comme vous le feriez pour lancer une autre exe de Windows. C'est juste le code de gestion à travers le lancement, et c'est ce que l'alpa mise en œuvre est de démontrer.
EDIT 2011-12-8: Ce n'est plus dans un état alpha. Vous pouvez télécharger la dernière MongoDB+projet Windows Azure ici, qui fournit du jeu de réplicas de soutien.
Pour les performances, je pense que vous aurez besoin de faire un peu d'analyse comparative. Cela dit, considérez les points suivants:
- Lors de l'accès à l'une des tables de Stockage ou MongoDB, disons, un Rôle Web, vous êtes toujours à atteindre le Stockage Windows Azure système.
- MongoDB utilise beaucoup de mémoire pour son propre cache. Pour cette raison, beaucoup de grande ampleur, MongoDB systèmes sont déployés à plus grande instance de tailles. Pour la Table d'accès au Stockage, vous n'aurez pas la même mémoire de la taille d'examen.
J'ai utilisé les deux.
Azure Tableaux : simple, rapide, vraiment dur à écrire, même pour les requêtes simples.
Mongo : fonctionne bien, beaucoup de capacités d'interrogation, nécessite plusieurs instances pour être fiable.
En un mot, si vos questions sont très simples (clé->valeur), vous devez exécuter une comparaison des coûts (principalement le nombre de transactions par rapport à la de stockage versus coût de l'hébergement Mongo sur Azure). Je préfère aller à la table de stockage. Si vous avez besoin de plus d'élaborer des requêtes et ne veux pas aller à SQL Azure, Mongo est probablement votre meilleur pari.
Mon premier choix est AzureTables parce que le modèle SAAS et le faible coût et la SLA de 99,99%
http://alexandrebrisebois.wordpress.com/2013/07/09/what-if-20000-windows-azure-storage-transactions-per-second-isnt-enough/
certaines limites..
http://msdn.microsoft.com/en-us/library/windowsazure/jj553018.aspx
http://www.windowsazure.com/en-us/pricing/calculator/?scenario=data-management
ou AzureSQL pour les petites entreprises
DocumentDB http://azure.microsoft.com/en-us/documentation/services/documentdb/ http://azure.microsoft.com/en-us/documentation/articles/documentdb-limits/
Certains de la "PROPAGANDE"
le deuxième choix est de nombreux fournisseurs de services en nuage, y compris Amazon offre S3
ou Google tables https://developers.google.com/bigquery/pricing
nième choix de gérer le SPECTACLE tout par moi-même n'avons pas le sommeil MongoDB bien je vais regarder de nouveau les deux premières SAAS
Mon choix si je suis en cours d'exécution "NUAGE" je vais aller pour le modèle SAAS autant que possible de "LOUER"...