Adatbázis-objektumok az örökölt Hive-metaadattárban
Az Azure Databricks dokumentációja az adatobjektumok Unity Catalog használatával történő használatára összpontosít, de az utasítások nagy része az örökölt Hive-metaadattárban regisztrált objektumokra is vonatkozik.
Ez a cikk az örökölt Hive-metaadattárban regisztrált adatbázis-objektumokkal való munkával foglalkozik. Ez a cikk azt ismerteti, hogy a Hive-metaadattár-objektumok használata hol különbözik a Unity Catalog-objektumoktól. Emellett a váratlan viselkedéseket is ismerteti.
A Databricks azt javasolja, hogy az összes adatot migrálja az örökölt Hive-metaadattárból a Unity Catalogba. Lásd: Hive-táblák és nézetek frissítése Unity-katalógusra.
Hogyan működik a Hive metaadattár-adatszabályozása?
Bár az Azure Databricks-munkaterületek továbbra is tartalmazzák a beépített Hive-metaadattárat, a Hive-metaadattárat használó adatszabályozás elavult. A Databricks azt javasolja, hogy a Unity Catalogot használja az összes adatszabályozáshoz. Lásd: A Unity-katalógus és az örökölt Hive-metaadattár használata.
A Unity Catalog munkaterületének engedélyezése nem csökkenti a Hive metaadattárban már regisztrált adatok használatát. Az örökölt Hive-metaadattárban regisztrált összes adatobjektum megjelenik a hive_metastore
katalógus Unity Catalog-felületei között. A hibrid Hive-metaadattár és a Unity Catalog-munkaterület hasznos modell lehet egy régi Hive metaadattár-munkaterület áttűnéshez. A Unity Catalog adatszabályozási és teljesítménybeli előnyei azonban magasak, és a lehető leghamarabb át kell váltania a munkaterületeket.
A Hive metaadattár táblahozzáférés-vezérlést (tábla ACL-eket) használ az adatbázis-objektumokhoz való hozzáférés kezeléséhez. A táblahozzáférés-vezérlés támogatása továbbra is támogatott, ha a számítást megosztott hozzáférési módban használja. Lásd: Hive metaadattár tábla hozzáférés-vezérlése (örökölt).
A hitelesítő adatok átengedése a Hive metaadattár-adatbázis-objektumok adatszabályozásának elavult mintája. Ez a cikk nem foglalkozik a hitelesítő adatok átadásával. Lásd: Hitelesítő adatok átengedés (örökölt).
Feljegyzés
Ahol ez a cikk a Hive metaadattár adathozzáférés-vezérlésére hivatkozik, az örökölt táblahozzáférés-vezérlésre hivatkozik.
Mi a hive_metastore
katalógus?
A Unity Cataloghoz engedélyezett munkaterületeken a Hive metaadattár összes sémája a katalógus gyermekeiként jelenik meg a hive_metastore
Unity Catalog háromszintű névterében. A Hive metaadattár valójában nem használ katalógusokat, és ez a szerkezet belépési pontot biztosít a unitykatalógus felhasználói számára az örökölt Hive metaadattár tábláihoz. Az örökölt Hive metaadattár tábláinak lekérdezéséhez használja az alábbi szintaxist:
SELECT * FROM hive_metastore.schema_name.table_name
Feljegyzés
A unitykatalógus-kompatibilis munkaterületeken beállíthatja alapértelmezett hive_metastore
munkaterületként a katalógust. Lásd : Az alapértelmezett katalógus kezelése.
Sémák a Hive metaadattárában
Az örökölt Hive-metaadattárban a séma az adatobjektum-hierarchia legmagasabb szintje.
Van néhány fontos különbség a Unity Catalog és a Hive metaadattár között, beleértve a következőket:
- Nem hozhat létre sémákat a Hive metaadattárban a Catalog Explorer használatával. Megtekintheti és szerkesztheti a sémák engedélyeit.
- A Hive-metaadattárban létrehozott sémák csak alfanumerikus ASCII-karaktereket és aláhúzásjeleket használhatnak a nevükben.
- A Hive metaadattára lehetővé teszi a séma deklarálását
LOCATION
a létrehozás során. Ez a Unity Catalog által felügyelt tárolóhelyekhez hasonlóan működik, a következő viselkedési különbségekkel:- Ha nem ad meg helyet, a rendszer az alapértelmezett helyet
/user/hive/warehouse/<schema-name>
használja. Ez a hely a DBFS gyökerén található, ami nem ajánlott éles adatok tárolásához. - A megadott elérési út bármely olyan felhőbeli tárolóhely lehet, amely a sémát létrehozó felhasználó számára elérhető, beleértve a felhőalapú URI-kat, a DBFS-gyökér- és DBFS-csatlakoztatásokat.
- A helyhez való hozzáférést nem a Hive metaadattára kezeli.
- Ha töröl egy sémát a Hive-metaadattárban, a rendszer a sémahelyen lévő összes fájlt rekurzív módon törli, függetlenül a tábla típusától (felügyelt vagy külső).
- Ha nem ad meg helyet, a rendszer az alapértelmezett helyet
A véletlen adatvesztés elkerülése érdekében a Databricks a következőket javasolja a Hive metaadattár sémahelyeinek használatakor:
- Ne rendeljen hozzá olyan sémahelyet, amely már tartalmaz adatokat.
- Ne hozzon létre külső táblát sémahelyen.
- Ne ossza meg a helyet több séma között.
- Ne rendeljen hozzá egy másik sémahelyet átfedő sémahelyet. Más szóval ne használjon olyan elérési utat, amely egy másik sémahely gyermekének számít.
- Ne rendeljen hozzá olyan sémahelyet, amely átfedésben van egy külső tábla helyével.
Felügyelt táblák a Hive metaadattárában
A Hive metaadattár felügyelt táblái nem rendelkeznek a Felügyelt táblák teljesítménybeli előnyeinek egyikével sem a Unity Catalogban. A Unity Catalog által felügyelt táblákhoz hasonlóan a Hive metaadattár által felügyelt táblák is alapértelmezés szerint a Delta Lake-t használják. A Hive-metaadattárban azonban a Unity Catalogtól eltérően felügyelt táblát is létrehozhat az Azure Databricks által támogatott egyéb adatformátumok többségével.
A Hive metaadattárában lévő felügyelt táblák mindig a tároló séma tárolási helyén jönnek létre. A felügyelt táblák lekérdezéséhez használt számításnak hozzáféréssel kell rendelkeznie a tárolási helyhez.
A Hive metaadattár nem úgy kezeli a felügyelt táblák adatelrendezését, mint a Unity Catalog. Ha elvet egy felügyelt táblát a Hive metaadattárában, az összes mögöttes adatfájl azonnal törlődik. A Unity Catalogban viszont egy felügyelt táblát 7 napig használhat UNDROP
, és az adatok 30 napon belül véglegesen törlődnek.
Az elérési útalapú hozzáféréssel adatokat olvashat vagy írhat a Hive metaadattár felügyelt tábláiban, míg a Unity-katalógusban nem, és nem is kell.
Külső táblák a Hive metaadattárában
Az Azure Databricksben a Unity Catalog bevezetése előtt létrehozott táblák többsége külső táblákként lett konfigurálva a Hive metaadattárban. A külső táblákat előnyben részesítő régi javaslatok általában néhány fő szempontra összpontosítottak:
- Regisztrálhat egy külső táblát a meglévő adatokra a felhőobjektum-tárolóban.
- A külső táblákban lévő adatfájlokat közvetlenül külső rendszerekből érheti el olvasási vagy írási célokra.
- Az adatfájlok nem lettek törölve, ha a tábla véletlenül el lett dobva.
- Mivel a külső táblákhoz szükség van egy
LOCATION
, az éles adatok kisebb valószínűséggel kerülnek véletlenül a DBFS-gyökérbe.
Az Azure Databricks mostantól a Unity Catalog által felügyelt táblákat javasolja a legtöbb táblázatos adattároláshoz. Lásd: Felügyelt táblák kezelése.
Nézetek a Hive metaadattárában
A Hive metaadattárában az Azure Databricks által támogatott adatforrások által támogatott nézeteket deklarálhatja. A Unity Catalogban csak a Unity Catalog táblái és nézetei alapján deklarálhat nézeteket, beleértve az idegen táblákat, a materializált nézeteket és a Delta Sharing-táblákat.
A nem táblázatos adatforrásokkal szembeni nézetek deklarálása miatt a Hive metaadattár nézetei váratlan vagy nem szándékos hozzáférést adhatnak az adatokhoz a felhasználói környezet más hozzáférési konfigurációival együtt.
Vegyük például a következőket:
- A tábla
my_table
a DBFS csatlakoztatási útvonalával/mnt/my_table
van definiálva.- A DBFS csatlakoztatási hitelesítő adatai a munkaterületen vannak tárolva, így alapértelmezés szerint minden felhasználó hozzáfér ehhez az elérési úthoz.
- A tábla ACL-ek a felhasználók egy csoportjához
my_table
való hozzáférés korlátozására szolgálnak.- Az örökölt tábla ACL-jei csak megosztott hozzáférési móddal vagy SQL-raktárakkal összefűzött számítási feladatokra vonatkoznak.
- A nézet
my_view
közvetlenül azon a felhőbeli URI-ján van definiálva, amely ugyanazokat az adatfájlokat'abfss://container-name@storage-account-name.dfs.core.windows.net/my_table'
készíti.- Az URI hitelesítő adatai a Spark-munkamenetben vagy számítási konfigurációban meghatározott hozzáférési szabályzatokra támaszkodnak.
A nézet my_view
a következő tulajdonságokkal rendelkezik:
- Nem használja a felhőobjektum-tároló
/mnt/my_table
csatlakoztatásához használt DBFS-csatlakoztatási hitelesítő adatokat. - A számítási konfigurációktól függetlenül nem tartja tiszteletben a tábla ACL-jeit
my_table
. - Ehhez a számításhoz konfigurált adathozzáférési szabályzatra van szükség, amely olvasási hozzáférést biztosít.
'abfss://container-name@storage-account-name.dfs.core.windows.net/my_table'
Feljegyzés
Ez az egyik példa a váratlan viselkedésre, és nem átfogó az örökölt Hive metaadattár nézetei által bemutatott lehetséges buktatókról. A Databricks a Unity Catalog használatát javasolja minden nézetdefinícióhoz.
Örökölt Hive-táblák és HiveQL-támogatás
Az Azure Databricks támogatja a Hive-táblákat és a HiveQL-funkciókat. Ez a funkció az Azure Databricks korai verzióinak és az Eszközök Apache Hadoop-ökoszisztémájának maradványa. A Databricks nem javasolja a Hive-táblák vagy más Hive-funkciók használatát, mivel ez a funkció nincs optimalizálva, és bizonyos számítási konfigurációkban nincs támogatás.
Az alábbi cikkek az örökölt Hive-funkciókat ismertetik:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: