Comment les bases de données NoSQL comme MongoDB peuvent-elles être utilisées pour l'analyse des données? Quelles sont les fonctionnalités qui peuvent rendre l'analyse des données plus rapide et plus puissante?
Comment les bases de données NoSQL comme MongoDB peuvent-elles être utilisées pour l'analyse des données? Quelles sont les fonctionnalités qui peuvent rendre l'analyse des données plus rapide et plus puissante?
Réponses:
Pour être parfaitement honnête, la plupart des bases de données NoSQL ne sont pas très bien adaptées aux applications de Big Data. Pour la grande majorité de toutes les applications de Big Data, les performances de MongoDB par rapport à une base de données relationnelle comme MySQL sont considérablement insuffisantes pour justifier de rester à l'écart de quelque chose comme MongoDB.
Cela dit, il existe quelques propriétés vraiment utiles des bases de données NoSQL qui fonctionnent certainement en votre faveur lorsque vous travaillez avec de grands ensembles de données, bien que la probabilité de ces avantages l'emporte sur les performances généralement médiocres de NoSQL par rapport à SQL pour la lecture. les opérations intensives (les plus similaires aux cas d'utilisation de Big Data typiques) sont faibles.
Personnellement, je pourrais vous suggérer de consulter également des bases de données graphiques telles que Neo4j qui montrent de très bonnes performances pour certains types de requêtes si vous cherchez à choisir un backend pour vos applications de science des données.
json
s'agit de données totalement structurées. Vous pouvez techniquement effectuer tout type d'analyse de données dessus, en utilisant une base de données NOSQL n'est en fait pas liée. Il existe des outils construits sur mongo, comme analytica.
L'un des avantages de l'approche NoSQL sans schéma est que vous ne vous engagez pas prématurément et que vous pouvez appliquer le bon schéma au moment de la requête à l'aide d'un outil approprié comme Apache Drill . Voir cette présentation pour plus de détails. MySQL ne serait pas mon premier choix dans un contexte de Big Data.
Considérez, essayez et peut-être même utilisez plusieurs bases de données. Ce n'est pas seulement un problème de «performance» en jeu ici. Cela dépendra vraiment de vos besoins. De combien de données parlez-vous? quel genre de données? à quelle vitesse en avez-vous besoin? Êtes-vous plutôt en lecture ou en écriture?
Voici une chose que vous ne pouvez pas faire dans une base de données SQL: calculer le sentiment. http://www.slideshare.net/shift8/mongodb-machine-learning
Bien sûr, la vitesse dans ce cas peut ne pas être assez rapide pour vos besoins, mais c'est quelque chose qui est possible. Avec une certaine mise en cache de valeurs agrégées spécifiques, il était même tout à fait acceptable. Pourquoi voudriez-vous faire cela? Commodité.
La commodité est vraiment quelque chose qui vous convaincra. C'est exactement pourquoi (à mon avis) des bases de données NoSQL ont été créées. Les performances aussi bien sûr, mais j'essaie de réduire les benchmarks et de me concentrer davantage sur d'autres préoccupations.
Les bases de données MongoDB (et certaines autres NoSQL) ont des fonctionnalités très puissantes telles que la carte / réduction intégrée. Cela pourrait entraîner des économies de temps et d'argent par rapport à l'utilisation de quelque chose comme Hadoop. Ou il pourrait fournir un prototype ou un MVP pour lancer une entreprise plus importante.
Qu'en est-il des bases de données graphiques? Ils sont aussi "NoSQL". Regardez des bases de données comme OrientDB. Si vous voulez discuter des performances ... je ne pense pas que vous allez me montrer une base de données SQL plus rapide =) ... et les bases de données graphiques ont une application vraiment incroyable basée sur ce que vous devez faire.
Les règles de la technologie (et Internet) ne sont pas trop à l'aise avec une chose. Vous allez être limité et vous préparer à l'échec.