Megosztás a következőn keresztül:


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ő).

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_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_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_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: