HBase è un sistema di gestione di database non relazionali basato su colonne, eseguito su Hadoop Distributed File System (HDFS), un componente principale di Apache Hadoop.
HBase offre una modalità fault-tolerant per memorizzare set di dati sparsi, comuni in molti casi d'uso dei big data. È adatto per l'elaborazione dei dati in tempo reale o per l'accesso casuale in lettura/scrittura a grandi volumi di dati.
A differenza dei sistemi di database relazionali, HBase non supporta un linguaggio di interrogazione strutturato come SQL e, di fatto, non è un data store relazionale. Le applicazioni HBase sono scritte in Java proprio come una tipica applicazione Apache MapReduce. HBase supporta la scrittura di applicazioni in Apache Avro, REST e Thrift.
Un sistema HBase è progettato per scalare linearmente. Comprende un insieme di tabelle standard con righe e colonne, in modo molto simile a un database tradizionale. Ogni tabella deve avere un elemento definito come chiave primaria e tutti i tentativi di accesso alle tabelle HBase devono utilizzare questa chiave primaria.
Avro, come componente, supporta molti tipi di dati primitivi, tra cui dati numerici, binari e stringhe, così come una serie di tipi complessi, tra cui array, mappe, enumerazioni e record. Si può anche definire un ordine per i dati.
HBase si affida a ZooKeeper per il coordinamento ad alte prestazioni. ZooKeeper è integrato in HBase, ma se utilizzi un cluster di produzione, ti consigliamo di avere un cluster ZooKeeper dedicato, integrato con il suo cluster HBase.
HBase funziona bene con Hive, un motore di query per l'elaborazione in batch dei big data, per supportare le applicazioni di big data fault-tolerant.
Una colonna HBase rappresenta un attributo di un oggetto; se la tabella memorizza i log diagnostici dei server del suo ambiente, ogni riga potrebbe essere un log record e una colonna tipica potrebbe essere il timestamp di quando il log record è stato scritto, o il nome del server da cui proviene il record.
HBase consente di raggruppare molti attributi in famiglie di colonne, in modo che gli elementi di una famiglia di colonne siano memorizzati tutti insieme. Questo è diverso da un database relazionale basato su righe, dove tutte le colonne di una determinata riga sono memorizzate insieme. Con HBase devi predefinire lo schema della tabella e specificare le famiglie di colonne. Tuttavia, nuove colonne possono essere aggiunte alle famiglie in qualsiasi momento, rendendo lo schema flessibile e in grado di adattarsi alle mutevoli esigenze applicative.
Proprio come HDFS ha un NameNode e nodi slave, e MapReduce ha slave JobTracker e TaskTracker, HBase è basato su concetti simili. In HBase un nodo master gestisce il cluster, mentre i server regionali memorizzano parti delle tabelle ed eseguono il lavoro sui dati. Come HDFS ha alcuni problemi aziendali dovuti alla disponibilità del NameNode, HBase è sensibile alla perdita del suo nodo master.
Progetta una strategia dati che elimini i silo, riduca la complessità e migliori la qualità dei dati per esperienze eccezionali di clienti e dipendenti.
Watsonx.data ti consente di scalare l'analytics e l'AI con tutti i tuoi dati, ovunque risiedano, attraverso uno storage dei dati aperto, ibrido e governato.
Sblocca il valore dei dati enterprise con IBM Consulting, creando un'organizzazione basata su insight in grado di generare vantaggi aziendali.