Top Hive-opdrachten met voorbeelden in HQL



Deze blog bespreekt Hive Commands met voorbeelden in HQL. CREATE, DROP, TRUNCATE, ALTER, SHOW, DESCRIBE, USE, LOAD, INSERT, JOIN en nog veel meer Hive-opdrachten

Laten we in deze blogpost de belangrijkste Hive-opdrachten bespreken met voorbeelden. Deze Hive-opdrachten zijn erg belangrijk om de basis voor op te zetten .

Edureka 2019 Tech Career Guide is uit! De populairste functies, precieze leertrajecten, branchevooruitzichten en meer in de gids. Downloaden nu.

Wat is Hive?

Apache Hive is een datawarehouse-systeem dat is gebouwd om op Hadoop te werken. Het wordt gebruikt voor het opvragen en beheren van grote datasets die zich in gedistribueerde opslag bevinden. Voordat Hive een open source-project van Apache Hadoop werd, ontstond het op Facebook. Het biedt een mechanisme om structuur te projecteren op de gegevens in Hadoop en om die gegevens op te vragen met behulp van een SQL-achtige taal genaamd HiveQL (HQL).





Hive wordt gebruikt omdat de tabellen in Hive vergelijkbaar zijn met tabellen in een relationele database. Als je bekend bent met SQL, is het een makkie. Veel gebruikers kunnen de gegevens tegelijkertijd opvragen met Hive-QL.

Wat is HQL?

Hive definieert een eenvoudige SQL-achtige querytaal voor het opvragen en beheren van grote gegevenssets, genaamd Hive-QL (HQL). Het is gemakkelijk te gebruiken als u bekend bent met SQL-taal. Hive stelt programmeurs die bekend zijn met de taal in staat om het aangepaste MapReduce-framework te schrijven om meer geavanceerde analyses uit te voeren.



Gebruik van Hive:

1. De gedistribueerde opslag van Apache Hive.

2. Hive biedt tools om eenvoudig data-extract / transform / load (ETL) mogelijk te maken

3. Het biedt de structuur op verschillende gegevensformaten.



4. Door Hive te gebruiken, hebben we toegang tot bestanden die zijn opgeslagen in Hadoop Distributed File System (HDFS wordt gebruikt voor het opvragen en beheren van grote datasets die zich in bevinden) of in andere data-opslagsystemen zoals Apache HBase.

Beperkingen van Hive:

& bull Hive is niet ontworpen voor online transactieverwerking (OLTP), het wordt alleen gebruikt voor de online analytische verwerking.

& bull Hive ondersteunt het overschrijven of vasthouden van gegevens, maar niet updates en verwijderingen.

& bull In Hive worden subquery's niet ondersteund.

Waarom wordt Hive ondanks Pig gebruikt?

Dit zijn de redenen waarom Hive wordt gebruikt ondanks de beschikbaarheid van Pig:

  • Hive-QL is een declaratieve taalregel SQL, PigLatin is een gegevensstroomtaal.
  • Pig: een datastroomtaal en -omgeving voor het verkennen van zeer grote datasets.
  • Hive: een gedistribueerd datawarehouse.

Onderdelen van Hive:

Metastore:

Hive slaat het schema van de Hive-tabellen op in een Hive Metastore. Metastore wordt gebruikt om alle informatie over de tafels en scheidingswanden in het magazijn op te slaan. Standaard wordt de metastore in hetzelfde proces uitgevoerd als de Hive-service en de standaard Metastore is DerBy Database.

SerDe:

Serializer, Deserializer geeft instructies voor het verwerken van een record.

Hive-opdrachten:

Data Definition Language (DDL)

DDL-instructies worden gebruikt om de tabellen en andere objecten in de database te bouwen en te wijzigen.

DDL-opdracht Functie
CREËER Het wordt gebruikt om een ​​tabel of database te maken
TONEN Het wordt gebruikt om Database, Tabel, Eigenschappen, etc. weer te geven
LEEFTIJD Het wordt gebruikt om wijzigingen aan te brengen in de bestaande tabel
BESCHRIJVEN Het beschrijft de tabelkolommen
TRUNCATE Wordt gebruikt om de rijen met tabellen permanent af te kappen en te verwijderen
VERWIJDEREN Verwijdert de tabelgegevens, maar kan worden hersteld

Ga naar de Hive-shell door het commando sudo hive te geven en voer het commando in ‘Creëren database naam> ’ om de nieuwe database in de Hive te maken.

Maak een Hive-database met behulp van Hive-opdrachten

Om de databases in het Hive-magazijn weer te geven, voert u de opdracht ‘ toon databases ’.

De database wordt aangemaakt op een standaardlocatie van het Hive-magazijn. In Cloudera, Hive-databaseopslag in een / user / hive / magazijn.

Het commando om de database te gebruiken is GEBRUIK

Kopieer de invoergegevens van lokaal naar HDFS met behulp van de opdracht kopiëren van lokaal.

Wanneer we een tabel in bijenkorf maken, wordt deze gemaakt op de standaardlocatie van het bijenkorfmagazijn. - '/ user / hive / warehouse', na het aanmaken van de tabel kunnen we de gegevens van HDFS naar de hive-tabel verplaatsen.

De volgende opdracht maakt een tabel met de locatie '/user/hive/warehouse/retail.db'

Opmerking : retail.db is de database die is gemaakt in het Hive-magazijn.

Beschrijven geeft informatie over het schema van de tabel.

Data Manipulation Language (DML)

DML-statements worden gebruikt om gegevens in de database op te halen, op te slaan, te wijzigen, te verwijderen, in te voegen en bij te werken.

Voorbeeld:

LADEN, INVOEGEN verklaringen.

Syntaxis:

LAAD gegevens inpad naar tabel [tabelnaam]

De Load-bewerking wordt gebruikt om de gegevens naar de overeenkomstige Hive-tabel te verplaatsen. Als het trefwoord lokaal is gespecificeerd, dan zal in de load-opdracht het lokale bestandssysteempad worden opgegeven. Als het trefwoord local niet is opgegeven, moeten we het HDFS-pad van het bestand gebruiken.

Hier zijn enkele voorbeelden van het LOAD data LOCAL commando

Na het laden van de gegevens in de Hive-tabel kunnen we de gegevensmanipulatie-instructies toepassen of geaggregeerde functies de gegevens ophalen.

Voorbeeld om het aantal records te tellen:

De statistische functie Count wordt gebruikt om het totale aantal records in een tabel te tellen.

‘Externe’ tabel maken:

De maak externe trefwoord wordt gebruikt om een ​​tabel te maken en biedt een locatie waar de tabel wordt gemaakt, zodat Hive geen standaardlocatie voor deze tabel gebruikt. Een EXTERN tabel verwijst naar elke HDFS-locatie voor zijn opslag, in plaats van naar standaardopslag.

Commando invoegen:

De invoegen commando wordt gebruikt om de data Hive-tabel te laden. Invoegingen kunnen worden gedaan aan een tabel of een partitie.

& bull INSERT OVERWRITE wordt gebruikt om de bestaande gegevens in de tabel of partitie te overschrijven.

& bull INSERT INTO wordt gebruikt om de gegevens toe te voegen aan bestaande gegevens in een tabel. (Opmerking: INSERT IN TO syntax is work from the version 0.8)

Voorbeeld voor de opdracht ‘Gepartitioneerd door’ en ‘Gegroepeerd op’:

‘Gepartitioneerd door ‘Wordt gebruikt om de tabel in de partitie te verdelen en kan in emmers worden verdeeld met de‘ Gegroepeerd door ‘Commando.

Wanneer we de gegevens Hive-throwing-fouten invoegen, is de dynamische partitiemodus strikt en is de dynamische partitie niet ingeschakeld (door Jeff Bij dresshead website ). We moeten dus de volgende parameters instellen in de Hive-shell.

stel hive.exec.dynamic.partition = true in

Om dynamische partities in te schakelen, is deze standaard false

set hive.exec.dynamic.partition.mode = nonstrict

Partitie wordt gedaan door de categorie en kan worden onderverdeeld in buckets met behulp van de opdracht ‘Geclusterd door’.

De instructie ‘Drop Table’ verwijdert de gegevens en metagegevens voor een tabel. Bij externe tabellen worden alleen de metadata verwijderd.

De instructie ‘Drop Table’ verwijdert de gegevens en metagegevens voor een tabel. Bij externe tabellen worden alleen de metadata verwijderd.

Laad data local inpath ‘aru.txt’ in table tablename en dan controleren we werknemer1 table met Select * from table name commando

Om het aantal records in de tabel te tellen met Select tellen (*) van txnrecords

Aggregatie :

Selecteer aantal (categorie DISTINCT) uit tabelnaam

Dit commando telt de verschillende categorie ‘cate’ -tabellen. Hier zijn er 3 verschillende categorieën.

Stel dat er een andere tabelcate is waarin f1 de veldnaam van de categorie is.

Groeperen:

De opdracht Groep wordt gebruikt om de resultatenset te groeperen op een of meer kolommen.

fibonacci-code c ++

Selecteer categorie, som (bedrag) uit txt-records, groep per categorie

Het berekent het bedrag van dezelfde categorie.

Het resultaat van een tafel wordt opgeslagen in een andere tafel.

Maak een tabel nieuwe tabelnaam als select * uit de oude tabelnaam

Join Command:

Hier wordt nog een tabel in de naam gemaakt ‘E-mails’

Deelnemen aan operatie :

Er wordt een samenvoegbewerking uitgevoerd om velden uit twee tabellen te combineren door gemeenschappelijke waarden te gebruiken.

Linker buitenste verbinding :

Het resultaat van een left outer join (of gewoon left join) voor tabellen A en B bevat altijd alle records van de 'linker'-tabel (A), zelfs als de join-voorwaarde geen overeenkomend record in de' rechter'-tabel vindt (B).

Rechts buitenste verbinding :

Een rechter buitenste verbinding (of rechter verbinding) lijkt sterk op een linker buitenste verbinding, behalve dat de behandeling van de tafels omgekeerd is. Elke rij van de 'juiste' tafel (B) zal minstens één keer in de samengevoegde tafel verschijnen.

Volledige deelname :

De samengevoegde tabel bevat alle records van beide tabellen en vult NULL-waarden in voor ontbrekende overeenkomsten aan beide zijden.

Als we klaar zijn met hive, kunnen we de opdracht quit gebruiken om de hive-shell te verlaten.

Hive verlaten

Hive is slechts een deel van de grote puzzel genaamd Big Data en Hadoop. Hadoop is veel meer dan alleen Hive. Klik hieronder om te zien welke andere vaardigheden u in Hadoop moet beheersen.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.

Gerelateerde berichten:

7 manieren waarop big data-training uw organisatie kan veranderen

Hive-gegevensmodellen