Sommario:
Video: Tommaso d'Aquino: le cinque vie, gli attributo di Dio e il metodo analogico 2025
HBase (Hadoop Database) è un'implementazione Java di Google BigTable. Google definisce BigTable come una "mappa ordinata multidimensionale sparsa, distribuita e persistente. "È una definizione abbastanza concisa, ma sarai anche d'accordo che è un po 'complicato. Per abbattere un po 'la complessità di BigTable, segue una discussione di ogni attributo.
Hbase è scarso
Come si può intuire, il sistema di archiviazione dati distribuito BigTable è stato progettato per soddisfare le esigenze dei big data. Ora, le applicazioni di big data memorizzano molti dati, ma il contenuto di big data è spesso variabile. Immagina una tabella tradizionale in un database aziendale che memorizza le informazioni di contatto del cliente, come mostrato:
ID cliente | Cognome | Nome | Nome intermedio | Indirizzo e-mail | Indirizzo |
---|---|---|---|---|---|
00001 | Smith | John | Timothy | 1 Hadoop Lane, NY 11111 | |
00002 | Doe | Jane | NULL | NULL | 7 HBase Ave, CA 22222 |
Un'azienda o un individuo può richiedere un record di dati completo per ciascuno dei suoi clienti o dei suoi componenti. Un buon esempio è il tuo medico, che ha bisogno di tutte le tue informazioni di contatto per fornirti le cure adeguate. Altre società o individui potrebbero richiedere solo informazioni di contatto parziali o potrebbero aver bisogno di apprendere tali informazioni nel tempo.
Ad esempio, una società di assistenza clienti può elaborare chiamate telefoniche o messaggi di posta elettronica per richieste di assistenza. I clienti possono scegliere o meno di fornire alle società di servizi tutte le loro informazioni di contatto. Tuttavia, con ogni interazione nel tempo, le aziende possono ottenere ulteriori informazioni sui loro clienti che consentiranno loro di fornire un servizio migliore, ad esempio inviando avvisi di servizio proattivo.
In questo contesto, sparse significa che i campi nelle righe possono essere vuoti o NULL, ma ciò non porta HBase a una brusca interruzione. HBase può gestire il fatto che non conosca (ancora) il secondo nome e l'indirizzo e-mail di Jane Doe, ad esempio.
Ecco un altro esempio: un database per la memorizzazione di immagini satellitari. Si scopre che Google utilizza la tecnologia BigTable per archiviare immagini satellitari della terra. In quasi tutti i casi, ogni volta che si memorizzano le immagini, i metadati vengono memorizzati anche con esso.
I metadati possono includere l'indirizzo stradale dell'immagine o solo la latitudine e la longitudine se l'immagine viene catturata dal deserto. I metadati sono variabili nel contenuto, quindi alcuni campi saranno NULL - e questo è OK.
In entrambi gli esempi, i set di dati raccolti possono essere estremamente grandi, specialmente nel secondo esempio.I database di immagini sono quasi sempre misurati in terabyte o talvolta in petabyte.
HBase è progettato per la memorizzazione di big data, ma è anche progettato per la memorizzazione di record di dati sparsi senza alcun costo. Questa preoccupazione è fondamentale quando si utilizzano applicazioni di big data! Memorizzare alcuni record NULL su un milione di righe è uno spreco, ma cerca di immaginare lo spreco su un quadrilione di righe!
Per fortuna, questa è stata una considerazione chiave per i designer Google e la comunità HBase. I dati sparsi sono supportati senza sprechi di spazio di archiviazione costoso.
E non finisce qui. Considera la potenza di un archivio dati senza schema. La tabella mostra una classica tabella dei contatti del cliente. Quando le aziende progettano queste tabelle, sanno in anticipo cosa vogliono archiviare. In altre parole, lo schema è fisso ; è definito anche prima che il primo byte di informazioni sia memorizzato nella tabella.
Cosa succede se, nel tempo, è necessario un nuovo campo per un cliente? Che ne dici di un handle di Twitter o di un nuovo numero di cellulare? Sei apparentemente bloccato con uno schema che non funziona più per te.
Bene, HBase risolve anche questa sfida: non puoi saltare i campi senza alcun costo quando non hai i dati, ma anche aggiungere dinamicamente campi (o colonne nel vernacolo HBase) oltre tempo senza dover ridisegnare lo schema o interrompere le operazioni.
Quindi puoi pensare a HBase come archivio dati senza schema; cioè, è fluido - puoi aggiungere, sottrarre o modificare lo schema mentre vai avanti.
HBase è distribuito e persistente
BigTable è un archivio dati distribuito e persistente. Persistente significa semplicemente che i dati memorizzati in BigTable (e HBase, per quella materia) rimarranno o rimarranno dopo la fine del programma o della sessione. È piuttosto semplice: persistente significa che persiste, ma dovresti dedicare un po 'più di tempo a pensare a in che modo i dati vengono mantenuti.
Nel suo documento BigTable, Google ha descritto il file system distribuito noto come Google File System o GFS. Si scopre che, proprio come HBase è un'implementazione open source di BigTable, HDFS è un'implementazione open source di GFS.
Per impostazione predefinita, HBase fa uso di HDFS per mantenere i suoi dati sull'archiviazione su disco. Sebbene altri archivi di dati distribuiti possano essere utilizzati con HBase, la maggior parte delle installazioni HBase fa leva su HDFS. Questo ha perfettamente senso dato che HBase è il "Database Hadoop" - hey, è incorporato nel nome, per carità.
HDFS è una tecnologia di abilitazione chiave non solo per Hadoop ma anche per HBase. Archiviando i dati in HDFS, HBase offre affidabilità, disponibilità, scalabilità senza discontinuità, alte prestazioni e molto altro - tutto su server distribuiti convenienti!
HBase ha una mappa ordinata multidimensionale
Partendo dalle basi, una mappa (anche conosciuta come array associativo ) è una raccolta astratta di coppie chiave-valore, dove la chiave è unica. Questa definizione è fondamentale per la comprensione di HBase poiché il modello di dati HBase viene spesso descritto in modi diversi, spesso in modo incompleto come un archivio orientato alle colonne.
HBase è, in fondo, un archivio dati di valori-chiave in cui ogni chiave è univoca, ovvero appare al massimo una volta nell'archivio dati HBase. Inoltre, la mappa è ordinata e multidimensionale. Le chiavi sono memorizzate in HBase e ordinate in ordine lessicografico byte. Ogni valore può avere più versioni, il che rende il modello di dati multidimensionale. Per impostazione predefinita, le versioni dei dati sono implementate con un timestamp.
