Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 : Az örökölt Hive-metaadattár használata a Unity Catalog mellett.
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 szabályozása továbbra is támogatott, ha standard hozzáférési módban használja a számítást. Lásd: Hive metaadattár tábla hozzáférés-ellenőrzése (régi).
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: 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
LOCATIONa 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 a Delta Lake és az Apache Iceberg számára az Azure Databricks-ben az Unity Catalog felügyelt táblák leírását.
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_tablea DBFS csatlakoztatási útvonalával/mnt/my_tablevan 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_tablevaló hozzáférés korlátozására szolgálnak.- Az örökölt tábla ACL-jei csak a standard hozzáférési móddal vagy SQL-raktárakkal összefűzött számítási feladatokra vonatkoznak.
- A nézet
my_viewkö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_tablecsatlakoztatá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: