Introduktion til HiveQL

HiveQL, almindeligt kendt som HQL, er et SQL-lignende forespørgselssprog til behandling af store bunker af data fra Hadoop-miljøet. Oprindeligt udviklet af Facebook omkring 2007, Hive er senere blevet et open source Apache-projekt. Hiveforespørgsler med syntaks svarende til SQL er blevet populære blandt dataanalytikere i dag. HiveQL ved hjælp af HDFS til opbevaring og MapReduce til behandling hjælper med at få indsigt for big data-brugere med mindst mulig kodningsoplevelse. Forskellige andre distribuerede beregningsmotorer som Apache Tez og Apache Spark kan bruges med HiveQL til hurtigere behandling af storstilt dataanalyse. De forskellige måder at bruge HiveQL på er - CLI (Command Line Interface), kommercielle produkter som Karmasphere, Clouderas open source Hue og Qubole.

Arbejde med HiveQL

Hive leverer en SQL-lignende dialekt til datamanipulation, hvilket eliminerer behovet for, at vi skriver lavt niveau MapReduce-job til hentning af data (gennem Mapper) og samlede slutresultater (gennem Reducer Modules).

  • Udfører Hive-forespørgsel

Trin, der er involveret i udførelsen af ​​en Hive-forespørgsel, er:

  1. Hive-interface (gennem CLI eller Web UI) sender forespørgslen til Driver (som er JDBC, ODBC eller Thrift Server) for at kompilere, optimere og udføre. Det kontrollerer forespørgslen gennem en compiler for syntaks og eksekveringsplan.
  2. Compiler sender anmodning til Metastore og modtager Metadata som et svar.
  3. Compileren kommunikerer udførelsesplanen tilbage til driveren, som yderligere sender den til udførelsesmotoren.
  4. Udførelsesmotoren interagerer med Job Tracker, som er Navneknudepunktet for at få jobbet gjort.
  5. Parallelt udfører eksekveringsmotoren også Metadata-operation.
  6. Navneknap får jobbet udført af Task tracker eller Data noder.
  7. Resultater, der deles med eksekveringsmotoren, som derefter vises på grænsefladen gennem driveren.
  • Optimering af forespørgsler

Indstilling af HiveQL til bedre optimering af forespørgsler. Ved hjælp af nedenstående sæt kommandoer kan vi tilsidesætte standardkonfigurationer og aktivere hurtigere udførelse af forespørgsel.

1 . SET hive.execution.engine = tez

Som standard er eksekveringsmotoren indstillet til Mapreduce, men vi kan eksplicit indstille den til tez (kun for Hadoop 2) eller Spark (for Hive 1.1. 0 og fremefter).

2 . SET hive.mapred.mode = unstrict

Dette er til dynamisk partitionering, som er nyttigt til indlæsning af store datasæt. Statisk partitionering er dog indstillet som standard, hvilket sker i "streng" tilstand.

3 . SET hive.vectorized.execution = sandt

sæt hive.vectorized.execution.enabled = sandt

Vectoriseret forespørgselsudførelse gør det muligt for handlinger som –aggregater, filtre eller sammenføjninger at ske i batches på 1024 rækker i stedet for i en række ad gangen.

4 . SET hive.auto.convert.join = sandt

Når du tilslutter et stort datasæt med et meget lille datasæt, er kortforbindelser mere effektive og kan indstilles ved hjælp af kommandoen ovenfor.

5 . SET hive.exec.parallel = sandt

MapReduce-job udføres parallelt i Hadoop. Nogle gange, hvis forespørgsler ikke er afhængige af hinanden, kan der foretages parallel udførelse, der fører til bedre hukommelsesstyring.

6 . SET hive.exec.compress.output = sandt

Dette gør det muligt at lagre den endelige output i HDFS i et komprimeret format.

7 . SET hive.exec.compress.output = sandt

Dette gør det muligt at lagre den endelige output i HDFS i et komprimeret format.

Funktioner ved HiveQL

  1. Da Hive-forespørgsler er et sprog på højt niveau, implicit implicit konverteres til kort-reducere job eller komplekse DAGs (rettede acykliske grafer). Ved hjælp af nøgleordet 'Forklar' før forespørgslen kan vi få forespørgselsplanen.
  2. Hurtigere udførelse af forespørgsel ved hjælp af Metadata-lagring i et RDMS-format og replikerer data, hvilket gør hentning let i tilfælde af tab.
  3. Bitmap-indeksering udføres for at fremskynde forespørgsler.
  4. Forbedrer ydelsen ved at tillade partitionering af data.
  5. Hive kan behandle forskellige typer komprimerede filer og således spare diskplads.
  6. For at manipulere strenge, heltal eller datoer understøtter HiveQL at udvide de brugerdefinerede funktioner (UDF) for at løse problemer, der ikke understøttes af indbyggede UDF'er.
  7. Det giver en række yderligere API'er til at bygge en tilpasset forespørgselsmotor.
  8. Forskellige filformater understøttes som Textfile, Sequencefile, ORC (Optimized Row Columnar), RCFile, Avro og Parket. ORC-filformat er bedst egnet til at forbedre forespørgselens ydeevne, da det gemmer data på den mest optimerede måde, hvilket fører til hurtigere udførelse af forespørgsel.
  9. Det er et effektivt dataanalyse- og ETL-værktøj til store datasæt 10. Let at skrive forespørgsler, da det ligner SQL. DDL-kommandoer (Data definition sprog) i hive bruges til at specificere og ændre strukturen i databasen eller tabellerne i hive. Disse kommandoer slippes, oprettes, trunkeres, ændres, vises eller beskrives.

Begrænsninger

  1. Forespørgsler fra bikub har højere latenstid, da Hadoop er et batchorienteret system.
  2. Indlejrede eller underforespørgsler understøttes ikke.
  3. Opdatering eller sletning eller indsættelse kan ikke udføres på et postniveau.
  4. Databehandling eller forespørgsel i realtid tilbydes ikke via Hive Scope of HQL.

Med petabytes af data, der spænder fra milliarder til billioner af poster, har HiveQL et stort omfang for big data-fagfolk.

Omfang af HiveQL

Nedenfor er de måder, hvorpå omfanget af HiveQL udvides og bedre tjener formålet med at analysere humungous data, der genereres af brugerne hver dag.

Sikkerhed: Sammen med behandling af store data leverer Hive datasikkerhed. Denne opgave er kompleks for det distribuerede system, da der er behov for flere komponenter for at kommunikere med hinanden. Kerberos-autorisationssupport tillader godkendelse mellem klient og server.

Låsning: Hive mangler traditionelt låsning på rækker, kolonner eller forespørgsler. Hive kan udnytte Apache Zookeeper til at låse support.

Workflow Management : Apache Oozie er en workflow-planlægning, der automatiserer forskellige HiveQL-forespørgsler for at udføre sekventielt eller parallelt.

Visualisering: Zeppelin notebook er en webbaseret notebook, der muliggør interaktiv dataanalyse. Det understøtter Hive og Spark til datavisualisering og samarbejde.

Konklusion

HiveQL er vidt brugt på tværs af organisationer til at løse komplekse brugssager. Husk på de funktioner og begrænsninger, som sproget tilbyder, bruges Hive-forespørgselssprog inden for telekommunikation, sundhedsydelser, detailhandel, bankvirksomhed og finansielle tjenester og endda NASA's Test Propulsion Laboratory's klimavurderingssystem. Brugervenlighed ved at skrive SQL som forespørgsler og kommandoer konti for bredere accept. Den voksende jobmulighed på dette område lokker friskere og fagfolk fra forskellige sektorer for at få praktisk erfaring og viden om området.

Anbefalede artikler

Dette er en guide til HiveQL. Her diskuterer vi introduktionen til HiveQL, optimering af forespørgsler og dens begrænsninger og funktioner. Du kan også gennemgå vores relaterede artikler for at lære mere -

  1. Hvad er Hive-datatyper?
  2. Hive Alternativer | Find ud af funktionerne
  3. Topkomponenter i Hive-kommandoer
  4. Top 10 Hive-interviewspørgsmål

Kategori: