Introduktion till HiveQL

HiveQL, ofta känd som HQL, är ett SQL-liknande frågespråk för att bearbeta stora bitar data från Hadoop-miljön. Hive, som ursprungligen utvecklades av Facebook runt 2007, har senare blivit ett Apache-projekt med öppen källkod. Hivefrågor med syntax som liknar SQL har blivit populära bland dataanalytiker idag. HiveQL med HDFS för lagring och MapReduce för bearbetning hjälper till att få insikter för big data-användare med minimal kodningsupplevelse. Olika andra distribuerade beräkningsmotorer som Apache Tez och Apache Spark kan användas med HiveQL för snabbare bearbetning av storskalig dataanalys. De olika sätten att använda HiveQL är - CLI (Command Line Interface), kommersiella produkter som Karmasphere, Clouderas open source Hue och Qubole.

Arbeta med HiveQL

Hive tillhandahåller en SQL-liknande dialekt för datamanipulering, vilket eliminerar behovet av att vi skriver låg nivå MapReduce-jobb för att hämta data (via Mapper) och samla slutresultat (genom Reducer Modules).

  • Utför Hivefråga

Steg som är involverade i att köra en Hive-fråga är:

  1. Hive-gränssnittet (via CLI eller Web UI) skickar frågan till Driver (som är JDBC, ODBC eller Thrift Server) för att kompilera, optimera och köra. Den kontrollerar frågan via en kompilator för syntax och exekveringsplan.
  2. Compiler skickar förfrågan till Metastore och tar emot Metadata som svar.
  3. Kompilatorn kommunicerar körplanen tillbaka till föraren, som vidare skickar den till exekveringsmotorn.
  4. Exekveringsmotorn interagerar med Jobbspåraren, som är Namnoden för att få jobbet gjort.
  5. Parallellt utför exekveringsmotorn också Metadata-operation.
  6. Namnnod får jobbet gjort av Uppgiftsspårare eller Datanoder.
  7. Resultat som delas med exekveringsmotorn, som sedan visas till gränssnittet genom drivrutinen.
  • Optimering av frågor

Ställa in HiveQL för bättre optimering av frågor. Med kommandona nedan kan vi åsidosätta standardkonfigurationerna och möjliggöra snabbare körning av frågan.

1 . SET hive.execution.engine = tez

Som standard är exekveringsmotorn inställd som Mapreduce, men vi kan uttryckligen ställa den till tez (endast för Hadoop 2) eller Spark (för Hive 1.1. 0 och framåt).

2 . SET hive.mapred.mode = ostrikt

Detta är för dynamisk partitionering vilket är användbart för att ladda stora datamängder. Statisk partitionering är dock inställd som standard, vilket sker i ”strikt” läge.

3 . SET hive.vectorized.execution = sant

set hive.vectorized.execution.enabled = true

Vektoriserad frågekörning tillåter operation som –aggregat, filter eller sammanfogningar att ske i grupper om 1024 rader istället för en rad i taget.

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

När du ansluter sig till en stor datauppsättning med en mycket liten datauppsättning är kartförbindelser effektivare och kan ställas in med kommandot ovan.

5 . SET hive.exec.parallel = sant

MapReduce-jobb utförs parallellt i Hadoop. Ibland, om frågor inte är beroende av varandra, kan parallellkörning föredras vilket leder till bättre minneshantering.

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

Detta gör det möjligt att lagra den slutliga utgången i HDFS i ett komprimerat format.

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

Detta gör det möjligt att lagra den slutliga utgången i HDFS i ett komprimerat format.

Funktioner i HiveQL

  1. Eftersom Hive-frågor är implicit konverteras till kartminskande jobb eller komplexa DAG: er (riktade acykliska grafer). Med hjälp av nyckelordet "Förklara" före frågan kan vi få frågeplanen.
  2. Snabbare utförande av frågan med Metadata-lagring i ett RDMS-format och replikerar data, vilket gör det enkelt att hämta i händelse av förlust.
  3. Bitmappsindexering görs för att påskynda frågor.
  4. Förbättrar prestanda genom att tillåta partitionering av data.
  5. Hive kan behandla olika typer av komprimerade filer, vilket sparar diskutrymme.
  6. För att manipulera strängar, heltal eller datum stöder HiveQL utökning av användardefinierade funktioner (UDF), för att lösa problem som inte stöds av inbyggda UDF: er.
  7. Det tillhandahåller en rad ytterligare API: er för att bygga en anpassad sökmotor.
  8. Olika filformat stöds som Textfile, Sequencefile, ORC (Optimized Row Columnar), RCFile, Avro och Parkett. ORC-filformat är bäst lämpat för att förbättra fråga prestanda eftersom det lagrar data på det mest optimerade sättet, vilket leder till snabbare körning av frågan.
  9. Det är ett effektivt dataanalys- och ETL-verktyg för stora datasätt 10. Lätt att skriva frågor eftersom det liknar SQL. DDL (Data definition language) -kommandon i bikup används för att specificera och ändra strukturen för databasen eller tabellerna i bikupan. Dessa kommandon släpper, skapar, trunkerar, ändrar, visar eller beskriver.

begränsningar

  1. Hivefrågor har högre latens eftersom Hadoop är ett batchorienterat system.
  2. Kapslade eller subfrågor stöds inte.
  3. Uppdatering eller radering eller infoga kan inte utföras på en inspelningsnivå.
  4. Databehandling eller frågning i realtid erbjuds inte via Hive Scope of HQL.

Med petabytes data, från miljarder till biljoner rekord, har HiveQL ett stort utrymme för big data-proffs.

Omfattning av HiveQL

Nedan är de sätt på vilka omfattningen av HiveQL utvidgas och bättre tjänar syftet med att analysera humungous data som genereras av användare varje dag.

Säkerhet: Hive tillhandahåller datasäkerhet tillsammans med behandling av stora data. Denna uppgift är komplex för det distribuerade systemet, eftersom flera komponenter behövs för att kommunicera med varandra. Kerberos godkännandestöd tillåter autentisering mellan klient och server.

Låsning: Hive saknar traditionellt låsning på rader, kolumner eller frågor. Hive kan utnyttja Apache Zookeeper för att låsa stöd.

Arbetsflödeshantering : Apache Oozie är en arbetsflödesplanerare för att automatisera olika HiveQL-frågor för att utföra sekventiellt eller parallellt.

Visualisering: Zeppelin anteckningsbok är en webbaserad anteckningsbok som möjliggör interaktiv dataanalys. Det stöder Hive och Spark för datavisualisering och samarbete.

Slutsats

HiveQL används ofta i olika organisationer för att lösa komplexa användningsfall. Tänk på de funktioner och begränsningar som språket erbjuder, Hive-frågespråket används inom telekommunikation, hälso- och sjukvård, detaljhandel, bank och finansiella tjänster och till och med NASA: s Test Propulsion Laboratory: s klimatutvärderingssystem. Enkel att skriva SQL som frågor och kommandon konton för bredare acceptans. Den växande jobbmöjligheten inom detta område lockar fräschare och yrkesverksamma från olika sektorer för att få praktisk erfarenhet och kunskap om området.

Rekommenderade artiklar

Detta är en guide till HiveQL. Här diskuterar vi introduktionen till HiveQL, Optimering av frågor och dess begränsningar och funktioner. Du kan också gå igenom våra relaterade artiklar för att lära dig mer -

  1. Vad är Hive-datatyper?
  2. Hive Alternativ | Ta reda på funktionerna
  3. Toppkomponenter i Hive-kommandon
  4. Topp 10 Hiveintervjufrågor

Kategori: