Table des matières:
Vidéo: Big data : données, données, donnez-moi ! - #DATAGUEULE 15 2024
Vous trouverez deux types de bases de données de documents pour les projets Big Data. L'un est souvent décrit comme un référentiel pour un contenu de style document complet. L'autre est une base de données pour stocker des composants de document pour le stockage permanent en tant qu'entité statique ou pour l'assemblage dynamique des parties d'un document. La structure des documents et de leurs parties est fournie par JavaScript Object Notation (JSON) et / ou JSON binaire (BSON).
Les bases de documents sont plus utiles lorsque vous devez produire beaucoup de rapports et qu'ils doivent être assemblés dynamiquement à partir d'éléments qui changent fréquemment.
À la base, JSON est un format d'échange de données basé sur un sous-ensemble du langage de programmation JavaScript. Bien que faisant partie d'un langage de programmation, il est de nature textuelle et très facile à lire et à écrire. Il a également l'avantage d'être facile à gérer pour les ordinateurs. Deux structures de base existent dans JSON, et elles sont supportées par de nombreux langages de programmation modernes, sinon tous.
La première structure de base est une collection de paires nom / valeur, et elles sont représentées par programme en tant qu'objets, enregistrements, listes à clés, etc. La deuxième structure de base est une liste ordonnée de valeurs, et elles sont représentées par programme sous forme de tableaux, de listes ou de séquences. BSON est une sérialisation binaire de structures JSON conçues pour augmenter les performances et l'évolutivité.
MongoDB pour le Big Data
MongoDB est le nom du projet "hu (mongo) us database". Il est géré par une société appelée 10gen comme open source et est disponible gratuitement sous GNU AGPL v3. 0 licence. Les licences commerciales avec un support complet sont disponibles auprès de 10gen.
MongoDB est composé de bases de données contenant "collections. "Une collection est composée de" documents "et chaque document est composé de champs. Tout comme dans les bases de données relationnelles, vous pouvez indexer une collection.
Cela augmente les performances de la recherche de données. Contrairement à d'autres bases de données, cependant, MongoDB renvoie quelque chose appelé "curseur", qui sert de pointeur vers les données. C'est une fonctionnalité très utile car elle offre la possibilité de compter ou de classer les données sans les extraire. Nativement, MongoDB supporte BSON, l'implémentation binaire des documents JSON.
MongoDB est également un écosystème composé des éléments suivants:
-
Services de haute disponibilité et de réplication pour la mise à l'échelle des réseaux locaux et étendus.
-
Système de fichiers basé sur une grille, permettant de stocker des objets volumineux en les divisant en plusieurs documents.
-
MapReduce pour prendre en charge l'analyse et l'agrégation de différentes collections / documents.
-
Un service de fragmentation qui distribue une base de données unique sur un cluster de serveurs dans un seul ou plusieurs centres de données. Le service est piloté par une clé de partition. La clé shard est utilisée pour distribuer les documents intelligemment sur plusieurs instances.
-
Service d'interrogation prenant en charge les requêtes ad hoc, les requêtes distribuées et la recherche en texte intégral.
Les implémentations efficaces de MongoDB incluent
-
Gestion de contenu à volume élevé
-
Réseaux sociaux
-
Archivage
-
Analyse en temps réel
CouchDB pour les données volumineuses
Une autre base de données non relationnelle très populaire est CouchDB. Comme MongoDB, CouchDB est open source. Il est maintenu par Apache Software Foundation et est disponible sous la licence Apache v2. 0. Contrairement à MongoDB, CouchDB a été conçu pour imiter le web à tous égards.
Par exemple, CouchDB est résilient aux interruptions de réseau et continuera à fonctionner magnifiquement dans les zones où la connectivité réseau est inégale. Il est également à la maison sur un smartphone ou dans un centre de données. Tout cela vient avec quelques compromis. En raison du mimétisme Web sous-jacent, CouchDB est à latence élevée, ce qui entraîne une préférence pour le stockage de données local.
CouchDB n'est pas bien adapté aux petites implémentations. Vous devez déterminer si ces compromis peuvent être ignorés lorsque vous commencez votre implémentation de Big Data.
Les bases de données CouchDB sont composées de documents constitués de champs et de pièces jointes, ainsi que d'une "description" du document sous la forme de métadonnées automatiquement gérées par le système. La technologie sous-jacente comporte toutes les capacités ACID. L'avantage de CouchDB par rapport à la relationnel est que les données sont empaquetées et prêtes à être manipulées ou stockées plutôt que réparties entre les lignes et les tables.
CouchDB est également un écosystème avec les capacités suivantes:
-
Compaction: Les bases de données sont compressées pour éliminer l'espace perdu lorsqu'un certain niveau de vide est atteint. Cela aide les performances et l'efficacité pour la persistance.
-
Voir le modèle: Mécanisme de filtrage, d'organisation et de rapport sur les données utilisant un ensemble de définitions stockées en tant que documents dans la base de données. Vous trouvez une relation un-à-plusieurs de bases de données à des vues, de sorte que vous pouvez créer de nombreuses façons différentes de représenter les données que vous avez «découpées et coupées». "
-
Services de réplication et distribués: Le stockage de documents est conçu pour fournir une réplication bidirectionnelle. Les répliques partielles peuvent être conservées pour prendre en charge la distribution basée sur des critères ou la migration vers des périphériques avec une connectivité limitée. La réplication native est basée sur les homologues, mais vous pouvez implémenter des méthodes maître / esclave, maître / maître et d'autres types de réplication.
Les implémentations efficaces de CouchDB incluent
-
Gestion de contenu à haut volume
-
Passage du smartphone au centre de données
-
Applications avec connectivité réseau limitée ou lente