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ő tábla
- Hive külső tábla
- A Hive belső és külső tábla közötti különbség
- LETÖLTÉS szemantika
- a. Belső tábla
- b. Külső tábla
- DROP szemantika
- a. Belső tábla
- b. Külső tábla
- TRUNCATE támogatás
- ACID Support
- Kérdezés eredményének gyorsítótárazása
- Mikor használjunk belső és külső táblát?
- Hive belső tábla
- Hive külső tábla
- Következtetés
A Hive belső és külső táblák bemutatása
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
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.
Most, adatok betöltése a fent létrehozott belső táblába.
A tábla leírásakor látjuk, hogy a tábla adatai a Hive warehouse könyvtárba kerülnek.
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.
Most, adatok betöltése a fent létrehozott külső táblába.
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.
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.
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.
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’.
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!!