SimpleDB a une certaine évolutivité des limites. Vous ne pouvez échelle par la fragmentation, et il a une latence plus élevée que mongodb ou cassandra, elle a un débit maximum et qu'il est à un prix plus élevé que les autres options. L'évolutivité est manuel (vous avez du fragment).
Si vous avez besoin d'une plus large d'options de requête et vous avez un fort taux de lecture et que vous ne disposez pas de beaucoup de données mongodb est mieux. Mais pour la durabilité, vous devez utiliser au moins 2 mongodb instances de serveur maître/esclave. Sinon, vous pouvez perdre la dernière minute de vos données. L'évolutivité est manuel. C'est beaucoup plus rapide que simpledb. Autosharding est mis en œuvre dans la version 1.6.
Cassandra a la faiblesse des options de requête, mais est aussi durable que postgresql. Il est aussi rapide que mongo et plus rapide sur une augmentation de la taille des données. Les opérations d'écriture sont plus rapides que les opérations de lecture sur cassandra. Il peut l'échelle automatiquement par le tir des instances ec2, mais vous devez modifier les fichiers de config un peu (si je me souviens bien). Si vous avez des téraoctets de données cassandra est votre meilleur pari. Pas besoin d'éclat de vos données, il a été conçu distribué à partir du 1er jour. Vous pouvez avoir un nombre quelconque de copies pour l'ensemble de vos données et si certains serveurs sont morts, il reviendra automatiquement les résultats en direct et de distribuer la mort du serveur de données à d'autres personnes. Il est très tolérant aux pannes. Vous pouvez inclure n'importe quel nombre de cas, il est beaucoup plus facile à l'échelle que les autres options. Il a une forte .net et java les options du client. Ils ont le regroupement de connexion, l'équilibrage de la charge, le marquage des morts serveurs,...
Une autre option est de hadoop pour le big data, mais ce n'est pas en temps réel comme les autres, vous pouvez utiliser hadoop pour datawarehousing. Ni cassandra ou mongo ont les transactions, donc si vous avez besoin d'opérations de postgresql est un meilleur ajustement. Une autre option est d'Amazon RDS, mais c'est la performance qui est mauvais et le prix est élevé. Si vous souhaitez utiliser des bases de données ou simpledb vous pouvez également besoin de mise en cache des données (par exemple: memcached).
Pour les applications web, si vos données est petit je recommande mongo, s'il est grand cassandra est mieux. Vous n'avez pas besoin d'une couche de mise en cache avec mongo ou cassandra, ils sont déjà rapide. Je ne recommande pas simpledb, elle impose aussi à vous pour Amazon comme vous l'avez dit.
Si vous êtes à l'aide de c#, java ou scala vous pouvez écrire une interface et mettre en œuvre de mongo, mysql, cassandra ou quoi que ce soit d'autre pour la couche d'accès aux données. C'est plus simple dans la dynamique des langues (par exemple, frotter,python,php). Vous pouvez écrire un fournisseur pour deux d'entre eux si vous voulez et pouvez modifier le stockage peut-être que dans l'exécution, par un seulement un changement de configuration, ils sont tous possibles. Développement avec mongo,cassandra et simpledb est plus facile qu'une base de données, et ils sont libres de schéma, il dépend également de la bibliothèque de client/connecteur que vous utilisez. Le plus simple est de mongo. Il n'y a qu'un index par table de cassandra, de sorte que vous avez à gérer d'autres indices vous-même, mais avec la version 0.7 de cassandra index secondaires sont bu possible que je sais. Vous pouvez également commencer par l'un d'eux et le remplacer dans le futur si vous devez.
Ce qui concerne
Serdar Irmak