Erstellen und Verwalten von Katalogen

In diesem Artikel erfahren Sie, wie Sie Kataloge in Unity Catalog erstellen und verwalten. Ein Katalog enthält Schemata (Datenbanken) und ein Schema Tabellen, Ansichten, Datenträger, Modelle und Funktionen.

Hinweis

In Arbeitsbereichen, die automatisch für Unity Catalog aktiviert wurden, wurde standardmäßig ein Arbeitsbereichskatalog für Sie erstellt. Alle Benutzer in Ihrem Arbeitsbereich (und nur Ihr Arbeitsbereich) haben standardmäßig Zugriff darauf. Weitere Informationen finden Sie unter Schritt 1: Vergewissern Sie sich, dass Ihr Arbeitsbereich für den Unity Catalog aktiviert ist.

Hinweis

Informationen zum Erstellen eines Fremdkatalogs, eines Unity Catalog-Objekts, das eine Datenbank in einem externen Datensystem spiegelt, finden Sie unter Erstellen eines Fremdkatalogs. Weitere Informationen finden Sie außerdem unter Verwalten und Arbeiten mit Fremdkatalogen.

Anforderungen

Erstellen eines Katalogs:

  • Sie müssen ein Azure Databricks-Metastore-Administrator sein oder über die CREATE CATALOG-Berechtigung für den Metastore verfügen.

  • Sie benötigen einen Unity Catalog-Metastore, der mit dem Arbeitsbereich verknüpft ist, in dem Sie die Katalogerstellung durchführen.

  • Der Cluster, den Sie verwenden, um ein Notebook zur Erstellung eines Katalogs zu starten, muss einen Unity Catalog-kompatiblen Zugriffsmodus verwenden. Weitere Informationen finden Sie unter Zugriffsmodi.

    SQL-Warehouses unterstützen immer Unity Catalog.

Erstellen eines Katalogs

Ein Katalog kann mithilfe des Katalog-Explorers oder mithilfe eines SQL-Befehls erstellt werden.

Katalog-Explorer

  1. Melden Sie sich bei einem Arbeitsbereich an, der mit dem Metastore verknüpft ist.

  2. Klicken Sie auf KatalogsymbolKatalog.

  3. Klicken Sie auf die Schaltfläche Katalog erstellen.

  4. Wählen Sie den Katalogtyp aus, den Sie erstellen möchten:

    • Standardkatalog: ein sicherungsfähiges Objekt, das Datenressourcen organisiert, die von Unity Catalog verwaltet werden. Für alle Anwendungsfälle mit Ausnahme von Lakehouse Federation.
    • Fremdkatalog: ein sicherungsfähiges Objekt in Unity Catalog, das eine Datenbank in einem externen Datensystem mithilfe von Lakehouse Federation spiegelt. Weitere Informationen finden Sie unter Übersicht über die Einrichtung von Lakehouse Federation.
  5. (Optional, aber dringend empfohlen:) Geben Sie einen verwalteten Speicherort an. Erfordert die Berechtigung CREATE MANAGED STORAGE für den externen Zielspeicherort. Weitere Informationen finden Sie unter Angeben eines verwalteten Speicherorts in Unity Catalog.

    Wichtig

    Wenn Ihr Arbeitsbereich keinen Speicherort auf Metastore-Ebene aufweist, müssen Sie beim Erstellen eines Katalogs einen verwalteten Speicherort angeben.

  6. Klicken Sie auf Erstellen.

  7. (Optional) Geben Sie den Arbeitsbereich an, an den der Katalog gebunden ist.

    Standardmäßig wird der Katalog für alle Arbeitsbereiche freigegeben, die an den aktuellen Metastore angefügt sind. Wenn der Katalog Daten enthält, die auf bestimmte Arbeitsbereiche beschränkt sein sollen, wechseln Sie zur Registerkarte Arbeitsbereiche und fügen Sie diese Arbeitsbereiche hinzu.

    Weitere Informationen finden Sie unter (Optional) Zuweisen eines Katalogs zu bestimmten Arbeitsbereichen.

  8. Weisen Sie Berechtigungen für Ihren Katalog zu. Weitere Informationen finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte.

Sql

  1. Führen Sie den folgenden SQL-Befehl in einem Notebook oder im Databricks SQL-Editor aus. Elemente in Klammern sind optional. Ersetzen Sie folgende Platzhalterwerte:

    • <catalog-name>: Ein Name für den Katalog.

    • <location-path>: optional, jedoch dringend empfohlen. Geben Sie einen Speicherpfad an, wenn Sie möchten, dass verwaltete Tabellen in diesem Katalog an einem anderen Ort als dem für den Metaspeicher konfigurierten Standard-Stammspeicher gespeichert werden.

      Wichtig

      Wenn Ihr Arbeitsbereich keinen Speicherort auf Metastore-Ebene aufweist, müssen Sie beim Erstellen eines Katalogs einen verwalteten Speicherort angeben.

      Der Pfad muss in einer Konfiguration mit einem externen Speicherort definiert werden, und Sie müssen über die CREATE MANAGED STORAGE Berechtigung für die Konfiguration des externen Speicherorts verfügen. Sie können den Pfad verwenden, der in der Konfiguration des externen Speicherorts definiert ist, oder einen Unterpfad (mit anderen Worten, 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' oder 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance/product'). Databricks Runtime 11.3 oder höher ist erforderlich.

    • <comment>: Optionale Beschreibung oder anderer Kommentar.

    Hinweis

    Wenn Sie einen Fremdkatalog erstellen (ein sicherungsfähiges Objekt in Unity Catalog, das eine Datenbank in einem externen Datensystem spiegelt, verwendet für Lakehouse Federation), lautet der SQL-Befehl CREATE FOREIGN CATALOG, und die Optionen unterscheiden sich. Weiter Informationen finden Sie unter Erstellen eines fremden Katalogs.

    CREATE CATALOG [ IF NOT EXISTS ] <catalog-name>
       [ MANAGED LOCATION '<location-path>' ]
       [ COMMENT <comment> ];
    

    So erstellen Sie beispielsweise einen Katalog mit dem Namen example:

    CREATE CATALOG IF NOT EXISTS example;
    

    Wenn Sie den Katalogzugriff auf bestimmte Arbeitsbereiche in Ihrem Konto einschränken möchten, auch als Arbeitsbereichskatalogbindung bezeichnet, lesen Sie Binden eines Katalogs an einen oder mehrere Arbeitsbereiche.

    Parameterbeschreibungen finden Sie unter CREATE CATALOG.

  2. Weisen Sie dem Katalog Berechtigungen zu. Weitere Informationen finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte.

Wenn Sie einen Katalog erstellen, werden automatisch zwei Schemas (Datenbanken) erstellt: default und information_schema.

Sie können auch einen Katalog erstellen, indem Sie den Databricks Terraform-Anbieter und databricks_catalog verwenden. Sie können Informationen über Kataloge mithilfe von databricks_catalogs abrufen.

(Optional) Zuweisen eines Katalogs zu bestimmten Arbeitsbereichen

Wenn Sie Arbeitsbereiche verwenden, um den Zugriff auf Benutzerdaten zu isolieren, können Sie den Katalogzugriff auf bestimmte Arbeitsbereiche in Ihrem Konto beschränken, was auch als Arbeitsbereichskatalogbindung bezeichnet wird. Standardmäßig wird der Katalog für alle Arbeitsbereiche freigegeben, die an den aktuellen Metastore angefügt sind.

Sie können lese- und schreibgeschützten Zugriff auf den Katalog über einen Arbeitsbereich (Standardeinstellung) zulassen oder schreibgeschützten Zugriff angeben. Wenn Sie „schreibgeschützt“ angeben, werden alle Schreibvorgänge von diesem Arbeitsbereich in diesen Katalog blockiert.

Typische Anwendungsfälle für die Bindung eines Katalogs an bestimmte Arbeitsbereiche sind:

  • Sicherstellen, dass Benutzer nur aus einer Produktionsarbeitsbereichsumgebung auf Produktionsdaten zugreifen können.
  • Sicherstellen, dass Benutzer nur vertrauliche Daten aus einem dedizierten Arbeitsbereich verarbeiten können.
  • Ermöglicht Benutzern schreibgeschützten Zugriff auf Produktionsdaten aus einem Entwicklerarbeitsbereich, um Entwicklung und Tests zu ermöglichen.

Beispiel für die Katalogbindung an einen Arbeitsbereich

Nehmen wir als Beispiel die Isolation von Produktion und Entwicklung. Wenn Sie angeben, dass auf Ihre Produktionsdatenkataloge nur von Produktionsarbeitsbereichen aus zugegriffen werden kann, ersetzt dies alle einzelnen Zuweisungsrechte, die Benutzern erteilt werden.

Diagramm zur Katalog-Arbeitsbereichs-Bindung

In diesem Diagramm ist prod_catalog an zwei Produktionsarbeitsbereiche gebunden. Angenommen, einem Benutzer wurde Zugriff auf eine Tabelle in prod_catalog mit dem Namen my_table gewährt (mithilfe von GRANT SELECT ON my_table TO <user>). Wenn der Benutzer versucht, auf my_table im Dev-Arbeitsbereich zuzugreifen, erhält er eine Fehlermeldung. Der Benutzer kann nur über die Prod ETL- und Prod Analytics-Arbeitsbereiche auf my_table zugreifen.

Arbeitsbereichs-Katalog-Bindungen werden in allen Bereichen der Plattform berücksichtigt. Wenn Sie beispielsweise das Informationsschema abfragen, werden nur die Kataloge angezeigt, auf die in dem Arbeitsbereich zugegriffen werden kann, in dem Sie die Abfrage stellen. In Datenherkunfts- und Such-UIs werden ebenfalls nur die Kataloge angezeigt, die dem Arbeitsbereich zugewiesen sind (ob mit Bindungen oder standardmäßig).

Binden eines Katalogs an einen oder mehrere Arbeitsbereiche

Um einen Katalog bestimmten Arbeitsbereichen zuzuweisen, können Sie den Katalog-Explorer oder die Unity Catalog-REST-API verwenden.

Erforderliche Berechtigungen: Metastore-Administrator oder Katalogbesitzer.

Hinweis

Metastoreadministrator*innen können alle Kataloge in einem Metastore mithilfe des Katalog-Explorers anzeigen, und Katalogbesitzer*innen können alle Kataloge, die sie besitzen, in einem Metastore anzeigen – unabhängig davon, ob der Katalog dem aktuellen Arbeitsbereich zugewiesen ist. Kataloge, die dem Arbeitsbereich nicht zugewiesen sind, werden abgeblendet angezeigt, und es sind keine untergeordneten Objekte sichtbar oder abfragbar.

Katalog-Explorer

  1. Melden Sie sich bei einem Arbeitsbereich an, der mit dem Metastore verknüpft ist.

  2. Klicken Sie auf KatalogsymbolKatalog.

  3. Klicken Sie im Bereich Katalog links auf den Namen des Katalogs.

    Im Hauptbereich des Katalog-Explorers wird standardmäßig die Liste Kataloge angezeigt. Sie können den Katalog auch dort auswählen.

  4. Deaktivieren Sie auf der Registerkarte Arbeitsbereiche das Kontrollkästchen Alle Arbeitsbereiche haben Zugriff.

    Wenn Ihr Katalog bereits an einen oder mehrere Arbeitsbereiche gebunden ist, ist dieses Kontrollkästchen bereits deaktiviert.

  5. Klicken Sie auf Arbeitsbereichen zuordnen und geben Sie die Arbeitsbereiche ein, die Sie zuordnen möchten, oder suchen Sie diese.

  6. (Optional) Beschränken Sie den Arbeitsbereichszugriff auf schreibgeschützt.

    Wählen Sie im Menü Zugriffsebene verwalten die Option „Zugriff ändern“ auf „Schreibgeschützt“ aus.

    Sie können diese Auswahl jederzeit rückgängig machen, indem Sie den Katalog bearbeiten und Zugriff auf Lesen und Schreiben ändern wählen.

Um den Zugriff zu widerrufen, wechseln Sie zur Registerkarte Arbeitsbereiche, wählen Sie den Arbeitsbereich aus, und klicken Sie auf Widerrufen.

API

Es sind zwei APIs und zwei Schritte erforderlich, um einem Arbeitsbereich einen Katalog zuzuweisen. Ersetzen Sie in den folgenden Beispielen <workspace-url> durch den Namen Ihrer Arbeitsbereichsinstanz. Informationen zum Abrufen des Namens der Arbeitsbereichsinstanz und der Arbeitsbereichs-ID finden Sie unter Abrufen von Bezeichnern für Arbeitsbereichsobjekte. Informationen zum Abrufen von Zugriffstoken finden Sie unter Authentifizierung für die Azure Databricks-Automatisierung – Übersicht.

  1. Verwenden Sie die catalogs-API, um den isolation mode des Katalogs auf ISOLATED festzulegen:

    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"
     }'
    

    Die isolation mode-Standardeinstellung ist OPEN für alle Arbeitsbereiche, die an den Metastore angefügt sind.

  2. Verwenden Sie die Update-bindings-API, um die Arbeitsbereiche dem Katalog zuzuweisen:

    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>}...]
    }'
    

    Verwenden Sie die Eigenschaften "add" und "remove", um Arbeitsbereichsbindungen hinzuzufügen oder zu entfernen. <binding-type> kann entweder “BINDING_TYPE_READ_WRITE” (Standard) oder “BINDING_TYPE_READ_ONLY” sein.

Verwenden Sie die Listen-bindings-API, um alle Arbeitsbereichszuweisungen für einen Katalog aufzulisten:

   curl -L -X GET 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
   -H 'Authorization: Bearer <my-token> \

Herauslösen eines Katalogs aus einem Arbeitsbereich

Anweisungen zum Widerrufen des Arbeitsbereichszugriffs auf einen Katalog mithilfe des Katalog-Explorers oder der bindings-API sind in Binden eines Katalogs an einen oder mehrere Arbeitsbereiche enthalten.

Wichtig

Wenn Ihr Arbeitsbereich automatisch für Unity Catalog aktiviert wurde und Sie über einen Arbeitsbereichskatalog verfügen, besitzen Arbeitsbereichsadministrator*innen diesen Katalog und verfügen über alle Berechtigungen für diesen Katalog ausschließlich im Arbeitsbereich. Wenn Sie diesen Katalog herauslösen oder an andere Kataloge binden, müssen Sie den Mitgliedern der Arbeitsbereich-Administratorgruppe manuell Berechtigungen als einzelne Benutzer oder die Verwendung von Gruppen auf Kontoebene erteilen, da die Arbeitsbereich-Administratorgruppe eine arbeitsbereichslokale Gruppe ist. Weitere Informationen zu Kontogruppen und arbeitsbereichslokalen Gruppen finden Sie unter Unterschied zwischen Kontogruppen und arbeitsbereichslokalen Gruppen.

Hinzufügen von Schemata zu Ihrem Katalog

Informationen zum Hinzufügen von Schemata (Datenbanken) zu Ihrem Katalog. Siehe Erstellen und Verwalten von Schemata (Datenbanken).

Anzeigen der Katalogdetails

Informationen zu einem Katalog können mithilfe des Katalog-Explorers oder eines SQL-Befehls angezeigt werden.

Katalog-Explorer

  1. Melden Sie sich bei einem Arbeitsbereich an, der mit dem Metastore verknüpft ist.

  2. Klicken Sie auf KatalogsymbolKatalog.

  3. Suchen Sie im Bereich Katalog nach dem Katalog, und klicken Sie auf seinen Namen.

    Einige Details werden oben auf der Seite aufgeführt. Andere können auf den Registerkarten Schemas, Details, Berechtigungen und Arbeitsbereiche angezeigt werden.

Sql

Führen Sie den folgenden SQL-Befehl in einem Notebook oder im Databricks SQL-Editor aus. Elemente in Klammern sind optional. Ersetzen Sie den Platzhalter <catalog-name>.

Ausführliche Informationen finden Sie unter DESCRIBE CATALOG.

DESCRIBE CATALOG <catalog-name>;

Verwenden Sie CATALOG EXTENDED, um vollständige Details zu erhalten.

Löschen eines Katalogs

Ein Katalog kann mithilfe des Katalog-Explorers oder mithilfe eines SQL-Befehls gelöscht werden. Um einen Katalog abzulegen, müssen Sie sein Besitzer sein.

Katalog-Explorer

Um einen Katalog löschen zu können, müssen zunächst alle Schemas im Katalog gelöscht werden (mit Ausnahme von information_schema). Dies schließt auch das automatisch erstellte Schema default mit ein.

  1. Melden Sie sich bei einem Arbeitsbereich an, der mit dem Metastore verknüpft ist.
  2. Klicken Sie auf KatalogsymbolKatalog.
  3. Klicken Sie links im Bereich Katalogs auf den Katalog, den Sie löschen möchten.
  4. Klicken Sie links im Detailbereich neben der Schaltfläche Datenbank erstellen auf das Menü mit den drei Punkten, und wählen Sie Löschen aus.
  5. Klicken Sie im Dialogfeld Katalog löschen auf Löschen.

Sql

Führen Sie den folgenden SQL-Befehl in einem Notebook oder im Databricks SQL-Editor aus. Elemente in Klammern sind optional. Ersetzen Sie den Platzhalter <catalog-name>.

Parameterbeschreibungen finden Sie unter DROP CATALOG.

Wenn Sie DROP CATALOG ohne die Option CASCADE verwenden, müssen Sie alle Schemas im Katalog (mit Ausnahme von information_schema) löschen, um den Katalog löschen können. Dies schließt auch das automatisch erstellte Schema default mit ein.

DROP CATALOG [ IF EXISTS ] <catalog-name> [ RESTRICT | CASCADE ]

So löschen Sie beispielsweise einen Katalog namens vaccine und dessen Schemas:

DROP CATALOG vaccine CASCADE

Verwalten Sie den Standardkatalog

Ein Standardkatalog ist für jeden Arbeitsbereich konfiguriert, der für Unity Catalog aktiviert ist. Mit dem Standardkatalog können Sie Datenvorgänge ausführen, ohne einen Katalog anzugeben. Wenn Sie bei der Durchführung von Datenoperationen den Namen des obersten Katalogs weglassen, wird der Standardkatalog angenommen.

Ein Arbeitsbereichsadministrator kann den Standardkatalog mithilfe der Benutzeroberfläche für Administratoreinstellungen anzeigen oder wechseln. Sie können den Standardkatalog für einen Cluster auch mithilfe einer Spark-Konfiguration festlegen.

Befehle, die den Katalog nicht angeben (z. B. GRANT CREATE TABLE ON SCHEMA myschema TO mygroup ) werden für den Katalog in der folgenden Reihenfolge ausgewertet:

  1. Wird der Katalog für die Sitzung mithilfe einer USE CATALOG-Anweisung oder einer JDBC-Einstellung festgelegt?
  2. Ist die Spark-Konfiguration spark.databricks.sql.initial.catalog.namespace auf dem Cluster eingestellt?
  3. Gibt es einen Standardkatalog für Arbeitsbereiche für den Cluster?

Die Standardkatalogkonfiguration, wenn Unity Catalog aktiviert ist

Der anfänglich für Ihren Arbeitsbereich konfigurierte Standardkatalog hängt davon ab, wie Ihr Arbeitsbereich für Unity Catalog aktiviert wurde:

  • Bei einigen Arbeitsbereichen für automatisch für Unity Catalog aktiviert wurden, wurde der Arbeitsbereichskatalog als Standardkatalog festgelegt. Siehe Automatische Aktivierung des Unity Catalog.
  • Bei allen anderen Arbeitsbereichen wurde der Katalog hive_metastore als Standardkatalog festgelegt.

Wenn Sie aus dem Hive-Metastore zu Unity Catalog innerhalb eines vorhandenen Arbeitsbereichs wechseln, ist es in der Regel sinnvoll, hive_metastore als Standardkatalog zu verwenden, um zu vermeiden, dass der vorhandene Code, der auf den Struktur-Metastore verweist, beeinträchtigt wird.

Ändern des Standardkatalogs

Ein Arbeitsbereichsadministrator kann den Standardkatalog für den Arbeitsbereich ändern. Jeder Benutzer, der über die Berechtigung zum Erstellen oder Bearbeiten eines Clusters verfügt, kann einen anderen Standardkatalog für den Cluster festlegen.

Warnung

Das Ändern des Standardkatalogs kann bereits vorhandene Datenvorgänge beeinträchtigen, die von ihm abhängen.

So konfigurieren Sie einen anderen Standardkatalog für einen Arbeitsbereich:

  1. Melden Sie sich als Arbeitsbereichadministrator bei Ihrem Arbeitsbereich an.
  2. Klicken Sie in der oberen Leiste im Arbeitsbereich auf Ihren Benutzernamen, und wählen Sie Einstellungen aus der Dropdownliste aus.
  3. Klicken Sie auf die Registerkarte Erweitert.
  4. Geben Sie im Standardkatalog für die Arbeitsbereichszeile den Katalognamen ein, und klicken Sie auf Speichern.

Starten Sie Ihre SQL-Warehouses und -Cluster neu, damit die Änderung wirksam wird. Alle neuen und neu gestarteten SQL-Warehouses und -Cluster verwenden diesen Katalog als Standard für den Arbeitsbereich.

Sie können den Standardkatalog für einen bestimmten Cluster auch überschreiben, indem Sie die folgende Spark-Konfiguration für den Cluster festlegen. Dieser Ansatz ist für SQL-Warehouses nicht verfügbar:

spark.databricks.sql.initial.catalog.name

Anweisungen finden Sie unter Spark-Konfiguration.

Absicht des aktuellen Standardkatalogs

Um den aktuellen Standardkatalog für Ihren Arbeitsbereich abzurufen, können Sie eine SQL-Anweisung in einem Notebook oder einer SQL-Editor-Abfrage verwenden. Ein Arbeitsbereichsadministrator kann den Standardkatalog mithilfe der Benutzeroberfläche für Administratoreinstellungen abrufen.

Administratoreinstellungen

  1. Melden Sie sich als Arbeitsbereichadministrator bei Ihrem Arbeitsbereich an.
  2. Klicken Sie in der oberen Leiste im Arbeitsbereich auf Ihren Benutzernamen, und wählen Sie Einstellungen aus der Dropdownliste aus.
  3. Klicken Sie auf die Registerkarte Erweitert.
  4. Zeigen Sie im Standardkatalog für die Arbeitsbereichszeile den Katalognamen an.

Sql

Führen Sie den folgenden Befehl in einer Notebook- oder SQL-Editor-Abfrage aus, die auf einem SQL Warehouse- oder Unity Catalog-kompatiblen Cluster ausgeführt wird. Der Standardkatalog des Arbeitsbereichs wird zurückgegeben, solange keine USE CATALOG Anweisung oder JDBC-Einstellung festgelegt wurde, und solange keine spark.databricks.sql.initial.catalog.namespace-Konfiguration für den Cluster festgelegt ist.

SELECT current_catalog();