Verschil tussen Hive en HBase

Apache Hive en HBase zijn op Hadoop gebaseerde big data-technologieën. Ze hebben allebei gegevens opgevraagd. Hive en HBase draaien op Hadoop en verschillen in functionaliteit. Hive is een op kaart verkleinen gebaseerd SQL-dialect, terwijl HBase alleen MapReduce ondersteunt. HBase slaat gegevens op in de vorm van sleutel / waarde of kolomfamilieparen, terwijl Hive geen gegevens opslaat.

Head to Head verschillen tussen Hive vs HBase (Infographics)

Hieronder staat het top 8-verschil tussen bijenkorf versus HBase

Belangrijkste verschillen tussen Hive versus HBase

  • Hbase is compatibel met ACID, terwijl Hive dat niet is.
  • Hive ondersteunt partitionering en filtercriteria op basis van de datumnotatie, terwijl HBase automatische partitionering ondersteunt.
  • Hive ondersteunt geen update-instructies, terwijl HBase ze ondersteunt.
  • Hbase is sneller in vergelijking met Hive bij het ophalen van gegevens.
  • Hive wordt gebruikt om gestructureerde gegevens te verwerken, terwijl HBase, omdat het schema-vrij is, elk type gegevens kan verwerken.
  • Hbase is sterk (horizontaal) schaalbaar in vergelijking met Hive.
  • Hive analyseert de gegevens op de HDFS met behulp van SQL-query's en converteert deze vervolgens naar een kaart en vermindert het aantal taken, terwijl het in Hbase, omdat het in realtime streaming is, rechtstreeks zijn bewerkingen in de database uitvoert door te partitioneren naar tabellen en kolomfamilies.
  • wanneer we naar de query van data hive gaan, gebruikt een shell die bekend staat als Hive shell om de opdrachten te geven, terwijl HBase, omdat het een database is, we een opdracht gebruiken om de gegevens in HBase te verwerken.
  • Om naar de Hive-shell te gaan, gebruiken we de opdracht hive. Na het geven hiervan lijkt het op een bijenkorf>. In HBase geven we eenvoudigweg als Gebruik HBase.

Hive vs HBase vergelijkingstabel

Basis voor vergelijking

BijenkorfHBase
DatabasetypeHet is geen databaseHet ondersteunt NoSQL-database
Type verwerkingHet ondersteunt batchverwerking, dwz OLAPHet ondersteunt realtime datastreaming, dat wil zeggen OLTP
DatabasemodelHive ondersteunt een schemamodelHbase is zonder schema
WachttijdHive heeft een lage latentieHbase heeft een hoge latentie
KostenHet is duurder in vergelijking met HBaseHet is kostenbesparend
wanneer te gebruikenHive kan worden gebruikt wanneer we geen complexe MapReduce-code willen schrijvenHBase kan worden gebruikt wanneer we willekeurige toegang willen hebben om een ​​grote hoeveelheid gegevens te lezen en te schrijven
Gebruik casesHet moet worden gebruikt om gegevens te analyseren die gedurende een bepaalde periode zijn opgeslagenHet moet worden gebruikt om de realtime verwerking van gegevens te analyseren.
VoorbeeldenHubspot is een voorbeeld voor HiveFacebook is het beste voorbeeld voor Hbase

Verschillen in codering tussen Hive versus HBase

Laten we nu de fundamentele verschillen tussen Hive en HBase in codering bespreken.

Basis voor vergelijking

BijenkorfHBase
Om een ​​database aan te makenDATABASE MAKEN (INDIEN NIET BESTAAT) DATABASE-NAAM;Omdat Hbase een database is, hoeven we geen specifieke database te maken
Een database neerzettenDROP DATABASE (INDIEN BESTAAT) DATABASE-NAAM (BEPERKING OF CASCADE);NA
Een tabel makenCREËER (TIJDELIJKE OF EXTERNE) TAFEL (INDIEN NIET BESTAAT) TABELNAAM

((kolomnaam data_type (opmerking kolom-opmerking), …)) (opmerkingstabel_commentaar) (RIJ FORMAT rij-indeling) (Opgeslagen als bestandsindeling)
CREËREN '', ''
Een tabel wijzigenALTER TABELnaam RENAME NAAR nieuwe naam

ALTER TABLE name DROP (COLUMN) kolomnaam

ALTER TABEL naam KOLOM TOEVOEGEN (col-spec (, col-spec ..))

ALTER TABEL naam VERANDEREN kolomnaam nieuw-naam nieuw-type

ALTER TABEL naam VERVANG KOLOMMEN (col-spec (, col-spec ..))

WIJZIG 'TABLE-NAME', NAME => 'COLUMN-NAME', VERSIONS =>
Een tabel uitschakelenNAschakel 'TABLE-NAME' -> uit om de opgegeven tabelnaam uit te schakelen

disable_all 'r *' -> om alle tabellen uit te schakelen die overeenkomen met de reguliere expressie

Een tabel inschakelenNAschakel 'TABLE-NAME' in
Een tafel neerzettenDROPTAFEL ALS BESTAAT tabelnaamAls we een tafel willen laten vallen, moeten we deze eerst uitschakelen

'tabelnaam' uitschakelen

drop 'table-name'

Op dezelfde manier kunnen we disable_all en drop_all gebruiken om de tabellen te verwijderen die overeenkomen met de opgegeven reguliere expressie.

Om databases weer te gevendatabases weergeven;NA
Om tabellen in de database weer te geventoon tabellen;lijst
Om het schema van een tabel te beschrijventabelnaam beschrijven;beschrijf 'tabelnaam'

Integratie van Hive vs HBase

  • Hive installeren en configureren.
  • Installeer en configureer HBase.
  • Voor integratie van zowel Hive als HBase gebruiken we STORAGE HANDLERS in Hive.
  • Storage Handlers is een combinatie van SERDE, InputFormat, OutputFormat die elke externe entiteit als een tabel in Hive accepteert.
  • Dus deze functie helpt een gebruiker om SQL-vragen te stellen, of de tabel nu aanwezig is in Hadoop of in de op NOSQL gebaseerde database zoals HBase, MongoDB, Cassandra, Amazon DynamoDB.
  • Nu zullen we een voorbeeld bekijken voor het verbinden van Hive met HBase met behulp van HiveStorageHandler:
  • Eerst moeten we de Hbase-tabel maken met behulp van de opdracht.

maak 'Student', 'personalinfo', 'dept info' aan

-> Persoonlijke info en afd. Info maken twee verschillende kolomfamilies in de studententabel.

  • We moeten enkele gegevens in de studententabel invoegen, zoals hieronder vermeld.

zet 'student', 'sid01 ′, ' personalinfo: name ', ' Ram '
zet 'student', 'sid01 ′, ' personalinfo: mailid ', ' '
zet 'student', 'sid01 ′, ' deptinfo: deptname ', ' Java '
zet 'Student', 'sid01 ′, ' deptinfo: joinyear ', ' 1994 ′

-> Evenzo kunnen we gegevens maken voor sid02, sid03 …

  • Nu moeten we Hive-tabel maken die naar HBase-tabel verwijst.
  • Voor elke kolom in de Hbase maken we één specifieke tabel voor die kolom in Hive. In dit geval maken we 2 tabellen 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'

-> Op dezelfde manier moeten we een gedetailleerde infotabel in de component maken.

  • Nu kunnen we SQL-query's schrijven in een component zoals hieronder vermeld.

select * from student_hbase;

Op deze manier kunnen we Hive integreren met HBase.

Conclusie - Hive vs HBase

Zoals besproken, zijn het beide verschillende technologieën die verschillende functionaliteiten bieden waarbij Hive werkt met behulp van SQL-taal en het kan ook worden genoemd omdat HQL en HBase sleutel / waarde-paren gebruiken om de gegevens te analyseren. Hive en HBase werken beter als ze worden gecombineerd omdat Hive een lage latentie heeft en een enorme hoeveelheid gegevens kan verwerken, maar geen up-to-date gegevens kan behouden en HBase ondersteunt geen analyse van gegevens maar ondersteunt updates op rijniveau voor een grote hoeveelheid Van de gegevens.

Aanbevolen artikel

Dit is een leidraad geweest voor Hive vs HBase, hun betekenis, vergelijking van persoon tot persoon, belangrijkste verschillen, vergelijkingstabel en conclusie. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Apache Pig vs Apache Hive - Top 12 nuttige verschillen
  2. Ontdek de 7 beste verschillen tussen Hadoop en HBase
  3. Top 12 vergelijking van Apache Hive vs Apache HBase (Infographics)
  4. Hadoop vs Hive - Ontdek de beste verschillen

Categorie: