Sommario:
Video: Sqoop Import and Export data from RDMBS and HDFS 2024
Trovate due tipi di database di documenti per progetti di Big Data. Uno è spesso descritto come un repository per il contenuto completo in stile documento. L'altro è un database per la memorizzazione di componenti di documenti per l'archiviazione permanente come entità statica o per l'assemblaggio dinamico delle parti di un documento. La struttura dei documenti e delle loro parti è fornita da JavaScript Object Notation (JSON) e / o Binary JSON (BSON).
I database dei documenti sono molto utili quando devi generare molti report e devono essere assemblati dinamicamente da elementi che cambiano frequentemente.
Al suo interno, JSON è un formato di interscambio di dati, basato su un sottoinsieme del linguaggio di programmazione JavaScript. Sebbene faccia parte di un linguaggio di programmazione, è di natura testuale e molto facile da leggere e scrivere. Ha anche il vantaggio di essere facile da gestire per i computer. Esistono due strutture di base in JSON e sono supportate da molti, se non tutti, i moderni linguaggi di programmazione.
La prima struttura di base è una raccolta di coppie nome / valore e sono rappresentate a livello di programmazione come oggetti, record, elenchi con chiave e così via. La seconda struttura di base è un elenco ordinato di valori e sono rappresentati a livello di programmazione come matrici, elenchi o sequenze. BSON è una serializzazione binaria di strutture JSON progettata per aumentare le prestazioni e la scalabilità.
MongoDB per i big data
MongoDB è il nome del progetto per il sistema "hu (mongo) us database". È gestito da una società chiamata 10gen come open source ed è liberamente disponibile sotto GNU AGPL v3. 0 licenza. Le licenze commerciali con supporto completo sono disponibili da 10gen.
MongoDB è composto da database contenenti "collezioni". "Una raccolta è composta da" documenti "e ogni documento è composto da campi. Proprio come nei database relazionali, puoi indicizzare una raccolta.
Facendo ciò aumenta le prestazioni della ricerca dei dati. A differenza di altri database, tuttavia, MongoDB restituisce qualcosa chiamato "cursore", che funge da puntatore ai dati. Questa è una funzionalità molto utile perché offre la possibilità di contare o classificare i dati senza estrarli. In modo nativo, MongoDB supporta BSON, l'implementazione binaria dei documenti JSON.
MongoDB è anche un ecosistema costituito dai seguenti elementi:
-
Servizi di replica e disponibilità elevata per il ridimensionamento su reti locali e geografiche.
-
Un file system basato su griglia, che consente la memorizzazione di oggetti di grandi dimensioni dividendoli tra più documenti.
-
MapReduce per supportare l'analisi e l'aggregazione di diverse collezioni / documenti.
-
Servizio di condivisione che distribuisce un singolo database su un cluster di server in un singolo o in più data center. Il servizio è guidato da una chiave shard. La chiave shard viene utilizzata per distribuire i documenti in modo intelligente tra più istanze.
-
Un servizio di query che supporta query ad hoc, query distribuite e ricerca full-text.
Le implementazioni efficaci di MongoDB includono
-
Gestione dei contenuti ad alto volume
-
Social networking
-
Archiviazione
-
Analisi in tempo reale
CouchDB per big data
Un altro database non correlato molto popolare è CouchDB. Come MongoDB, CouchDB è open source. È gestito da Apache Software Foundation ed è reso disponibile con Apache License v2. 0. A differenza di MongoDB, CouchDB è stato progettato per imitare il web sotto tutti gli aspetti.
Ad esempio, CouchDB è resistente alle interruzioni di rete e continuerà a funzionare in modo ottimale nelle aree in cui la connettività di rete è irregolare. È anche a casa su uno smartphone o in un centro dati. Tutto ciò comporta alcuni compromessi. A causa della mimetizzazione del Web sottostante, CouchDB è ad alta latenza, con conseguente preferenza per la memorizzazione dei dati locali.
CouchDB non è adatto per implementazioni minori. È necessario determinare se questi trade-off possono essere ignorati quando si inizia l'implementazione dei Big Data.
I database CouchDB sono composti da documenti costituiti da campi e allegati e da una "descrizione" del documento sotto forma di metadati che viene automaticamente gestito dal sistema. La tecnologia di base include tutte le funzionalità ACID. Il vantaggio in CouchDB rispetto alla relazione è che i dati sono pacchettizzati e pronti per la manipolazione o l'archiviazione piuttosto che sparsi su righe e tabelle.
CouchDB è anche un ecosistema con le seguenti funzionalità:
-
Compattazione: I database sono compressi per eliminare lo spazio sprecato quando viene raggiunto un certo livello di vuoto. Questo aiuta le prestazioni e l'efficienza per la persistenza.
-
Visualizza modello: Un meccanismo per filtrare, organizzare e generare report sui dati utilizzando una serie di definizioni archiviate come documenti nel database. Puoi trovare una relazione uno-a-molti dei database con le viste, così puoi creare molti modi diversi di rappresentare i dati che hai "affettato e tagliato a dadini". "
-
Replica e servizi distribuiti: Lo storage dei documenti è progettato per fornire la replica bidirezionale. Le repliche parziali possono essere mantenute per supportare la distribuzione basata su criteri o la migrazione verso dispositivi con connettività limitata. La replica nativa è basata su peer, ma è possibile implementare modalità Master / Slave, Master / Master e altri tipi di replica.
Le implementazioni efficaci di CouchDB includono
-
Gestione dei contenuti ad alto volume
-
Scalabilità da smartphone a data center
-
Applicazioni con connettività di rete limitata o lenta