Share via


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ő

  1. Jelentkezzen be a metaadattárhoz csatolt munkaterületre.

  2. Kattintson a Katalógus gombraKatalógus ikon.

  3. Kattintson a Katalógus létrehozása gombra.

  4. 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.
  5. (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.

  6. Kattintson a Létrehozás gombra.

  7. (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.

  8. Engedélyek hozzárendelése a katalógushoz. Lásd: Unity Catalog-jogosultságok és biztonságos objektumok.

Sql

  1. 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ű examplekataló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.

  2. 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.

Katalógus-munkaterület kötési diagramja

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ő

  1. Jelentkezzen be a metaadattárhoz csatolt munkaterületre.

  2. Kattintson a Katalógus gombraKatalógus ikon.

  3. 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.

  4. 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.

  5. Kattintson a Munkaterületek hozzárendelése gombra, és adja meg vagy keresse meg a hozzárendelni kívánt munkaterületeket.

  6. (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.

  1. catalogs Az API használatával állítsa a katalógust a következőreISOLATEDisolation 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 a OPEN metaadattárhoz csatolt összes munkaterületre igaz.

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

  1. Jelentkezzen be a metaadattárhoz csatolt munkaterületre.

  2. Kattintson a Katalógus gombraKatalógus ikon.

  3. 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.

  1. Jelentkezzen be a metaadattárhoz csatolt munkaterületre.
  2. Kattintson a Katalógus gombraKatalógus ikon.
  3. A Katalógus panel bal oldalán kattintson a törölni kívánt katalógusra.
  4. 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.
  5. 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:

  1. A munkamenet USE CATALOG katalógusa utasítással vagy JDBC-beállítással van beállítva?
  2. A Spark-konfiguráció spark.databricks.sql.initial.catalog.namespace be van állítva a fürtön?
  3. 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:

  1. Jelentkezzen be a munkaterületre munkaterület-rendszergazdaként.
  2. 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.
  3. Kattintson a Speciális fülre.
  4. 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

  1. Jelentkezzen be a munkaterületre munkaterület-rendszergazdaként.
  2. 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.
  3. Kattintson a Speciális fülre.
  4. 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();