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äinen taulukko
- Hiven ulkoinen taulukko
- Hiven sisäisen ja ulkoisen taulukon ero
- Lataussemantiikka
- a. Sisäinen taulukko
- b. Ulkoinen taulukko
- DROP-semantiikka
- a. Sisäinen taulukko
- b. Ulkoinen taulukko
- TRUNCATE-tuki
- ACID Support
- Kyselytulosten välimuistitallennus
- Kuinkäyttäkää sisäistä ja ulkoista taulukkoa?
- Hiven sisäinen taulukko
- Hiven ulkoinen taulukko
- Johtopäätös
Esittely Hiven sisäisiin ja ulkoisiin taulukoihin
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
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.
Nyt ladataan tietoja edellä luotuun sisäiseen taulukkoon.
Kuvaamalla taulukkoa nähdään, että taulukon tiedot siirretään Hive-varastohakemistoon.
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.
Ladataan nyt tiedot edellä luotuun ulkoiseen taulukkoon.
Taulukkoa selatessa nähdään, että Hive-taulukon tietoja ei ole siirretty Hive-varastohakemistoon. Se tallennetaan taulukkoa luotaessa määritettyyn sijaintiin.
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.
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.
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’.
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!!