Differenza tra alveare e HBase

Apache Hive e HBase sono tecnologie di big data basate su Hadoop. Entrambi hanno usato per interrogare i dati. Hive e HBase funzionano su Hadoop e si differenziano per la loro funzionalità. Hive è un dialetto SQL basato sulla riduzione della mappa, mentre HBase supporta solo MapReduce. HBase memorizza i dati sotto forma di coppie chiave / valore o famiglia di colonne mentre Hive non memorizza i dati.

Differenze testa a testa tra Hive vs HBase (infografica)

Di seguito è la 8 differenza principale tra Hive vs HBase

Differenze chiave tra Hive e HBase

  • Hbase è compatibile ACID mentre Hive no.
  • Hive supporta il partizionamento e i criteri di filtro in base al formato della data, mentre HBase supporta il partizionamento automatico.
  • Hive non supporta le dichiarazioni di aggiornamento mentre HBase le supporta.
  • Hbase è più veloce rispetto a Hive nel recupero dei dati.
  • Hive viene utilizzato per elaborare dati strutturati mentre HBase, essendo privo di schemi, può elaborare qualsiasi tipo di dati.
  • Hbase è altamente (orizzontalmente) scalabile rispetto a Hive.
  • Hive analizza i dati su HDFS con il supporto di query SQL e quindi li converte in una mappa e riduce i lavori mentre in Hbase poiché è in tempo reale lo streaming esegue direttamente le sue operazioni sul database partizionando in tabelle e famiglie di colonne.
  • quando si arriva alla query di dati hive utilizza una shell nota come shell Hive per emettere i comandi mentre HBase dal momento che è database useremo un comando per elaborare i dati in HBase.
  • Per andare alla shell Hive useremo il comando hive. Dopo averlo dato, apparirà come hive>. In HBase, diamo semplicemente come Use HBase.

Tabella comparativa Hive vs HBase

Base per il confronto

AlveareHBase
Tipo di databaseNon è un databaseSupporta il database NoSQL
Tipo di elaborazioneSupporta l'elaborazione batch ovvero OLAPSupporta lo streaming di dati in tempo reale, ad es. OLTP
Modello di databaseHive supporta il modello di schemaHbase è privo di schemi
LatenzaL'alveare ha una bassa latenzaHbase ha un'alta latenza
CostoÈ più costoso rispetto a HBaseÈ conveniente
quando usareHive può essere usato quando non vogliamo scrivere codice MapReduce complessoHBase può essere usato quando vogliamo avere accesso casuale per leggere e scrivere una grande quantità di dati
Casi d'usoDovrebbe essere usato per analizzare i dati che vengono memorizzati per un periodo di tempoDovrebbe essere usato per analizzare l'elaborazione dei dati in tempo reale.
EsempiHubspot è un esempio di HiveFacebook è il miglior esempio di Hbase

Differenze nella codifica tra Hive e HBase

Parliamo ora delle differenze di base tra Hive e HBase nella codifica.

Base per il confronto

AlveareHBase
Per creare un databaseCREA DATABASE (SE NON ESISTE) DATABASE-NAME;Poiché Hbase è un database, non è necessario creare un database specifico
Per eliminare un databaseDROP DATABASE (SE ESISTE) DATABASE-NAME (RESTRICT O CASCADE);N / A
Per creare una tabellaCREA TABELLA (TEMPORANEO O ESTERNO) (SE NON ESISTE) TABELLA-NOME

((tipo-colonna-nome-dati (commento-colonna-commento), ….)) (commento tabella_commenti) (formato riga FORMATO FILA) (memorizzato come formato file)
CREARE '', ''
Modificare una tabellaALTER TABLE name RENAME TO new-name

ALTER TABLE nome DROP (COLUMN) nome-colonna

ALTER TABLE nome AGGIUNGI COLONNE (col-spec (, col-spec ..))

ALTER TABLE nome CAMBIA nome-colonna nuovo-nome nuovo-tipo

Nome ALTER TABLE SOSTITUIRE COLONNE (col-spec (, col-spec ..))

ALTER 'TABLE-NAME', NAME => 'COLUMN-NAME', VERSIONS =>
Disabilitare una tabellaN / Adisabilita 'TABLE-NAME' -> per disabilitare il nome tabella specificato

disable_all 'r *' -> per disabilitare tutte le tabelle che corrispondono all'espressione regolare

Abilitazione di una tabellaN / Aabilita 'TABLE-NAME'
Rilasciare un tavoloDROP TABLE SE ESISTE nome-tabellaSe vogliamo eliminare una tabella, prima dobbiamo disabilitarla

disabilita 'nome-tabella'

rilascia 'table-name'

Allo stesso modo, possiamo usare disable_all e drop_all per eliminare le tabelle che corrispondono all'espressione regolare specificata.

Per elencare i databasemostra database;N / A
Per elencare le tabelle nel databasemostra tabelle;elenco
Descrivere lo schema di una tabelladescrivere il nome della tabella;descrivere 'nome-tabella'

Integrazione di Hive vs HBase

  • Installa e configura Hive.
  • Installa e configura HBase.
  • Per l'integrazione di Hive e HBase, utilizziamo HANDLER DI STORAGE in Hive.
  • I gestori di archiviazione sono una combinazione di SERDE, InputFormat, OutputFormat che accetta qualsiasi entità esterna come tabella in Hive.
  • Quindi questa funzione aiuta un utente a inviare query SQL, sia nella tabella presente in Hadoop che nel database basato su NOSQL come HBase, MongoDB, Cassandra, Amazon DynamoDB.
  • Ora esamineremo un esempio per connettere Hive con HBase usando HiveStorageHandler:
  • Innanzitutto, dobbiamo creare una tabella Hbase usando il comando

creare "Studente", "personalinfo", "informazioni di reparto"

-> Personalinfo e dept info creano due diverse famiglie di colonne nella tabella Student.

  • Dobbiamo inserire alcuni dati nella tabella Student, ad esempio, come indicato di seguito.

metti "studente", "sid01", "personalinfo: nome", "Ram"
metti "studente", "sid01", "personalinfo: mailid", " "
metti 'studente', 'sid01 ′, ' deptinfo: deptname ', ' Java '
metti 'Student', 'sid01 ′, ' deptinfo: joinyear ', ' 1994 ′

-> Allo stesso modo, possiamo creare dati per sid02, sid03 …

  • Ora dobbiamo creare una tabella Hive che punta alla tabella HBase.
  • Per ogni colonna in Hbase, creeremo una tabella particolare per quella colonna in Hive. In questo caso, creeremo 2 tabelle in Hive

create external table student_hbase(sid String, name String, mailid String)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler with serdeproperties("hbase.columns.mapping"=":key, personalinfo:name, personalinfo:mailid")
tblproperties("hbase.table.name"="student");
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

-> Allo stesso modo, dobbiamo creare una tabella dei dettagli delle informazioni di reparto in hive.

  • Ora possiamo scrivere query SQL in un alveare come indicato di seguito.

select * from student_hbase;

In questo modo, possiamo integrare Hive con HBase.

Conclusione - Hive vs HBase

Come discusso, entrambi sono tecnologie diverse che forniscono funzionalità diverse in cui Hive funziona utilizzando il linguaggio SQL e può anche essere chiamato come HQL e HBase utilizzano coppie chiave-valore per analizzare i dati. Hive e HBase funzionano meglio se combinati perché Hive ha una bassa latenza e può elaborare un'enorme quantità di dati ma non è in grado di conservare i dati aggiornati e HBase non supporta l'analisi dei dati ma supporta gli aggiornamenti a livello di riga su una grande quantità di dati.

Articolo raccomandato

Questa è stata una guida a Hive vs HBase, il loro significato, confronto testa a testa, differenze chiave, tabella di confronto e conclusioni. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Apache Pig vs Apache Hive - Le 12 principali differenze utili
  2. Scopri le 7 migliori differenze tra Hadoop e HBase
  3. I 12 migliori confronti tra Apache Hive e Apache HBase (infografica)
  4. Hadoop vs Hive - Scopri le migliori differenze

Categoria: