Inleiding tot HiveQL

HiveQL, beter bekend als HQL, is een SQL-achtige query-taal voor het verwerken van grote hoeveelheden gegevens uit de Hadoop-omgeving. Oorspronkelijk ontwikkeld door Facebook rond 2007, is Hive later een open-source Apache-project geworden. Hive queries met syntaxis vergelijkbaar met SQL zijn tegenwoordig populair geworden onder data-analisten. HiveQL met HDFS voor opslag en MapReduce voor verwerking helpt bij het verkrijgen van inzichten voor big data-gebruikers met minimale codeerervaring. Verschillende andere gedistribueerde rekenmachines zoals Apache Tez en Apache Spark kunnen worden gebruikt met HiveQL voor snellere verwerking van grootschalige gegevensanalyses. De verschillende manieren om HiveQL te gebruiken zijn - CLI (Command Line Interface), commerciële producten zoals Karmasphere, Cloudera's open source Hue en Qubole.

Werken van HiveQL

Hive biedt een SQL-achtig dialect voor gegevensmanipulatie, waardoor we geen MapReduce-taken op laag niveau hoeven te schrijven om gegevens op te halen (via Mapper) en de uiteindelijke resultaten te aggregeren (via Reducer-modules).

  • Hive Query uitvoeren

Stappen die betrokken zijn bij het uitvoeren van een Hive-query zijn:

  1. Hive interface (via CLI of Web UI) stuurt de query naar Driver (dat is JDBC, ODBC of Thrift Server) om te compileren, optimaliseren en uitvoeren. Het controleert de query via een compiler op syntaxis en uitvoeringsplan.
  2. Compiler verzendt een verzoek naar Metastore en ontvangt Metadata als antwoord.
  3. De compiler communiceert het uitvoeringsplan terug naar de bestuurder, die het verder naar de Execution-engine stuurt.
  4. De uitvoering-engine werkt samen met de Job Tracker, wat de Name Node is om de klus te klaren.
  5. Tegelijkertijd voert de uitvoering-engine ook Metadata-bewerking uit.
  6. Met Naamknooppunt wordt de taak uitgevoerd door Taakvolger of Gegevensknooppunten.
  7. Resultaten die worden gedeeld met de uitvoeringsengine, die vervolgens via de driver aan de interface worden weergegeven.
  • Optimalisatie van zoekopdrachten

HiveQL afstemmen voor betere optimalisatie van zoekopdrachten. Met de hieronder ingestelde opdrachten kunnen we de standaardconfiguraties overschrijven en snellere query-uitvoering mogelijk maken.

1 . SET hive.execution.engine = tez

Standaard is de uitvoerings-engine ingesteld als Mapreduce, maar we kunnen het expliciet instellen op tez (alleen voor Hadoop 2) of Spark (voor Hive 1.1. 0 en hoger).

2 . SET hive.mapred.mode = unstrict

Dit is voor dynamische partities die handig zijn voor het laden van grote gegevenssets. Statische partitie is echter standaard ingesteld, wat gebeurt in de modus 'Strikt'.

3 . SET hive.vectorized.execution = true

set hive.vectorized.execution.enabled = true

Gevectoriseerde query-uitvoering maakt bewerking mogelijk zoals –aggregaten, filters of joins in batches van 1024 rijen in plaats van één rij tegelijk.

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

Terwijl u een grote gegevensset samenvoegt met een zeer kleine gegevensset, zijn map-joins efficiënter en kunnen ze worden ingesteld met de bovenstaande opdracht.

5 . SET hive.exec.parallel = true

MapReduce-taken worden parallel uitgevoerd in Hadoop. Soms, als vragen niet van elkaar afhankelijk zijn, kan parallelle uitvoering de voorkeur hebben, wat leidt tot beter geheugenbeheer.

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

Hierdoor kan de uiteindelijke uitvoer worden opgeslagen in HDFS in een gecomprimeerd formaat.

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

Hierdoor kan de uiteindelijke uitvoer worden opgeslagen in HDFS in een gecomprimeerd formaat.

Kenmerken van HiveQL

  1. Omdat Hive een taal op hoog niveau is, worden Hive-zoekopdrachten impliciet geconverteerd naar taken met kaartreductie of complexe DAG's (gerichte acyclische grafieken). Met behulp van het sleutelwoord 'Explain' voor de zoekopdracht kunnen we het zoekplan verkrijgen.
  2. Snellere uitvoering van zoekopdrachten met behulp van Metadata-opslag in een RDMS-formaat en repliceert gegevens, waardoor ophalen gemakkelijk is in geval van verlies.
  3. Bitmap-indexering wordt gedaan om zoekopdrachten te versnellen.
  4. Verbetert de prestaties door het partitioneren van gegevens toe te staan.
  5. Hive kan verschillende soorten gecomprimeerde bestanden verwerken, waardoor schijfruimte wordt bespaard.
  6. Om tekenreeksen, gehele getallen of datums te manipuleren, ondersteunt HiveQL het uitbreiden van de door de gebruiker gedefinieerde functies (UDF) om problemen op te lossen die niet worden ondersteund door ingebouwde UDF's.
  7. Het biedt een reeks aanvullende API's om een ​​aangepaste query-engine te bouwen.
  8. Verschillende bestandsformaten worden ondersteund zoals Textfile, Sequencefile, ORC (Optimized Row Columnar), RCFile, Avro en Parket. Het ORC-bestandsformaat is het meest geschikt voor het verbeteren van de queryprestaties omdat het gegevens op de meest geoptimaliseerde manier opslaat, wat leidt tot snellere query-uitvoering.
  9. Het is een efficiënte data-analyse en ETL-tool voor grote datasets 10. Gemakkelijk om vragen te schrijven omdat het vergelijkbaar is met SQL. DDL-opdrachten (Data Definition Language) in component worden gebruikt om de structuur van de database of tabellen in component aan te geven en te wijzigen. Deze opdrachten zijn neerzetten, maken, afkappen, wijzigen, weergeven of beschrijven.

beperkingen

  1. Bijenkorfvragen hebben een hogere latentie omdat Hadoop een batchgeoriënteerd systeem is.
  2. Geneste of subquery's worden niet ondersteund.
  3. Bijwerken of verwijderen of invoegen kan niet op recordniveau worden uitgevoerd.
  4. Real-time gegevensverwerking of opvragen wordt niet aangeboden via de Hive Scope van HQL.

Met petabytes aan gegevens, variërend van miljarden tot triljoenen record, heeft HiveQL een groot bereik voor professionals op het gebied van big data.

Scope van HiveQL

Hieronder staan ​​de manieren waarop de reikwijdte van HiveQL verbreedt en beter dient voor het analyseren van gigantische gegevens die dagelijks door gebruikers worden gegenereerd.

Beveiliging: naast het verwerken van grote gegevens, biedt Hive gegevensbeveiliging. Deze taak is complex voor het gedistribueerde systeem, omdat meerdere componenten nodig zijn om met elkaar te communiceren. Ondersteuning van Kerberos-autorisatie maakt authenticatie tussen client en server mogelijk.

Vergrendelen: traditioneel mist Hive vergrendeling op rijen, kolommen of query's. Hive kan Apache Zookeeper gebruiken voor vergrendelingsondersteuning.

Workflow Management : Apache Oozie is een workflowplanner voor het automatiseren van verschillende HiveQL-query's die sequentieel of parallel moeten worden uitgevoerd.

Visualisatie: Zeppelin-notebook is een webgebaseerd notebook dat interactieve data-analyse mogelijk maakt. Het ondersteunt Hive en Spark voor datavisualisatie en samenwerking.

Conclusie

HiveQL wordt op grote schaal gebruikt door organisaties om complexe use cases op te lossen. Rekening houdend met de functies en beperkingen die de taal biedt, wordt Hive querytaal gebruikt in telecommunicatie, gezondheidszorg, retail, bank- en financiële dienstverlening en zelfs in het klimaatevaluatiesysteem van het Test Propulsion Laboratory van NASA. Het schrijven van SQL, zoals vragen en opdrachten, zorgt voor een bredere acceptatie. De groeiende kans op werk op dit gebied lokt frisser en professionals uit verschillende sectoren om praktijkervaring en kennis over het veld op te doen.

Aanbevolen artikelen

Dit is een gids voor HiveQL. Hier bespreken we de inleiding tot HiveQL, het optimaliseren van zoekopdrachten en de beperkingen en functies. U kunt ook onze gerelateerde artikelen doornemen voor meer informatie -

  1. Wat zijn Hive-gegevenstypen?
  2. Bijenkorf alternatieven | Ontdek de functies
  3. Belangrijkste onderdelen van bijenkorfopdrachten
  4. Top 10 vragen over bijenkorf

Categorie: