Vertailu Hiven sisäisten taulukoiden ja ulkoisten taulukoiden välillä

Oletko utelias tietämään, millaisia Hive-taulukoita on ja miten ne eroavat toisistaan?

Kuten olemme käsitelleet Hive-taulukoiden perusteita Hive-tietomalleissa, tutkikaamme nyt Hive-taulukoiden sisäisten ja ulkoisten taulukoiden välisiä tärkeimpiä eroavaisuuksia.

Tämässä artikkelissa keskustelemme kahdesta erityyppisestä Hive-taulukkotyypistä eli sisäisestä taulukkotyypistä (hallittu taulukko) ja ulkoisesta taulukosta. Artikkelissa luetellaan sitten Hiven sisäisten taulukoiden ja ulkoisten taulukoiden väliset erot. Näemme myös erilaisia tapauksia, joissa voimme käyttää näitä Hive-taulukoita.

Aloitetaan siis Hiven sisäisistä taulukoista ja ulkoisista taulukoista.

Pysy ajan tasalla uusimmista teknologiatrendeistä
Join DataFlair on Telegram!!

Esittely Hiven sisäisiin ja ulkoisiin taulukoihin

Hiven sisäiset ja ulkoiset taulukot

Periaatteessa Hive tuntee kaksi eri tyyppistä taulukkoa: Sisäinen taulukko ja Ulkoinen taulukko. Sisäinen taulukko tunnetaan myös nimellä hallittu taulukko.

Voidaan tunnistaa sisäiset tai ulkoiset taulukot Hiven DESCRIBE FORMATTED table_name-lausekkeella, joka näyttää taulukkotyypistä riippuen joko MANAGED_TABLE tai EXTERNAL_TABLE.

Hiven sisäinen taulukko

Hive omistaa sisäisten taulukoiden tiedot.

Se on Hiven oletustaulukko. Kun käyttäjä luo taulukon Hiveen määrittelemättä sitä ulkoiseksi, sisäinen taulukko luodaan oletusarvoisesti tiettyyn paikkaan HDFS:ssä.

Internaalinen taulukko luodaan oletusarvoisesti kansiopolkuun, joka on samanlainen kuin HDFS:n hakemisto /user/hive/warehouse. Voimme ohittaa oletussijainnin location-ominaisuudella taulun luomisen aikana.

Jos pudotamme hallitun taulun tai osion, taulun tiedot ja tauluun liittyvät metatiedot poistetaan HDFS:stä.

Hiven ulkoinen taulukko

Hive ei hallinnoi ulkoisen taulukon tietoja.

Luomme ulkoisen taulukon ulkoista käyttöä varten, kun haluamme käyttää tietoja Hiven ulkopuolella.

Ulkoiset taulukot tallennetaan varastohakemiston ulkopuolelle. Ne voivat käyttää tietoja, jotka on tallennettu lähteisiin, kuten etäisiin HDFS-sijainteihin tai Azure Storage Volumeihin.

Kun pudotamme ulkoisen taulun, vain tauluun liittyvät metatiedot poistetaan, taulukon tiedot jäävät koskemattomiksi Hiveen.

Voidaan luoda ulkoinen taulukko määrittämällä EXTERNAL-avainsana Hive create table -lausekkeessa.

Hiven sisäisen ja ulkoisen taulukon ero

hiven sisäiset ja ulkoiset taulukothiven sisäiset ja ulkoiset taulukothiven sisäiset ja ulkoiset taulukot

Katsotaanpa seuraavaksi molempien Hive-taulukoiden välinen ero. Suurimmat erot Hiven sisäisissä ja ulkoisissa taulukoissa ovat:

Lataussemantiikka

Lataussemantiikka vaihtelee molemmissa taulukoissa. Katsotaanpa sisäisen taulun ja ulkoisen taulun kuormitussemantiikan eroja.

a. Sisäinen taulukko

Kun lataamme tietoja sisäiseen taulukkoon, Hive siirtää tiedot varastohakemistoon.

Esimerkiksi:

Tässä esimerkissä luomme taulukon ’internaldemo’. Kun lataamme tietoja taulukkoon ’internaldemo’, Hive siirtää tiedot varastohakemistoon.

Oppi Apache Hive -asennus Ubuntussa Hive-kyselyjen suorittamiseksi.

luo sisäinen taulukko - hive sisäinen ja ulkoinen taulukko

Nyt ladataan tietoja edellä luotuun sisäiseen taulukkoon. ladataan tiedot sisäiseen taulukkoon - hiven sisäiset ja ulkoiset taulukot

Kuvaamalla taulukkoa nähdään, että taulukon tiedot siirretään Hive-varastohakemistoon.kuvaa sisäinen taulukko - hiven sisäiset ja ulkoiset taulukot

b. Ulkoinen taulukko

XTERNAL-avainsanalla Hive tietää, että se ei hallinnoi taulukon tietoja, joten se ei siirrä tietoja varastohakemistoonsa. Hive ei edes tarkista, onko ulkoinen sijainti määrittelyhetkellä olemassa vai ei.

Esimerkiksi:

Tässä esimerkissä luodaan ulkoinen taulukko ’external_demo’ määritettyyn sijaintiin, joka on ’/home/dataflair/’. Kun tiedot ladataan ulkoiseen taulukkoon, Hive ei siirrä taulukon tietoja varastohakemistoonsa.

luo ulkoinen taulukko - hiven sisäiset ja ulkoiset taulukot

Ladataan nyt tiedot edellä luotuun ulkoiseen taulukkoon. ladataan tiedot ulkoiseen taulukkoon - hiven sisäiset ja ulkoiset taulukot

Taulukkoa selatessa nähdään, että Hive-taulukon tietoja ei ole siirretty Hive-varastohakemistoon. Se tallennetaan taulukkoa luotaessa määritettyyn sijaintiin.kuvaa ulkoista taulukkoa - hiven sisäiset ja ulkoiset taulukot

DROP-semantiikka

Kuten lataussemantiikka, myös pudotussemantiikka vaihtelee molemmissa taulukoissa. Katsotaanpa, miten drop-semantiikka eroaa sisäisen taulun ja ulkoisen taulun välillä.

a. Sisäinen taulukko

Sisäisen taulukon pudottaminen poistaa taulukon tiedot sekä taulukkoon liittyvät metatiedot.

Esimerkiksi:

Tässä esimerkissä pudotamme hallitun taulukon ’internaldemo’. Näet, että se poistaa sekä taulukon metatiedot että taulukon tiedot.

pudota sisäinen taulukko - hive sisäiset ja ulkoiset taulukot

hive sisäinen taulukko - hive sisäiset ja ulkoiset taulukot

Taulukon tiedot poistetaan myös HDFS:stä.

b. Ulkoinen taulukko

Ulkoisen taulukon poistaminen poistaa vain taulukon metatiedot. Taulukon sisältö säilyy koskemattomana.

Esimerkki:

Tässä esimerkissä näemme, että poistettaessa ulkoinen taulukko ’external demo’, taulukon sisältö on edelleen HDFS-sijainnissa.

ulkoisen taulukon poistaminen - hive-taulukot

ulkoisen taulukon paikantaminen - hive-taulukot

TRUNCATE-tuki

TrUNCATE-komento toimii vain sisäisen taulukon kohdalla.

Esimerkkinä:

Esimerkkinä:

Tämässä esimerkkitapauksessa koitamme käyttää Truncate-komennon käyttämistä taulukon ’externaldemo’ kanssa. Saamme virheilmoituksen, jossa lukee ’Cannot truncate non-managed table externaldemo’.

truncate external table (Ulkoisen taulun typistäminen) - hive tables (pesätaulukot)

ACID Support

ACID/transactional (typistäminen ulkoisesta taulukosta) -komennolla voidaan typistää vain sisäistä taulukkoa. Ne eivät toimi ulkoisessa taulukossa.

Kyselytulosten välimuistitallennus

Kyselytulosten välimuistitallennus, joka tallentaa suoritetun Hive-kyselyn tulokset uudelleenkäyttöä varten myöhemmissä kyselyissä, toimii vain sisäisessä taulukossa.

Näissä on siis joitain eroavaisuuksia Hiven sisäisen taulukon ja ulkoisen taulukon välillä.

Katsotaanpa nyt, milloin mitäkin Hive-taulukkoa käytetään.

Kuinkäyttäkää sisäistä ja ulkoista taulukkoa?

Hiven sisäinen taulukko

Voidaan käyttää sisäistä taulukkoa seuraavissa tapauksissa:

  • Kun luodaan väliaikaisia taulukoita.
  • Kun vaaditaan, että Hive hallitsee taulukon elinkaarta.
  • Ja kun ei haluta taulukon dataa poiston jälkeen.

Hiven ulkoinen taulukko

Voidaan käyttää ulkoista taulukkoa tapauksissa:

  • Kun emme ole luomassa taulukkoa olemassa olevan taulukon pohjalta.
  • Kun tarvitaan Hiven ulkopuolisten tietojen käyttöä. Esimerkiksi datatiedostoja luetaan ja käsitellään olemassa olevalla ohjelmalla, joka ei lukitse tiedostoja.
  • Kun emme halua poistaa taulukon dataa kokonaan edes DROPin jälkeen.
  • Kun datan ei pitäisi olla Hiven omaa.

Tämä kaikki oli siis Hiven sisäisissä ja ulkoisissa taulukoissa. Toivottavasti pidit selityksestämme.

Johtopäätös

Artikkelin lukemisen jälkeen voimme päätellä, että Hive-taulukoita on kahdenlaisia- sisäinen taulukko, joka tunnetaan myös nimellä hallittu taulukko, ja Ulkoinen taulukko.

Sisäisen taulukon dataa hallinnoi Hive. Hive ei ole vastuussa Ulkoisen taulun tietojen hallinnasta.

Hiven sisäisen taulun poistamisen yhteydessä sekä taulun tiedot että metatiedot poistetaan ja Hiven ulkoisen taulun poistamisen yhteydessä vain taulun metatiedot poistetaan.

Katso myös-

  • Eerilaisia tapoja konfiguroida Hive-metatietovarasto
  • Parhaat Apache Hive -kirjat Hiven oppimiseen aloittelijoille

Kyselyitä hiven sisäisten ja ulkoisten taulujen kanssa työskenneltäessä? Kysy alla.

Keep Learning!!

Vastaa

Sähköpostiosoitettasi ei julkaista.