Sissejuhatus HiveQL-i

HiveQL, üldtuntud kui HQL, on SQL-i moodi päringkeel, mille abil töödeldakse Hadoopi keskkonnast suuri andmepakette. Algselt Facebooki poolt välja töötatud 2007. aasta paiku, on Hivest hiljem saanud avatud lähtekoodiga Apache-projekt. Tarupäringud, mille süntaks on sarnane SQL-iga, on tänapäeval andmeanalüütikute seas populaarseks muutunud. HiveQL, kasutades HDFS-i ladustamiseks ja MapReduce töötlemiseks, aitab minimaalse kodeerimise kogemusega suurandmete kasutajatelt teadmisi saada. Mitmeid teisi hajutatud arvutusmootoreid, näiteks Apache Tez ja Apache Spark, saab koos HiveQL-iga kasutada suuremahulise andmeanalüütika kiiremaks töötlemiseks. HiveQLi kasutamise erinevad viisid on CLI (käsurea liides), kaubanduslikud tooted nagu Karmasphere, Cloudera avatud lähtekoodiga Hue ja Qubole.

HiveQLi töötamine

Hive pakub andmetega manipuleerimiseks SQL-i moodi murret, mis välistab vajaduse kirjutada madala taseme MapReduce'i töid andmete toomiseks (Mapperi kaudu) ja lõpptulemuste koondamiseks (redutseerimismoodulite kaudu).

  • Taru päringu täitmine

Taru päringu täitmisel on järgmised sammud:

  1. Taru liides (CLI või Web UI kaudu) saadab päringu draiverile (mis on JDBC, ODBC või Thrift Server) kompileerimise, optimeerimise ja täitmise jaoks. See kontrollib kompilaatori kaudu päringu süntaksi ja täitmiskava.
  2. Koostaja saadab taotluse Metastore'ile ja saab vastusena metaandmeid.
  3. Kompilaator edastab täitmisplaani draiverile tagasi, kes saadab selle edasi mootorile Execution.
  4. Täitmismootor suhtleb töö jälgimiseks tööotsijaga, mis on nimesõlm.
  5. Paralleelselt täidab käivitusmootor ka metaandmeid.
  6. Nimesõlm saab ülesande jälgija või andmesõlmede tehtud töö.
  7. Tulemused, mida jagatakse täitmismootoriga, mida seejärel kuvatakse draiveri kaudu liidesele.
  • Päringute optimeerimine

HiveQLi häälestamine päringute paremaks optimeerimiseks. Allpool seatud käske kasutades saame vaikekonfiguratsioonid alistada ja võimaldada kiiremat päringu täitmist.

1 SET hive.execution.engine = tez

Vaikimisi on täitmismootoriks seatud Mapreduce, kuid me võime selle selgesõnaliselt seada tez-le (ainult Hadoop 2 puhul) või Spark-le (Hive 1.1. 0 alates).

2 SET hive.mapred.mode = lahti tõmmata

See on mõeldud dünaamiliseks jaotamiseks, mis on abiks suurte andmekogumite laadimisel. Staatiline partitsioneerimine on aga vaikeseadeks, mis juhtub “ranges” režiimis.

3 SET hive.vectorized.execution = tõene

määrake hive.vectorized.execution.enabled = true

Vektoriseeritud päringu täitmine võimaldab toimida sarnaselt - agregaadid, filtrid või liitumised toimuvad 1024 rea partiidena ühe rea asemel korraga.

4 SET hive.auto.convert.join = tõene

Kui ühendate suure ja väga väikese andmekogumiga andmekogud, on kaardiliitumised tõhusamad ja neid saab ülaltoodud käsu abil seadistada.

5 SET hive.exec.parallel = tõene

MapReduce'i töid teostatakse Hadoopis paralleelselt. Mõnikord, kui päringud ei sõltu üksteisest, võib eelistada paralleelset täitmist, mis aitab mälu paremini hallata.

6 SET hive.exec.compress.output = tõene

See võimaldab lõplikku väljundit salvestada HDFS-is tihendatud vormingus.

7 SET hive.exec.compress.output = tõene

See võimaldab lõplikku väljundit salvestada HDFS-is tihendatud vormingus.

HiveQLi omadused

  1. Kuna tegemist on kõrgetasemelise keelega, teisendatakse tarude päringud vaikimisi kaardistamiseks mõeldud töödeks või keerukateks DAG-deks (suunatud atsüklilised graafikud). Kasutades märksõna „Selgita” enne päringut, saame päringukava.
  2. Kiirem päringu täitmine, kasutades metaandmete salvestust RDMS-vormingus ja kopeerib andmeid, muutes kaotsi saamise hõlpsaks.
  3. Bittmapide indekseerimine toimub päringute kiirendamiseks.
  4. Parandab jõudlust, võimaldades andmeid osadeks jagada.
  5. Taru saab töödelda erinevat tüüpi pakitud faile, säästes sellega kettaruumi.
  6. Stringide, täisarvude või kuupäevadega manipuleerimiseks toetab HiveQL kasutaja määratletud funktsioonide (UDF) laiendamist, et lahendada probleeme, mida sisseehitatud UDF-id ei toeta.
  7. See pakub valikut täiendavaid API-sid kohandatud päringumootori loomiseks.
  8. Toetatud on erinevad failivormingud nagu Textfile, Sequencefile, ORC (Optimized Row Columnar), RCFile, Avro ja Parquet. ORC-failivorming sobib kõige paremini päringu jõudluse parandamiseks, kuna see salvestab andmeid kõige optimeeritumal viisil, mis viib päringu kiiremini täitmiseni.
  9. See on tõhus andmete analüüsi- ja ETL-tööriist suurte andmekogumite 10 jaoks. Kerge kirjutada päringuid, kuna see sarnaneb SQL-iga. Tarus olevaid DDL (Data Definition Language) käske kasutatakse tarus oleva andmebaasi või tabelite struktuuri täpsustamiseks ja muutmiseks. Need käsud on kukuta, loo, kärbi, muuda, kuva või kirjelda.

Piirangud

  1. Tarupäringutel on suurem latentsus, kuna Hadoop on partiile orienteeritud süsteem.
  2. Pesastatud või alampäringuid ei toetata.
  3. Uuendamise, kustutamise või sisestamise toimingut ei saa rekordtasemel teha.
  4. HQLi taru ulatuse kaudu ei pakuta reaalajas andmetöötlust ega päringuid.

Andmete petabaitides, ulatudes miljarditest kuni triljoniteni, on HiveQL suures osas suurandmete spetsialistidele.

HiveQLi rakendusala

Allpool on toodud viisid, kuidas HiveQL laieneb ja teenib paremini eesmärki analüüsida kasutajate iga päev genereeritavaid alandlikke andmeid.

Turvalisus: lisaks suurte andmete töötlemisele pakub Hive ka andmete turvalisust. See ülesanne on hajutatud süsteemi jaoks keeruline, kuna üksteisega suhtlemiseks on vaja mitut komponenti. Kerberose autoriseerimistugi võimaldab autentimist kliendi ja serveri vahel.

Lukustamine: Tavaliselt puudub tarul lukustamine ridadel, veergudel ja päringutel. Taru saab Apache loomapidaja abi lukustamiseks.

Töövoohaldus: Apache Oozie on töövooplaneerija erinevate HiveQL-päringute automatiseerimiseks järjestikku või paralleelselt.

Visualiseerimine: Zeppelini sülearvuti on veebipõhine sülearvuti, mis võimaldab interaktiivset andmete analüüsi. See toetab taru Hive ja Spark andmete visualiseerimiseks ja koostööks.

Järeldus

HiveQL on organisatsioonides laialdaselt kasutusel keerukate kasutusjuhtumite lahendamisel. Pidades silmas keele pakutavaid funktsioone ja piiranguid, kasutatakse tarude päringu keelt telekommunikatsiooni-, tervishoiu-, jae-, panganduse ja finantsteenuste valdkonnas ning isegi NASA katsejõulabori kliimasüsteemis. SQL-i päringute ja käskude kirjutamise lihtsus loob laiema aktsepteerimise. Selle valdkonna kasvav töövõimalus meelitab värskemat ja eri sektorite spetsialiste omandama praktilisi kogemusi ja teadmisi selle valdkonna kohta.

Soovitatavad artiklid

See on HiveQL-i juhend. Siin käsitleme HiveQL-i sissejuhatust, päringute optimeerimist ning selle piiranguid ja funktsioone. Lisateavet leiate ka meie seotud artiklitest -

  1. Mis on tarude andmete tüübid?
  2. Taru alternatiivid | Uurige funktsioone
  3. Tarukäskude peamised komponendid
  4. 10 parimat taruvestluse küsimust

Kategooria: