Au cours des dernières semaines, j'ai eu affaire à la même question; voici mes observations:
- SQL Server fonctionne, mais ne se redimensionne pas correctement. Nous avons testé une base de données SQL Server d'environ 600 Go de documents et disons simplement que les choses deviennent très lentes.
- Plus ou moins la même chose s'applique à MySQL ... les deux ne sont pas vraiment faits pour les documents ...
- Hadoop/HDFS ne semble pas être mature sur Windows. Alors que Microsoft a une implémentation HDFS disponible, elle est encore en phase RC. Du côté positif, si vous développez pour l'avenir (disons 1 an à la production), cela semble être un bon choix.
- Apache Cassandra semble mature. Sur le positif, la mise en œuvre est très simple; c'est-à-dire: il s'agit simplement d'un simple magasin de valeurs-clés distribuées avec un seul partitionneur, où la clé et la valeur sont un octet []. Cependant, la simplicité de la mise en œuvre signifie également que vous devez travailler sur toutes sortes de problèmes. Si vous avez travaillé avec, vous savez que c'est génial si vous avez besoin de mettre en œuvre Twitter, mais trop simple pour n'importe quoi d'autre. Il balance bien, mais pour être honnête je ne suis pas trop impressionné par la performance. De plus, j'ai rencontré quelques incohérences/corruptions de données, ce qui ne me réchauffe pas vraiment le cœur ... Si vous utilisez Cassandra, j'utiliserais personnellement Aquiles en tant que client (parce que vous rencontrerez assez facilement des trucs de bas niveau) - mais FluentCassandra est aussi un bon client.
- MongoDB est assez mature également. Du côté positif, il est actif et possède une très bonne bibliothèque client C# (contrairement à Cassandra). En outre, bien que le serveur de partition ait crashé plusieurs fois sur mon cluster, la récupération a toujours fait l'affaire (et je ne suis pas trop polie avec les redémarrages :-) et tous les problèmes rencontrés semblent déjà résolus dans la branche développement - donc je ne me sens pas mal à l'aise à ce sujet. La chose la plus importante de MongoDB et de Cassandra est le support des index secondaires.
Toutes ces solutions sont basées sur un disque (par exemple, la persistance sur le disque). J'ai regardé le code de 3-5 et mis en œuvre ma propre solution NoSQL par le passé (il y a environ 6 ans) que nous utilisions depuis des années pour le stockage de données.Pour être honnête, MongoDB est comment je l'aurais implémenté moi-même.
Pour être complet: la seule chose que je n'ai pas encore essayée est CouchDB ... mais franchement, je suis tellement content de MongoDB que je ne vais même pas me tracasser.
-Stefan.
La plupart des NoSQL sont basés sur des disques. comme Azure Table Storage, très bon. MAIS, pas un libre –
Je ne pense pas qu'il y en ait un qui permette de stocker des données de masse (je me souviens que S3 peut stocker peu de données gratuitement), peut-être utiliser le service d'hébergement de fichiers comme DropBox, puis indexer votre clé dans SQL Server –
La bonne chose à propos de SQL Server, c'est qu'il évolue "- Vraiment ?! C'est plutôt contraire en fait. –