MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Facteurs à prendre en compte lors du choix de MongoDB pour les applications Big Data

Les progrès technologiques ont apporté des avantages qui doivent être exploités par les organisations commerciales pour une valeur de profit maximale et des coûts opérationnels réduits. Les données ont été l'épine dorsale de ces avancées technologiques à partir desquelles des procédures sophistiquées sont dérivées pour atteindre des objectifs spécifiques. À mesure que la technologie progresse, de plus en plus de données sont introduites dans les systèmes. En outre, à mesure qu'une entreprise se développe, il y a plus de données impliquées et la configuration du système de service doit être un traitement rapide des données, un stockage fiable et offrir une sécurité optimale pour ces données. MongoDB est l'un des systèmes auxquels on peut faire confiance pour atteindre ces facteurs.

Le Big Data fait référence à des données massives qui évoluent rapidement, peuvent être rapidement accessibles et hautement disponibles pour répondre efficacement aux besoins. Les organisations commerciales ont tendance à contre-examiner les configurations de base de données disponibles qui fourniraient les meilleures performances au fil du temps et, par conséquent, tireront parti du Big Data.

Par exemple, les marchés en ligne observent les clics des clients sur le Web, le pouvoir d'achat, puis utilisent les données dérivées pour suggérer d'autres biens comme moyen de publicité ou utilisent les données dans la tarification. Les robots apprennent grâce à l'apprentissage automatique et le processus implique évidemment la collecte de nombreuses données, car le robot devrait conserver ce qu'il a appris en mémoire pour une utilisation ultérieure. Conserver ce type de données complexes avec un logiciel de base de données traditionnel est considéré comme peu pratique.

Caractéristiques du Big Data

Dans les systèmes logiciels, nous considérons le Big Data en termes de taille, de vitesse d'accès et de types de données impliqués. Cela peut être relativement réduit à 3 paramètres : 

  1. Volume
  2. Vitesse
  3. Variété

Volume

Le volume est la taille du Big Data impliqué et va de gigaoctets à téraoctets ou plus. Chaque jour, les grandes entreprises ingèrent des téraoctets de données provenant de leurs opérations quotidiennes. Par exemple, une entreprise de télécommunications souhaite conserver un enregistrement des appels passés depuis le début de son activité, des messages envoyés et de la durée de chaque appel. Au quotidien, beaucoup de ces activités ont lieu, ce qui génère beaucoup de données. Les données peuvent être utilisées dans l'analyse statistique, la prise de décision et la planification tarifaire.

Vitesse

Envisagez des plates-formes telles que le trading Forex qui nécessitent des mises à jour en temps réel sur toutes les machines clientes connectées et affichent les nouvelles mises à jour de la bourse en temps réel. Cela dicte que la base de données de service doit être assez rapide dans le traitement de ces données avec peu de latence à l'esprit. Certains jeux en ligne impliquant des joueurs de différents endroits du monde collectent de nombreuses données à partir des clics, des glissements et d'autres gestes des utilisateurs, puis les transmettent entre des millions d'appareils en quelques microsecondes. Le système de base de données impliqué doit être suffisamment rapide pour faire tout cela en temps réel.

Variété

Les données peuvent être classées en différents types, allant des nombres, des chaînes, des dates, des objets, des tableaux, des données binaires, du code, des données géospatiales et des expressions régulières pour n'en citer que quelques-uns. Un système de base de données optimal doit fournir des fonctions en place pour améliorer la manipulation de ces données sans encourir de procédures supplémentaires du côté client. Par exemple, MongoDB fournit les opérations de géolocalisation à utiliser lors de la récupération des emplacements proches des coordonnées fournies dans la requête. Cette capacité ne peut pas être obtenue avec les bases de données traditionnelles car elles ont été conçues uniquement pour traiter de petites structures de volume de données, moins de mises à jour et certaines structures de données cohérentes. En outre, il faudra des opérations supplémentaires pour atteindre un objectif spécifique, dans le cas des bases de données traditionnelles.

MongoDB peut également être exécuté à partir de plusieurs serveurs, ce qui le rend peu coûteux et infini contrairement aux bases de données traditionnelles qui ne sont conçues que pour fonctionner sur un seul serveur.

Facteurs à prendre en compte lors du choix de MongoDB pour le Big Data

Le Big Data apporte un avantage à l'entreprise lorsqu'il est hautement géré grâce à une puissance de traitement améliorée. Lors de la sélection d'un système de base de données, vous devez tenir compte de certains facteurs concernant le type de données que vous allez traiter et si le système que vous sélectionnez offre cette capacité. Dans ce blog, nous allons discuter des avantages que MongoDB offre pour le Big Data par rapport à Hadoop dans certains cas.

  • Un langage de requête riche pour les requêtes dynamiques
  • Intégration des données
  • Haute disponibilité
  • Indexation et évolutivité
  • Moteur de stockage et gestion de la mémoire efficaces
  • Cohérence et intégrité des données

Langage de requête riche pour l'interrogation dynamique

MongoDB est le mieux adapté au Big Data où les données résultantes nécessitent d'autres manipulations pour la sortie souhaitée. Certaines des ressources puissantes sont les opérations CRUD, le cadre d'agrégation, la recherche de texte et la fonction Map-Reduce. Dans le cadre d'agrégation, MongoDB dispose d'une fonctionnalité de géolocalisation supplémentaire qui peut permettre de faire beaucoup de choses avec des données géospatiales. Par exemple, en créant un index 2Dsphere, vous pouvez récupérer des emplacements dans un rayon défini en fournissant simplement les coordonnées de latitude et de longitude. En se référant à l'exemple de télécommunication ci-dessus, l'entreprise peut utiliser la fonction Map-reduce ou le cadre d'agrégation pour regrouper les appels à partir d'un emplacement donné, en calculant le temps d'appel moyen sur une base quotidienne pour ses utilisateurs ou plusieurs autres opérations. Vérifiez l'exemple ci-dessous.

Ayons une collection de lieux avec les données

{ name: "KE",loc: { type: "Point", coordinates: [ -73.97, 40.77 ] }, category: "Parks"}

{ name: "UG",loc: { type: "Point", coordinates: [ -45.97, 40.57 ] }, category: "Parks"}

{ name: "TZ",loc: { type: "Point", coordinates: [ -73.27, 34.43 ] }, category: "Parks"}

{ name: "SA",loc: { type: "Point", coordinates: [ -67.97, 40.77 ] }, category: "Parks"}

Nous pouvons ensuite trouver des données pour les emplacements proches de [-73.00, 40.00] en utilisant le cadre d'agrégation et à une distance de 1 KM avec la requête ci-dessous :

db.places.aggregate( [

   {

      $geoNear: {

         near: { type: "Point", coordinates: [ -73.00, 40.00 ] },

         spherical: true,

         query: { category: "Parks" },

         distanceField: "calcDistance",

   maxDistance: 10000

      }

   }

]

L'opération Map-Reduce est également disponible dans Hadoop mais elle convient aux requêtes simples. Le processus itératif pour le Big Data utilisant Map-Reduce dans Hadoop est assez lent que dans MongoDB. La raison en est que les tâches itératives nécessitent de nombreux processus de mappage et de réduction avant leur achèvement. Dans le processus, plusieurs fichiers sont générés entre la carte et réduisent les tâches, ce qui la rend tout à fait inutilisable dans une analyse avancée. MongoDb a introduit le framework de pipeline d'agrégation pour éviter ce revers et il est le plus utilisé dans un passé récent.

Intégration des données

MongoDB est basé sur des documents avec la possibilité de mettre plus de champs dans un seul champ qui est appelé incorporation. L'intégration présente l'avantage d'un minimum de requêtes à émettre pour un seul document puisque le document lui-même peut contenir beaucoup de données. Pour les bases de données relationnelles où l'on peut avoir plusieurs tables, vous devez envoyer plusieurs requêtes à la base de données dans le même but.

Haute disponibilité

La réplication des données sur plusieurs hôtes et serveurs est désormais possible avec MongoDB, contrairement aux SGBD relationnels où la réplication est limitée à un seul serveur. Ceci est avantageux dans la mesure où les données sont hautement disponibles à différents endroits et les utilisateurs peuvent être efficacement servis par le serveur le plus proche. En outre, le processus de restauration ou de panne est facilement réalisé compte tenu de la fonction de journalisation de MongoDB qui crée des points de contrôle à partir desquels le processus de restauration peut être référencé.

Indexation et évolutivité

L'indexation primaire et secondaire dans MongoDB présente de nombreux avantages. L'indexation fait que les requêtes sont exécutées en premier, ce qui est une considération nécessaire pour le Big Data, comme nous l'avons vu dans la caractéristique de vitesse du Big Data. L'indexation peut également être utilisée pour créer des partitions. Les partitions peuvent être définies comme des sous-collections contenant des données qui ont été réparties en groupes à l'aide d'une clé de partition. Lorsqu'une requête est émise, la clé de partition est utilisée pour déterminer où chercher parmi les partitions disponibles. S'il n'y avait pas de fragments, le processus prendrait assez de temps pour le Big Data, car tous les documents doivent être examinés et le processus peut même expirer avant que les utilisateurs n'obtiennent ce qu'ils veulent. Mais avec le sharding, la quantité de données à extraire est réduite et, par conséquent, la latence d'attente du retour d'une requête.

Moteur de stockage et gestion de la mémoire efficaces

Les versions récentes de MongoDB définissent le WiredTiger comme moteur de stockage par défaut qui a une capacité exécutive pour gérer plusieurs charges de travail. Ce moteur de stockage présente de nombreux avantages au service du Big Data comme décrit dans cet article. Le moteur possède des fonctionnalités telles que la compression, les points de contrôle et favorise plusieurs opérations d'écriture grâce à la simultanéité des documents. Big Data signifie de nombreux utilisateurs et la fonctionnalité de simultanéité au niveau du document permettra à de nombreux utilisateurs de modifier simultanément dans la base de données sans subir de baisse de performances. MongoDB a été développé en C++, ce qui le rend bon pour la gestion de la mémoire.

Cohérence et intégrité des données

 L'outil de validation JSON est une autre fonctionnalité disponible dans MongoDB pour garantir l'intégrité et la cohérence des données. Il est utilisé pour s'assurer que les données invalides n'entrent pas dans la base de données. Par exemple, s'il existe un champ appelé age, il attendra toujours une valeur entière. Le validateur JSON vérifiera toujours qu'une chaîne ou tout autre type de données n'est pas soumis pour stockage dans la base de données pour ce champ. Cela permet également de s'assurer que tous les documents ont des valeurs pour ce champ dans le même type de données, d'où la cohérence des données. MongoDB offre également des fonctionnalités de sauvegarde et de restauration telles qu'en cas de panne, on peut revenir à l'état souhaité.

Conclusion

MongoDB gère l'analyse des données en temps réel de la manière la plus efficace, donc adaptée au Big Data. Par exemple, l'indexation géospatiale permet une analyse des données GPS en temps réel.

Outre la configuration de sécurité de base, MongoDB dispose d'un outil de validation de données JSON supplémentaire pour garantir que seules les données valides entrent dans la base de données. Étant donné que la base de données est basée sur des documents et que des champs ont été intégrés, très peu de requêtes peuvent être envoyées à la base de données pour récupérer beaucoup de données. Cela le rend idéal pour une utilisation lorsque le Big Data est concerné.