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 Cataloghasználatával történő használatára összpontosít, de az utasítások többsége 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 arra hívja fel a where, hogy a Hive-metaadattár-objektumok használata eltér a Unity Catalog objektumoktól. Emellett a váratlan viselkedéseket is ismerteti.

A Databricks azt javasolja, hogy az összes adatot migrálja a régi Hive metatérraktárból a Unity Catalog-ba. Lásd: Hive tables és views frissítése a Unity Catalog.

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 Catalog-t használják minden adatszabályozáshoz. Lásd: Dolgozzon együtt a Unity Catalog és az örökölt Hive-metaadattárral.

A Unity Catalog munkaterületének engedélyezése nem csökkenti a Hive metaadattárban már regisztrált adatokkal való munkát. Az örökölt Hive-metaadattárban regisztrált összes adatobjektum megjelenik a Unity Cataloghive_metastorecataloginterfészeiben. A hibrid Hive-metaadattár és a Unity Catalog munkaterület hasznos modell lehet a Hive metaadattár munkaterület régi verziója átalakításához. 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 table hozzáférés-vezérlést (table ACL-eket) használ az adatbázis-objektumokhoz való hozzáférés kezeléséhez. Bizonyos támogatás elérhető table hozzáférés-vezérléshez, amikor számítást használ megosztott hozzáférési módban. Lásd a Hive metaadattár table örökölt hozzáférés-vezérlés.

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

Where ez a cikk a Hive metaadattárban lévő adathozzáférés-vezérlésre hivatkozik, az örökölt table hozzáférés-vezérlésre vonatkozik.

Mi a hive_metastorecatalog?

A Unity Catalogszámára engedélyezett munkaterületen a Hive-metaadattár összes sémája a unity Catalog háromszintű névtérben a hive_metastorecatalog gyermekeiként jelenik meg. A Hive metaadattára valójában nem használja a catalogs-t, és ez a szerkezet belépési pontot biztosít a tables a régi Hive metaadattárban a Unity Catalog felhasználók számára. A következő szintaxis használatával kérdezheti le tables az örökölt Hive-metaadattárban:

SELECT * FROM hive_metastore.schema_name.table_name

Feljegyzés

Opcionálisan beállíthatja a sethive_metastorecatalog-t alapértelmezettként a Unity Catalog-enabled munkaterületeken. Lásd: Alapértelmezett catalogkezelése.

Sémák a Hive metaadattárában

Az örökölt Hive-metaadattárban egy schema az adatobjektum-hierarchia legmagasabb szintje.

Van néhány fontos különbség a Unity Catalog és a Hive metaadattára között, beleértve a következőket:

  • A Hive-metaadattárban nem hozhat létre sémákat 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ár lehetővé teszi egy LOCATION deklarálását egy schema számára a létrehozás során. Ez hasonlóan működik a Unity Catalog felügyelt tárolóhelyekhez, 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 schemalé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 schema a Hive-metaadattárban, az adott schema helyen lévő összes fájl rekurzív módon törlődik, függetlenül a table 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 schema helyek használata esetén:

  • Ne rendeljen hozzá olyan schema helyet, amely már tartalmaz adatokat.
  • Ne hozz létre külső tableschema helyen.
  • Ne ossza meg a helyet több séma között.
  • Ne rendeljen hozzá olyan schema helyet, amely egy másik schema helyet fed át. Más szóval, ne használjon olyan elérési utat, amely egy másik schema hely alárendeltjeként tartozik.
  • Ne rendeljen hozzá olyan schema helyet, amely átfedésben van egy külső tablehelyével.

Felügyelt tables a Hive metaadattárában

A Hive metastore-ban kezelt tables nem rendelkezik a Unity Catalog-ban kezelt tables teljesítménybeli előnyeinek egyikével sem. A Unity Catalog által felügyelt tables-hez hasonlóan, a Hive metaadattár felügyeletét is alapértelmezés szerint a Delta Lake használja tables. A Hive metaadattárban azonban, a Unity Catalog-tal ellentétben, felügyelt table-et is létrehozhatsz az Azure Databricks által támogatott legtöbb más adatformátum használatával.

A Hive metaadattárában a kezelt tables mindig a schematárolóhelyén jön létre. A felügyelt table 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 tables adatelrendezését, mint ahogy a Unity Catalog teszi. Amikor egy felügyelt table törlésére kerül sor a Hive metaadattárában, a rendszer azonnal törli az összes mögöttes adatfájlt. Azonban a Unity Catalog-ban egy felügyelt table 7 napig UNDROP számára van elérhető, és az adatok 30 nap múlva véglegesen törlődnek.

Az elérési út alapú hozzáférést használva adatokat olvashat vagy írhat a Felügyelt Hive-metaadattárban tables, miközben a Unityben Catalog nem, és nem is kell.

Külső tables a Hive metaadattárában

Az Azure Databricksben a Unity Catalog bevezetése előtt létrehozott tables többsége külső tables-ként lett konfigurálva a Hive metatulajdonságok tárolójában. A külső tables előnyben részesített régi javaslatok általában néhány fő szempontra összpontosítottak:

  • Külső table-t regisztrálhat a meglévő adatokra a felhőobjektum-tárolóban.
  • Közvetlenül hozzáférhet a külső tables adatfájljaihoz olvasási vagy írási célú külső rendszerekből.
  • Az adatfájlok nem lettek törölve, ha a table véletlenül leesett.
  • Mivel a külső tablesLOCATION-et igényel, a gyártási adatok kisebb valószínűséggel kerülnek véletlenül a DBFS gyökérkönyvtárba.

Az Azure Databricks mostantól a Unity Catalog felügyelt megoldást tables javasolja a legtöbb táblázatos adattároláshoz. Lásd: Dolgozzon felügyelt tables-vel.

Views 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 Catalog-ban csak a Unity Catalog,tables és viewsellen lehet views-t deklarálni, beleértve a külföldi tables-öt, a materializált views-ot és a Delta Sharing tables-et.

A nem táblázatos adatforrásokkal való views deklarálási képesség miatt a Hive metaadattárában views váratlan vagy nem szándékos hozzáférést biztosíthat az adatokhoz, különösen, ha a felhasználói környezet más hozzáférési konfigurációival együtt használják.

Vegyük például a következőket:

  • A tablemy_table a DBFS csatlakoztatási útvonalával /mnt/my_tablevan meghatározva.
    • A DBFS csatlakoztatás credentials a munkaterületen van tárolva, így minden felhasználó alapértelmezés szerint elérheti ezt az elérési utat.
  • Table ACL-ek a felhasználók egy csoportjához való my_table hozzáférésének korlátozására szolgálnak.
    • Az örökölt table ACL-ek 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 credentials a Spark-munkamenetben vagy számítási konfigurációban meghatározott hozzáférési szabályzatokra támaszkodik.

A nézet my_view a következő tulajdonságokkal rendelkezik:

  • Nem használja a DBFS-csatlakoztatást (credentials) a felhőobjektum-tároló csatlakoztatására /mnt/my_table-hez.
  • A számítási konfigurációktól függetlenül nem tartja tiszteletben a my_tabletable ACL-set.
  • 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 egy példa a váratlan viselkedésre, amivel találkozhat, de nem terjed ki az összes views által az örökölt Hive metatárolóban bemutatott lehetséges buktatóra. A Databricks a Unity Catalog használatát javasolja minden nézetdefinícióhoz.

Legacy Hive tables és HiveQL támogatás

Az Azure Databricks tartalmaz némi örökölt támogatást a Hive tables és a HiveQL funkcionalitásához. 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 tables 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: