A Hive belső táblák és a külső táblák összehasonlítása

Kíváncsi a Hive táblák különböző típusaira, és arra, hogy miben különböznek egymástól?

Amint a Hive adatmodellekben a Hive táblák alapjai, most vizsgáljuk meg a Hive belső és külső táblák közötti fő különbséget.

Ebben a cikkben a Hive táblázat két különböző típusát fogjuk megvitatni, amelyek a belső táblázat (kezelt táblázat) és a külső táblázat. A cikk ezután felsorolja a Hive belső táblák és a külső táblák közötti különbségeket. Különböző eseteket is látni fogunk, ahol ezeket a Hive táblákat használhatjuk.

Elkezdjük tehát a Hive belső táblákkal és a külső táblákkal.

Maradjon naprakész a legújabb technológiai trendekkel
Join DataFlair on Telegram!!

A Hive belső és külső táblák bemutatása

Hive belső és külső táblák

A Hive alapvetően két különböző típusú táblázatot ismer: A belső táblát és a külső táblát. A Belső táblát kezelt táblának is nevezik.

A Hive-ban a DESCRIBE FORMATTED table_name utasítással azonosíthatjuk a Belső vagy Külső táblákat, amely a tábla típusától függően MANAGED_TABLE vagy EXTERNAL_TABLE értéket jelenít meg.

Hive Belső tábla

A Hive birtokolja a belső táblák adatait.

Ez a Hive alapértelmezett táblája. Amikor a felhasználó létrehoz egy táblát a Hive-ban anélkül, hogy azt külsőnek adná meg, akkor alapértelmezés szerint egy belső tábla jön létre a HDFS egy meghatározott helyén.

Egy belső tábla alapértelmezés szerint a HDFS /user/hive/warehouse könyvtárához hasonló mappa elérési útvonalán jön létre. A tábla létrehozása során a location tulajdonsággal felülbírálhatjuk az alapértelmezett helyet.

Ha töröljük a kezelt táblát vagy partíciót, a tábla adatai és a táblához tartozó metaadatok törlődnek a HDFS-ből.

Hive külső tábla

A Hive nem kezeli a külső tábla adatait.

A külső táblát külső használatra hozzuk létre, mint amikor az adatokat a Hive-on kívül szeretnénk használni.

A külső táblákat a raktárkönyvtáron kívül tároljuk. Olyan forrásokban tárolt adatokhoz férhetnek hozzá, mint például távoli HDFS-helyek vagy Azure Storage Volumes.

Amikor a külső táblát töröljük, akkor csak a táblához kapcsolódó metaadatok törlődnek, a tábla adatai a Hive által érintetlenül maradnak.

A külső táblát a Hive create table utasításban az EXTERNAL kulcsszó megadásával hozhatjuk létre.

A Hive belső és külső tábla közötti különbség

hive belső és külső táblákhive belső és külső táblákhive belső és külső táblák

Lássuk most a két Hive tábla közötti különbséget. A Hive belső és külső tábláinak főbb különbségei a következők:

LETÖLTÉS szemantika

A betöltés szemantikája mindkét táblában eltérő. Lássuk a belső és a külső tábla betöltési szemantikájának különbségét.

a. Belső tábla

Ha egy belső táblába töltünk be adatokat, akkor a Hive a raktárkönyvtárba mozgatja az adatokat.

Példa:

Ebben a példában létrehozunk egy ‘internaldemo’ táblát. Amikor adatokat töltünk be az ‘internaldemo’ táblába, akkor a Hive az adatokat a raktárkönyvtárba mozgatja.

Apache Hive telepítése Ubuntun a Hive-lekérdezések futtatásához.

Belső tábla létrehozása - hive belső és külső tábla

Most, adatok betöltése a fent létrehozott belső táblába. adatok betöltése a belső táblába - hive belső és külső táblák

A tábla leírásakor látjuk, hogy a tábla adatai a Hive warehouse könyvtárba kerülnek.leírni a belső táblát - hive belső és külső táblák

b. Külső tábla

Az EXTERNAL kulcsszóval a Hive tudja, hogy nem ő kezeli a tábla adatait, ezért nem mozgatja az adatokat a raktárkönyvtárába. A Hive még azt sem ellenőrzi, hogy a külső tárolóhely a meghatározáskor létezik-e vagy sem.

Példa:

Ebben a példában létrehozunk egy külső táblát, az ‘external_demo’-t a megadott tárolóhelyen, amely a ‘/home/dataflair/’. Az adatok külső táblába való betöltésekor a Hive nem mozgatja a tábla adatait a saját raktárkönyvtárába.

külső tábla létrehozása - hive belső és külső táblák

Most, adatok betöltése a fent létrehozott külső táblába. adatok betöltése külső táblába - hive belső és külső táblák

A táblát böngészve láthatjuk, hogy a Hive tábla adatai nem kerülnek át a Hive warehouse könyvtárba. A tábla létrehozásakor megadott helyen tárolódnak.külső tábla leírása - hive belső és külső táblák

DROP szemantika

A betöltési szemantikához hasonlóan a drop szemantika is változik mindkét táblában. Lássuk a drop szemantika különbségét a belső és a külső tábla között.

a. Belső tábla

A belső tábla törlése törli a tábla adatait, valamint a táblához tartozó metaadatokat.

Példa:

Ebben a példában az “internaldemo” kezelt táblát töröljük. Láthatja, hogy mind a táblázat metaadatait, mind a táblázat adatait törli.

drop internal table - hive internal and external tables

locating hive internal table - hive internal and external tables

A táblázat adatai is törlődnek a HDFS-ből.

b. Külső tábla

A külső tábla törlése csak a tábla metaadatait törli. A tábla tartalma érintetlenül marad.

Példa:

A példában látható, hogy az ‘external demo’ külső tábla törlésekor a tábla tartalma továbbra is jelen van a HDFS-helyen.

külső tábla törlése - hive táblák

külső tábla elhelyezése - hive táblák

TRUNCATE támogatás

A TRUNCATE parancs csak a belső táblára működik.

Példa:

Ebben a példában az ‘externaldemo’ táblával próbáljuk használni a truncate parancsot. A következő hibaüzenetet kapjuk: ‘Cannot truncate non-managed table externaldemo’.

truncate external table - hive tables

ACID Support

ACID/transactional csak a belső táblára működik. A külső táblánál nem működnek.

Kérdezés eredményének gyorsítótárazása

Az eredmény gyorsítótárazása, amely egy végrehajtott Hive lekérdezés eredményeit menti el a későbbi lekérdezéseknél történő újrafelhasználás céljából, csak a belső táblánál működik.

Ez tehát néhány különbség a Hive belső és a külső tábla között.

Most nézzük, mikor melyik Hive táblát kell használni.

Mikor használjunk belső és külső táblát?

Hive belső tábla

A belső táblát használhatjuk olyan esetekben:

  • Az ideiglenes táblák létrehozásakor.
  • Amikor szükséges, hogy a Hive kezelje a tábla életciklusát.
  • És amikor nem akarjuk a tábla adatait törlés után.

Hive külső tábla

A külső táblát olyan esetekben használhatjuk:

  • Ha nem a meglévő tábla alapján hozzuk létre a táblát.
  • Ha szükséges a Hive-on kívüli adatok használata. Például az adatfájlokat egy meglévő program olvassa és dolgozza fel, amely nem zárolja a fájlokat.
  • Ha nem akarjuk a tábla adatait teljesen törölni még DROP után sem.
  • Ha az adatokat nem a Hive-nak kell birtokolnia.

Ez mind a Hive belső és külső tábláiban volt. Remélem, tetszett a magyarázatunk.

Következtetés

A cikk elolvasása után megállapíthatjuk, hogy a Hive tábláknak két típusa van- belső tábla, más néven menedzselt tábla, és a külső tábla.

A belső tábla adatait a Hive kezeli. A Hive nem felelős a külső tábla adatainak kezeléséért.

A Hive belső tábla törlésekor a tábla adatai és metaadatai is törlődnek, a Hive külső tábla törlésekor pedig csak a tábla metaadatai törlődnek.

See Also-

  • Different Ways to Configure Hive Metastore
  • Best Apache Hive Books to learn Hive for beginners

Any query while working with hive internal and external tables? Kérdezzen alább.

Keep Learning!!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.