Katalógusok létrehozása és kezelése
Ez a cikk bemutatja, hogyan hozhat létre és kezelhet katalógusokat a Unity Catalogban. A katalógus sémákat (adatbázisokat) és táblákat, nézeteket, köteteket, modelleket és függvényeket tartalmaz.
Feljegyzés
A Unity Cataloghoz automatikusan engedélyezett munkaterületeken alapértelmezés szerint létre lett hozva egy munkaterület-katalógus . Alapértelmezés szerint a munkaterület összes felhasználója (és csak a munkaterület) rendelkezik hozzáféréssel. Lásd : 1. lépés: Győződjön meg arról, hogy a munkaterület engedélyezve van a Unity Katalógusban.
Feljegyzés
Ha meg szeretné tudni, hogyan hozhat létre idegen katalógust, egy Unity Catalog-objektumot, amely egy külső adatrendszer adatbázisát tükrözi, olvassa el a Külső katalógus létrehozása című témakört. Lásd még a Külföldi katalógusok kezelése és használata című témakört.
Követelmények
Katalógus létrehozása:
Azure Databricks-metaadattár-rendszergazdának kell lennie, vagy jogosultsággal
CREATE CATALOG
kell rendelkeznie a metaadattárban.Rendelkeznie kell egy Unity Catalog-metaadattárval ahhoz a munkaterülethez , ahol a katalógus létrehozása történik.
A katalógus létrehozásához jegyzetfüzet futtatásához használt fürtnek Unity-katalógusnak megfelelő hozzáférési módot kell használnia. Lásd: Hozzáférési módok.
Az SQL-raktárak mindig támogatják a Unity-katalógust.
Katalógus létrehozása
Katalógus létrehozásához használhatja a Katalóguskezelőt vagy egy SQL-parancsot.
Katalóguskezelő
Jelentkezzen be a metaadattárhoz csatolt munkaterületre.
Kattintson a Katalógus gombra.
Kattintson a Katalógus létrehozása gombra.
Válassza ki a létrehozni kívánt katalógustípust:
- Standard katalógus: biztonságos objektum, amely a Unity Catalog által felügyelt adategységeket rendszerezi. A Lakehouse Federation kivételével minden használati esetben.
- Külföldi katalógus: a Unity Catalog biztonságos objektuma, amely egy külső adatrendszer adatbázisát tükrözi a Lakehouse Federation használatával. Tekintse meg a Lakehouse Összevonás beállításának áttekintését.
(Nem kötelező, de erősen ajánlott) Adjon meg egy felügyelt tárolóhelyet.
CREATE MANAGED STORAGE
A külső célhelyen szükséges a jogosultság. Lásd: Felügyelt tárhely megadása a Unity Katalógusban.Fontos
Ha a munkaterület nem rendelkezik metaadattárszintű tárolóhellyel, a katalógus létrehozásakor meg kell adnia egy felügyelt tárolóhelyet.
Kattintson a Létrehozás gombra.
(Nem kötelező) Adja meg azt a munkaterületet, amelyhez a katalógus hozzá van kötve.
Alapértelmezés szerint a katalógus meg van osztva az aktuális metaadattárhoz csatolt összes munkaterülettel. Ha a katalógus olyan adatokat tartalmaz, amelyeket adott munkaterületekre kell korlátozni, lépjen a Munkaterületek lapra, és adja hozzá ezeket a munkaterületeket.
További információ: (Nem kötelező) Katalógus hozzárendelése adott munkaterületekhez.
Engedélyek hozzárendelése a katalógushoz. Lásd: Unity Catalog-jogosultságok és biztonságos objektumok.
Sql
Futtassa a következő SQL-parancsot egy jegyzetfüzetben vagy a Databricks SQL-szerkesztőben. A szögletes zárójelek nem kötelezőek. Cserélje le a helyőrző értékeket:
<catalog-name>
: A katalógus neve.<location-path>
: Nem kötelező, de erősen ajánlott. Adjon meg egy tárolási hely elérési útját, ha azt szeretné, hogy a katalógusban szereplő felügyelt táblák a metaadattárhoz konfigurált alapértelmezett gyökértárolótól eltérő helyen legyenek tárolva.Fontos
Ha a munkaterület nem rendelkezik metaadattárszintű tárolóhellyel, a katalógus létrehozásakor meg kell adnia egy felügyelt tárolóhelyet.
Ezt az elérési utat egy külső helykonfigurációban kell meghatározni, és rendelkeznie kell a
CREATE MANAGED STORAGE
külső hely konfigurációjára vonatkozó jogosultsággal. Használhatja a külső hely konfigurációjában definiált elérési utat vagy egy segédútvonalat (más szóval,'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
vagy'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance/product'
). A Databricks Runtime 11.3-at és újabb verziót igényel.<comment>
: Nem kötelező leírás vagy egyéb megjegyzés.
Feljegyzés
Ha egy külső katalógust hoz létre (egy biztonságos objektumot a Unity Katalógusban, amely egy adatbázist tükröz egy külső adatrendszerben, amelyet a Lakehouse Federationhez használnak), az SQL-parancs és
CREATE FOREIGN CATALOG
a beállítások eltérőek. Lásd: Idegen katalógus létrehozása.CREATE CATALOG [ IF NOT EXISTS ] <catalog-name> [ MANAGED LOCATION '<location-path>' ] [ COMMENT <comment> ];
Például a következő nevű
example
katalógus létrehozásához:CREATE CATALOG IF NOT EXISTS example;
Ha korlátozni szeretné a katalógus hozzáférését a fiók adott munkaterületeihez, más néven munkaterület-katalógus kötéséhez, olvassa el a katalógus kötése egy vagy több munkaterülethez című témakört.
A paraméterek leírását a CREATE CATALOG című témakörben talál.
Jogosultságok hozzárendelése a katalógushoz. Lásd: Unity Catalog-jogosultságok és biztonságos objektumok.
Katalógus létrehozásakor a rendszer automatikusan két sémát (adatbázist) hoz létre: default
és information_schema
.
Katalógust a Databricks Terraform szolgáltatóval és databricks_catalog is létrehozhat. A katalógusokkal kapcsolatos információkat a databricks_catalogs használatával kérdezheti le.
(Nem kötelező) Katalógus hozzárendelése adott munkaterületekhez
Ha munkaterületekkel elkülöníti a felhasználói adatokhoz való hozzáférést, érdemes lehet korlátoznia a katalógus hozzáférését a fiók adott munkaterületeihez, más néven a munkaterület-katalógus kötéséhez. Az alapértelmezett beállítás a katalógus megosztása az aktuális metaadattárhoz csatolt összes munkaterülettel.
Engedélyezheti az olvasási és írási hozzáférést a katalógushoz egy munkaterületről (az alapértelmezett), vagy megadhat írásvédett hozzáférést. Ha írásvédett műveletet ad meg, a rendszer minden írási műveletet letilt a munkaterületről a katalógusba.
A katalógus adott munkaterületekhez való kötésének tipikus használati esetei a következők:
- Annak biztosítása, hogy a felhasználók csak éles munkaterületi környezetből férhessenek hozzá az éles adatokhoz.
- Annak biztosítása, hogy a felhasználók csak dedikált munkaterületről dolgozzák fel a bizalmas adatokat.
- A fejlesztői munkaterületről csak olvasható hozzáférést biztosít a felhasználóknak az éles adatokhoz a fejlesztés és tesztelés engedélyezéséhez.
Példa munkaterület-katalógus kötésre
Vegyük példaként a termelés és a fejlesztés elkülönítését. Ha azt adja meg, hogy az éles adatkatalógusok csak éles munkaterületekről érhetők el, ez felülírja a felhasználók számára kibocsátott egyedi támogatásokat.
Ebben a diagramban prod_catalog
két éles munkaterülethez van kötve. Tegyük fel, hogy egy felhasználó hozzáférést kapott egy meghívott táblához prod_catalog
(a használatávalGRANT SELECT ON my_table TO <user>
).my_table
Ha a felhasználó megpróbál hozzáférni my_table
a Dev munkaterületen, hibaüzenet jelenik meg. A felhasználó csak a Prod ETL és a Prod Analytics munkaterületekről férhet hozzá my_table
.
A munkaterület-katalógus kötéseit a platform minden területén tiszteletben tartják. Ha például lekérdezi az információs sémát, csak a munkaterületen elérhető katalógusok láthatók, ahol a lekérdezést kibocsátja. Az adatsorok és a keresési felhasználói felületek hasonlóképpen csak a munkaterülethez rendelt katalógusokat jelenítik meg (akár kötéseket használnak, akár alapértelmezés szerint).
Katalógus kötése egy vagy több munkaterülethez
Ha katalógust szeretne hozzárendelni adott munkaterületekhez, használhatja a Catalog Explorert vagy a Unity Catalog REST API-t.
Szükséges engedélyek: Metaadattár-rendszergazda vagy katalógustulajdonos.
Feljegyzés
A metaadattár-rendszergazdák a Katalóguskezelővel láthatják a metaadattár összes katalógusát – a katalógustulajdonosok pedig megtekinthetik a metaadattárban lévő összes katalógust, függetlenül attól, hogy a katalógus az aktuális munkaterülethez van-e rendelve. A munkaterülethez nem rendelt katalógusok szürkén jelennek meg, és egyetlen gyermekobjektum sem látható vagy kérdezhető le.
Katalóguskezelő
Jelentkezzen be a metaadattárhoz csatolt munkaterületre.
Kattintson a Katalógus gombra.
A Katalógus panel bal oldalán kattintson a katalógus nevére.
A Katalóguskezelő fő panelje alapértelmezés szerint a Katalógusok lista. Itt is kiválaszthatja a katalógust.
A Munkaterületek lapon törölje a jelet a Minden munkaterület hozzáférése jelölőnégyzetből.
Ha a katalógus már egy vagy több munkaterülethez van kötve, ez a jelölőnégyzet már nincs bejelölve.
Kattintson a Munkaterületek hozzárendelése gombra, és adja meg vagy keresse meg a hozzárendelni kívánt munkaterületeket.
(Nem kötelező) A munkaterület hozzáférésének korlátozása írásvédettre.
A Hozzáférési szint kezelése menüben válassza a Hozzáférés módosítása írásvédettre lehetőséget.
Ezt a kijelölést bármikor megfordíthatja a katalógus szerkesztésével, majd a Hozzáférés módosítása olvasáshoz és íráshoz lehetőséget választva.
A hozzáférés visszavonásához lépjen a Munkaterületek lapra, jelölje ki a munkaterületet, és kattintson a Visszavonás gombra.
API
A katalógus munkaterülethez való hozzárendeléséhez két API és két lépés szükséges. Az alábbi példákban cserélje le <workspace-url>
a munkaterület-példány nevét. A munkaterület-példány nevének és munkaterület-azonosítójának lekéréséről további információt a munkaterület-objektumok azonosítóinak lekérése című témakörben talál. A hozzáférési jogkivonatok beszerzéséről az Azure Databricks automation hitelesítése – áttekintés című témakörben olvashat.
catalogs
Az API használatával állítsa a katalógust a következőreISOLATED
isolation mode
:curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/catalogs/<my-catalog> \ -H 'Authorization: Bearer <my-token> \ -H 'Content-Type: application/json' \ --data-raw '{ "isolation_mode": "ISOLATED" }'
Az alapértelmezett
isolation mode
beállítás aOPEN
metaadattárhoz csatolt összes munkaterületre igaz.A frissítési
bindings
API használatával rendelje hozzá a munkaterületeket a katalógushoz:curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \ -H 'Authorization: Bearer <my-token> \ -H 'Content-Type: application/json' \ --data-raw '{ "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...], "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...] }'
A munkaterület-kötések hozzáadásához vagy
"remove"
eltávolításához használja a"add"
tulajdonságokat és a tulajdonságokat.<binding-type>
lehet“BINDING_TYPE_READ_WRITE”
(alapértelmezett) vagy“BINDING_TYPE_READ_ONLY”
.
A katalógus összes munkaterület-hozzárendelésének listázásához használja a lista bindings
API-t:
curl -L -X GET 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
-H 'Authorization: Bearer <my-token> \
Katalógus leválasztása munkaterületről
A Katalóguskezelő vagy az bindings
API használatával a katalógushoz való munkaterület-hozzáférés visszavonására vonatkozó utasításokat a katalógus egy vagy több munkaterülethez való kötése tartalmazza.
Fontos
Ha a munkaterület automatikusan engedélyezve lett a Unity-katalógushoz, és Ön rendelkezik munkaterület-katalógussal, a munkaterület rendszergazdái birtokolják ezt a katalógust, és csak a munkaterületen rendelkeznek az adott katalógusra vonatkozó összes engedéllyel. Ha leválasztja a katalógust, vagy más katalógusokhoz köti, a szükséges engedélyeket manuálisan kell megadnia a munkaterület-rendszergazdai csoport tagjainak egyéni felhasználókként vagy fiókszintű csoportok használatával, mivel a munkaterület rendszergazdái csoportja egy munkaterület-helyi csoport. További információ a fiókcsoportokról és a munkaterület-helyi csoportokról: Különbség a fiókcsoportok és a munkaterület-helyi csoportok között.
Sémák hozzáadása a katalógushoz
Megtudhatja, hogyan adhat hozzá sémákat (adatbázisokat) a katalógushoz. lásd: Sémák (adatbázisok) létrehozása és kezelése.
Katalógus részleteinek megtekintése
A katalógus adatainak megtekintéséhez használhatja a Katalóguskezelőt vagy az SQL-parancsot.
Katalóguskezelő
Jelentkezzen be a metaadattárhoz csatolt munkaterületre.
Kattintson a Katalógus gombra.
A Katalógus panelen keresse meg a katalógust, és kattintson a nevére.
Néhány részlet a lap tetején található. Mások a Sémák, a Részletek, az Engedélyek és a Munkaterületek lapon tekinthetők meg.
Sql
Futtassa a következő SQL-parancsot egy jegyzetfüzetben vagy a Databricks SQL-szerkesztőben. A szögletes zárójelek nem kötelezőek. Cserélje le a helyőrzőt <catalog-name>
.
További részletekért lásd: DESCRIBE CATALOG.
DESCRIBE CATALOG <catalog-name>;
A részletek lekéréséhez használja CATALOG EXTENDED
.
Katalógus törlése
Katalógus törléséhez (vagy elvetéséhez) használhatja a Katalóguskezelőt vagy egy SQL-parancsot. A katalógus elvetéséhez a tulajdonosának kell lennie.
Katalóguskezelő
A katalógus összes sémáját törölnie kell, kivéve information_schema
a katalógus törlését. Ez magában foglalja az automatikusan létrehozott default
sémát is.
- Jelentkezzen be a metaadattárhoz csatolt munkaterületre.
- Kattintson a Katalógus gombra.
- A Katalógus panel bal oldalán kattintson a törölni kívánt katalógusra.
- A részletek panelen kattintson az Adatbázis létrehozása gomb bal oldalán található három pontos menüre, és válassza a Törlés lehetőséget.
- A Katalógus törlése párbeszédpanelen kattintson a Törlés gombra.
Sql
Futtassa a következő SQL-parancsot egy jegyzetfüzetben vagy a Databricks SQL-szerkesztőben. A szögletes zárójelek nem kötelezőek. Cserélje le a helyőrzőt <catalog-name>
.
A paraméterek leírásáért lásd a DROP CATALOG-t.
Ha a beállítás nélkül használja DROP CATALOG
, CASCADE
a katalógus összes sémáját törölnie kell, kivéve information_schema
a katalógus törlését. Ez magában foglalja az automatikusan létrehozott default
sémát is.
DROP CATALOG [ IF EXISTS ] <catalog-name> [ RESTRICT | CASCADE ]
Például egy elnevezett vaccine
katalógus és sémái törléséhez:
DROP CATALOG vaccine CASCADE
Az alapértelmezett katalógus kezelése
Minden olyan munkaterülethez, amely engedélyezve van a Unity Cataloghoz, egy alapértelmezett katalógus van konfigurálva. Az alapértelmezett katalógus lehetővé teszi az adatműveletek elvégzését katalógus megadása nélkül. Ha adatműveletek végrehajtásakor kihagyja a legfelső szintű katalógus nevét, a rendszer feltételezi az alapértelmezett katalógust.
A munkaterület rendszergazdája a Rendszergazda Gépház felhasználói felületén tekintheti meg vagy válthatja át az alapértelmezett katalógust. A fürt alapértelmezett katalógusát Spark-konfigurációval is beállíthatja.
A katalógust nem meghatározó parancsokat (például GRANT CREATE TABLE ON SCHEMA myschema TO mygroup
) a rendszer a következő sorrendben értékeli ki a katalógushoz:
- A munkamenet
USE CATALOG
katalógusa utasítással vagy JDBC-beállítással van beállítva? - A Spark-konfiguráció
spark.databricks.sql.initial.catalog.namespace
be van állítva a fürtön? - Van alapértelmezett munkaterület-katalógus a fürthöz?
Az alapértelmezett katalóguskonfiguráció, ha a Unity Catalog engedélyezve van
A munkaterülethez eredetileg konfigurált alapértelmezett katalógus attól függ, hogy a munkaterület hogyan lett engedélyezve a Unity-katalógusban:
- Egyes, a Unity Cataloghoz automatikusan engedélyezett munkaterületek esetében a munkaterület-katalógus alapértelmezett katalógusként lett beállítva. Lásd: A Unity-katalógus automatikus engedélyezése.
- Az összes többi munkaterület esetében a
hive_metastore
katalógus alapértelmezett katalógusként lett beállítva.
Ha egy meglévő munkaterületen belül a Hive-metaadattárról a Unity-katalógusra vált, általában érdemes alapértelmezett katalógusként használni hive_metastore
, hogy ne befolyásolja a hive metaadattárra hivatkozó meglévő kódot.
Az alapértelmezett katalógus módosítása
A munkaterület rendszergazdája módosíthatja a munkaterület alapértelmezett katalógusát. A fürt létrehozására vagy szerkesztésére jogosult bárki beállíthat egy másik alapértelmezett katalógust a fürthöz.
Figyelmeztetés
Az alapértelmezett katalógus módosítása megszakíthatja az attól függő meglévő adatműveleteket.
Másik alapértelmezett katalógus konfigurálása munkaterülethez:
- Jelentkezzen be a munkaterületre munkaterület-rendszergazdaként.
- Kattintson a felhasználónevére a munkaterület felső sávjában, és válassza Gépház a legördülő listában.
- Kattintson a Speciális fülre.
- A munkaterület sor alapértelmezett katalógusában adja meg a katalógus nevét, és kattintson a Mentés gombra.
Indítsa újra az SQL-raktárakat és -fürtöket a módosítás érvénybe lépéséhez. Minden új és újraindított SQL-raktár és fürt ezt a katalógust használja alapértelmezett munkaterületként.
Felülbírálhatja egy adott fürt alapértelmezett katalógusát is, ha a következő Spark-konfigurációt állítja be a fürtön. Ez a megközelítés nem érhető el AZ SQL-raktárak esetében:
spark.databricks.sql.initial.catalog.name
Útmutatásért lásd a Spark konfigurációját.
Az aktuális alapértelmezett katalógus megtekintése
A munkaterület aktuális alapértelmezett katalógusának lekéréséhez használhat egy SQL-utasítást egy jegyzetfüzetben vagy egy SQL Editor-lekérdezésben. A munkaterület rendszergazdája lekérheti az alapértelmezett katalógust a Rendszergazda Gépház felhasználói felületén.
Rendszergazdai beállítások
- Jelentkezzen be a munkaterületre munkaterület-rendszergazdaként.
- Kattintson a felhasználónevére a munkaterület felső sávjában, és válassza Gépház a legördülő listában.
- Kattintson a Speciális fülre.
- A munkaterület sor alapértelmezett katalógusában tekintse meg a katalógus nevét.
Sql
Futtassa a következő parancsot egy SQL Warehouse- vagy Unity Catalog-kompatibilis fürtön futó jegyzetfüzetben vagy SQL Editor-lekérdezésben. A rendszer mindaddig visszaadja a munkaterület alapértelmezett katalógusát, amíg nincs USE CATALOG
beállítva utasítás vagy JDBC-beállítás a munkamenetben, és amíg nincs spark.databricks.sql.initial.catalog.namespace
beállítva konfiguráció a fürthöz.
SELECT current_catalog();
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: