Johdanto HiveQL: ään
HiveQL, joka tunnetaan yleisesti nimellä HQL, on SQL-tyyppinen kyselykieli suurten tietojen palauttamiseksi Hadoop-ympäristöstä. Alun perin Facebookin vuonna 2007 kehittämästä Hivestä on myöhemmin tullut avoimen lähdekoodin Apache-projekti. SQL-syntaksin kaltaisista pesänkyselyistä on tullut nykyään suosittuja data-analyytikoiden keskuudessa. HiveQL, joka käyttää HDFS-tallennusta ja MapReduce-prosessointia, auttaa saamaan oivalluksia isoille tiedonkäyttäjille, joilla on minimaalinen koodauskokemus. Erilaisia hajautettuja laskentamoottoreita, kuten Apache Tez ja Apache Spark, voidaan käyttää HiveQL: n kanssa suurten tietojen analysoinnin nopeampaan käsittelyyn. Erilaisia tapoja käyttää HiveQL: tä on - CLI (komentoriviliittymä), kaupalliset tuotteet, kuten Karmasphere, Clouderan avoimen lähdekoodin sävy ja Qubole.
HiveQL: n toiminta
Hive tarjoaa SQL-tyyppisen murreen tietojen käsittelyä varten, joten meidän ei tarvitse kirjoittaa matalan tason MapReduce-töitä tietojen noutamiseksi (Mapperin kautta) ja lopputulosten yhdistämiseksi (Reducer-moduulien kautta).
-
Suorita pesän kysely
Hive-kyselyn suorittamiseen liittyvät vaiheet ovat:
- Hive-käyttöliittymä (CLI: n tai Web UI: n kautta) lähettää kyselyn ohjaimelle (joka on JDBC, ODBC tai Thrift Server) kootaa, optimoida ja suorittaa. Se tarkistaa kyselyn kääntäjän kautta syntaksin ja suoritussuunnitelman suhteen.
- Kääntäjä lähettää pyynnön Metastorelle ja vastaanottaa vastauksena metatiedot.
- Kääntäjä kommunikoi suoritussuunnitelman takaisin kuljettajalle, joka lähettää sen edelleen suoritusmoottorille.
- Suoritusmoottori on vuorovaikutuksessa Job Tracker -työkalun kanssa, joka on nimisolmu työn saamiseksi.
- Samanaikaisesti suoritusmoottori suorittaa myös metatieto-operaation.
- Nimesolmu saa työn tehtäväseurannalla tai datasolmuilla.
- Tulokset, jotka jaetaan suoritusmoottorin kanssa, jotka sitten näytetään käyttöliittymän kautta ohjaimen kautta.
-
Kyselyjen optimointi
HiveQL: n virittäminen kyselyiden parempaan optimointiin. Alla olevia komentoja käyttämällä voimme ohittaa oletuskokoonpanot ja mahdollistaa kyselyn nopeamman suorittamisen.
1 SET hive.execution.engine = tez
Oletusarvoisesti suoritusmoottori on asetettu Mapreduceksi, mutta voimme nimenomaisesti asettaa sen tez (vain Hadoop 2) tai Spark (Hive 1.1. 0 eteenpäin).
2 SET hive.mapred.mode = purkaa
Tämä on tarkoitettu dynaamiseen osiointiin, josta on apua suurten tietojoukkojen lataamisessa. Staattinen osiointi on kuitenkin asetettu oletukseksi, mikä tapahtuu “tiukassa” tilassa.
3 SET hive.vectorized.execution = totta
aseta hive.vectorized.execution.enabled = totta
Vektorisoitu kyselyn suorittaminen mahdollistaa toiminnan, kuten –aggregaatit, suodattimet tai liittymiset tapahtuvat 1024 rivierässä yhden rivin sijasta kerrallaan.
4 SET hive.auto.convert.join = totta
Yhdistettäessä suurta tietojoukkoa erittäin pieneen tietojoukkoon, karttaliitännät ovat tehokkaampia ja ne voidaan asettaa yllä olevan komennon avulla.
5 SET hive.exec.parallel = totta
MapReduce-työt suoritetaan samanaikaisesti Hadoopissa. Joskus, jos kyselyt eivät ole riippuvaisia toisistaan, voidaan suosia samanaikaista suoritusta, mikä johtaa parempaan muistin hallintaan.
6 SET hive.exec.compress.output = totta
Tämä mahdollistaa lopullisen tulosteen tallentamisen HDFS: ään pakatussa muodossa.
7 SET hive.exec.compress.output = totta
Tämä mahdollistaa lopullisen tulosteen tallentamisen HDFS: ään pakatussa muodossa.
HiveQL: n ominaisuudet
- Koska korkean tason kieli, pesän kyselyt muunnetaan implisiittisesti karttaa pienentäviksi töiksi tai monimutkaisiksi DAG: ksi (suunnatut asykliset kuvaajat). Käyttämällä 'Selitä'-avainsanaa ennen kyselyä saamme kyselysuunnitelman.
- Nopein kyselyn suorittaminen käyttämällä metadata-tallennusta RDMS-muodossa ja jäljentää tietoja, joten haku on helppoa kadotapauksissa.
- Bittikartta-indeksointi tehdään kyselyiden nopeuttamiseksi.
- Parantaa suorituskykyä sallimalla tietojen osittainen jakaminen.
- Hive voi käsitellä erityyppisiä pakattuja tiedostoja, mikä säästää levytilaa.
- Merkkijonojen, kokonaislukujen tai päivämäärien käsittelemiseksi HiveQL tukee käyttäjän määrittämien toimintojen (UDF) laajentamista sellaisten ongelmien ratkaisemiseksi, joita sisäiset UDF: t eivät tue.
- Se tarjoaa joukon lisäsovellusliittymiä mukautetun kyselymoottorin rakentamiseksi.
- Eri tiedostomuotoja, kuten Textfile, Sequencefile, ORC (Optimized Row Columnar), RCFile, Avro ja Parquet, tuetaan. ORC-tiedostomuoto on sopivin kyselyn suorituskyvyn parantamiseksi, koska se tallentaa tietoja optimoidimmalla tavalla, mikä johtaa kyselyn nopeampaan suorittamiseen.
- Se on tehokas tietojen analysointi- ja ETL-työkalu suurille tietoaineistoille 10. Helppo kirjoittaa kyselyjä, koska se on samanlainen kuin SQL. Pesän DDL (Data Definition Language) -komentoja käytetään määrittämään ja muuttamaan pesän tietokannan tai taulukoiden rakennetta. Nämä komennot pudottavat, luovat, katkaisevat, muuttavat, näyttävät tai kuvaavat.
rajoitukset
- Pesän kyselyillä on pidempi viive, koska Hadoop on eräkeskeinen järjestelmä.
- Sisäkkäisiä tai alikyselyjä ei tueta.
- Päivitys-, poistamis- tai lisäämistoimintoa ei voida suorittaa ennätystasolla.
- Reaaliaikaista tietojenkäsittelyä tai kyselyä ei tarjota HQL: n Hive Scope -sivun kautta.
HiveQL: llä on petatavuja tietoja, jotka vaihtelevat miljardeista biljooniin tietueisiin, ja tarjoaa laajan laajuuden suurille data-ammattilaisille.
HiveQL-sovellusalue
Seuraavassa on tapoja, joilla HiveQL laajenee ja palvelee paremmin käyttäjien päivittäin tuottaman tyhjän tiedon analysointia.
Suojaus: Suurten tietojen käsittelyn lisäksi Hive tarjoaa tietoturvan. Tämä tehtävä on hajautetulle järjestelmälle monimutkainen, koska kommunikointiin keskenään tarvitaan useita komponentteja. Kerberos-valtuutustuki mahdollistaa todennuksen asiakkaan ja palvelimen välillä.
Lukitseminen: Perinteisesti pesästä puuttuu lukitus riveihin, sarakkeisiin tai kyselyihin. Pesä voi käyttää Apache-eläintarhanhoitajaa lukituksen tukeen.
Työnkulun hallinta : Apache Oozie on työnkulun aikataulu, jolla automatisoidaan erilaiset HiveQL-kyselyt peräkkäin tai rinnakkain.
Visualisointi: Zeppelin-muistikirja on verkkopohjainen muistikirja, joka mahdollistaa interaktiivisen datan analysoinnin. Se tukee Hive ja Spark tietojen visualisointia ja yhteistyötä.
johtopäätös
HiveQL: ää käytetään laajasti organisaatioissa monimutkaisten käyttötapausten ratkaisemiseksi. Kielen tarjoamat ominaisuudet ja rajoitukset huomioon ottaen pesän kyselykieltä käytetään televiestinnässä, terveydenhuollossa, vähittäiskaupassa, pankki- ja finanssipalveluissa ja jopa NASA: n Test Propulsion Laboratoryn ilmastoarviointijärjestelmässä. Helppo kirjoittaa SQL-kyselyitä ja -komentoja, jotta tilit hyväksyttäisiin laajemmin. Kasvava työmahdollisuus tällä alalla houkuttelee tuoreempaa ja eri alojen ammattilaiset saamaan käytännön kokemusta ja tietoa kentästä.
Suositellut artikkelit
Tämä on opas HiveQL: ään. Tässä keskustellaan HiveQL: n johdannosta, kyselyjen optimoinnista sekä sen rajoituksista ja ominaisuuksista. Voit myös käydä liittyvien artikkeleidemme läpi saadaksesi lisätietoja
- Mikä on pesän tietotyypit?
- Pesän vaihtoehdot | Ota selvää ominaisuuksista
- Pesän komentojen tärkeimmät komponentit
- 10 parasta pesähaastattelua koskevaa kysymystä