Erstellen eines Unity Catalog-Metastores

In diesem Artikel erfahren Sie, wie Sie einen Unity Catalog Metastore erstellen und mit Arbeitsbereichen verknüpfen.

Wichtig

Für Arbeitsbereiche, die automatisch für Unity-Katalog aktiviert wurden, sind die Anweisungen in diesem Artikel nicht erforderlich. Databricks begann am 9. November 2023, automatisch neue Arbeitsbereiche für Unity Catalog zu aktivieren, wobei ein Rollout schrittweise über Konten hinweg fortgesetzt wird. Sie müssen die Anweisungen in diesem Artikel nur befolgen, wenn Sie über einen Arbeitsbereich verfügen und noch keinen Metastore in Ihrer Arbeitsbereichsregion haben. Informationen dazu, ob in Ihrer Region bereits ein Metastore vorhanden ist, finden Sie unter Automatische Aktivierung des Unity-Katalogs.

Ein Metastore ist der oberste Datencontainer in Unity Catalog. In den Metastore-Registern von Unity Catalog werden Metadaten über sicherheitsrelevante Objekte (z.B. Tabellen, Datenträger, externe Speicherorte und Freigaben) und die Berechtigungen für den Zugriff auf diese Objekte gespeichert. Jeder Metastore stellt einen 3-Level-Namespace (catalog.schematable) zur Verfügung, durch den Daten organisiert werden können. Sie müssen einen Metastore für jede Region erstellen, in der Ihre Organisation tätig ist. Um mit Unity Catalog zu arbeiten, müssen sich die Benutzer in einem Arbeitsbereich befinden, der einem Metastore in ihrer Region zugeordnet ist.

Gehen Sie wie folgt vor, um einen Metastore zu erstellen:

  1. Erstellen Sie in Ihrem Azure-Konto optional einen Speicherort auf Metastore-Ebene für verwaltete Tabellen und Datenträger.

    Weitere Informationen zur Unterstützung bei der Entscheidung, ob Sie Speicher auf Metastore-Ebene benötigen, finden Sie unter (Optional) Erstellen von Speicher auf Metastore-Ebene und Daten werden physisch im Speicher getrennt.

  2. Erstellen Sie in Ihrem Azure-Konto eine von Azure verwaltete Identität oder einen Dienstprinzipal mit Zugriff auf diesen Speicherort.

  3. Erstellen Sie in Azure Databricks den Metastore, fügen Sie den Speicherort an und weisen Sie dem Metastore Arbeitsbereiche zu.

Hinweis

Zusätzlich zu den Ansätzen in diesem Artikel können Sie auch einen Metastore erstellen, indem Sie den Databricks Terraform-Anbieter und databricks_metastore verwenden. Verwenden Sie databricks_metastore_data_access, um den Zugriff auf den Metastore durch Unity Catalog zu ermöglichen. Verwenden Sie databricks_metastore_assignment, um Arbeitsbereiche mit einem Metastore zu verknüpfen.

Voraussetzungen

Bevor Sie beginnen, sollten Sie sich mit den grundlegenden Unity-Catalog-Konzepten, einschließlich Metastores und verwaltetem Speicher, vertraut machen. Siehe Was ist Unity Catalog?.

Sie sollten sich auch vergewissern, dass Sie die folgenden Voraussetzungen für alle Einrichtungsschritte erfüllen:

  • Sie müssen ein Azure Databricks-Kontoadministrator sein.

    Der/die erste Azure Databricks-Kontoadministrator:in muss globale:r Microsoft Entra ID-Administrator:in (früher Azure Active Directory) sein, wenn er/sie sich zum ersten Mal bei der Azure Databricks-Kontokonsole anmeldet. Bei der ersten Anmeldung wird dieser Benutzer zu einem Azure Databricks-Kontoadministrator und benötigt nicht mehr die Rolle „Globaler Microsoft Entra ID-Administrator“, um auf das Azure Databricks-Konto zuzugreifen. Der erste Kontoadministrator kann Benutzer im Azure Active Directory-Mandanten als zusätzliche Kontoadministratoren zuweisen (die ihrerseits weitere Kontoadministratoren zuweisen können). Für zusätzliche Kontoadministratoren sind keine speziellen Rollen in Microsoft Entra ID erforderlich.

  • Die Arbeitsbereiche, die Sie dem Metastore anfügen, müssen sich im Azure Databricks Premium-Tarif befinden.

  • Wenn Sie den Stammspeicher auf Metastore-Ebene einrichten möchten, müssen Sie über die Berechtigung zum Erstellen der folgenden Elemente in Ihrem Azure-Mandanten verfügen:

Schritt 1 (optional): Erstellen Sie einen Speichercontainer für verwalteten Speicher auf Metastore-Ebene

In diesem optionalen Schritt erstellen Sie ein Speicherkonto und einen Container zum Speichern von verwalteten Tabellen- und Datenträgerdaten auf Metastore-Ebene. Informationen dazu, ob Sie den Speicher auf Metastore-Ebene benötigen, finden Sie unter (Optional) Erstellen von Speicher auf Metastore-Ebene.

  1. Erstellen Sie ein Speicherkonto für Azure Data Lake Storage Gen2.

    Dieses Speicherkonto enthält von Unity Catalog verwaltete Tabellen und Datenträger. Dies muss ein Azure Data Lake Storage Gen2-Konto in derselben Region wie Ihre Azure Databricks-Arbeitsbereiche sein. Lesen Sie die Informationen unter Erstellen eines Speicherkontos für die Verwendung mit Azure Data Lake Storage Gen2.

  2. Erstellen Sie einen Speichercontainer, der Ihre verwalteten Tabellen und Datenträgerdaten auf Metastore-Ebene enthält.

    Sie können nur einen Metastore pro Region erstellen. Sie müssen dieselbe Region für den Metastore und den Speichercontainer verwenden.

    Dieser Standardspeicherort auf Metastore-Ebene kann auf Katalog- und Schemaebene außer Kraft gesetzt werden. Weitere Informationen finden Sie unter Verwalteter Speicher.

    Notieren Sie sich den ADLSv2-URI für den Container im folgenden Format:

    abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
    

    Ersetzen Sie in den folgenden Schritten <storage-container> durch diese URI.

Schritt 2 (optional): Erstellen einer verwalteten Identität für den Zugriff auf den verwalteten Speicherort

In diesem Schritt, der nur erforderlich ist, wenn Sie Schritt 1 abgeschlossen haben, erstellen Sie einen Azure Databricks-Zugriffsconnector, der eine verwaltete Identität enthält, und gewähren ihm Zugriff auf den Speichercontainer.

Folgen Sie den Anweisungen unter Verwenden von verwalteten Azure-Identitäten in Unity Catalog, um auf den Speicher zuzugreifen.

Hinweis

Sie können entweder eine verwaltete Azure-Identität oder einen Dienstprinzipal als Identität verwenden, die den Zugriff auf den Speichercontainer des Metastores gewähren. Databricks empfiehlt dringend verwaltete Identitäten, da Sie keine Anmeldeinformationen pflegen oder Geheimnisse drehen müssen und Sie sich mit einem Azure Data Lake Storage Gen2-Konto verbinden können, das durch eine Speicherfirewall geschützt ist. Wenn Sie einen Dienstprinzipal verwenden möchten, lesen Sie Erstellen von verwaltetem Speicher in Unity Catalog mithilfe eines Dienstprinzipals (Legacy).

Schritt 3: Erstellen Sie einen Metastore und fügen Sie einen Arbeitsbereich an

Jede Azure Databricks-Region benötigt einen eigenen Unity-Catalog-Metastore.

Sie erstellen einen Metastore für jede Region, in der Ihre Organisation tätig ist. Sie können jeden dieser regionalen Metastores mit einer beliebigen Anzahl von Arbeitsbereichen in dieser Region verknüpfen. Jeder verknüpfte Arbeitsbereich hat dieselbe Ansicht der Daten im Metastore, und die Datenzugriffssteuerung kann über Arbeitsbereiche hinweg verwaltet werden. Sie können mithilfe von Delta Sharing auf Daten in anderen Metastores zugreifen.

Wenn Sie den Speicher auf Metastore-Ebene erstellen, verwendet der Metastore den Speichercontainer und die von Azure verwaltete Identität, die Sie in den vorherigen Schritten erstellt haben.

Führen Sie die folgenden Schritte aus, um einen Metastore zu erstellen:

  1. Wenn Sie den Speicher auf Metastore-Ebene erstellen möchten, stellen Sie sicher, dass Sie über den Pfad zum Speichercontainer und die Ressourcen-ID des Azure Databricks-Zugriffsconnectors verfügen, den Sie in der vorherigen Aufgabe erstellt haben.

  2. Melden Sie sich bei Ihrem Arbeitsbereich als Kontoadministrator an.

  3. Klicken Sie in der oberen Leiste des Azure Databricks-Arbeitsbereichs auf Ihren Benutzernamen, und wählen Sie Konto verwalten aus.

  4. Melden Sie sich bei der Kontokonsole von Azure Databricks an.

  5. Klicken Sie auf KatalogsymbolKatalog.

  6. Klicken Sie auf Metastore erstellen.

  7. Geben Sie Folgendes ein:

    • Name für den Metastore.

    • Region, in der der Metaspeicher bereitgestellt werden soll.

      Dies muss die gleiche Region sein wie die der Arbeitsbereiche, die Sie zum Zugriff auf die Daten verwenden möchten. Wenn Sie einen Speichercontainer für den Speicher auf Metastore-Ebene erstellen möchten, muss die Region ebenfalls identisch sein.

    • (Optional) ADLS Gen 2-Pfad: Geben Sie den Pfad zu dem Speichercontainer ein, den Sie als Stammspeicher für den Metastore verwenden werden.

      Das Präfix abfss:// wird automatisch hinzugefügt.

    • (Optional) Access Connector ID: Geben Sie die Ressourcen-ID des Azure Databricks Access Connectors im folgenden Format an:

      /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
      
  8. Klicken Sie auf Erstellen.

  9. Wenn Sie dazu aufgefordert werden, wählen Sie die Arbeitsbereiche aus, die mit dem Metastore verknüpft werden sollen.

    Weitere Informationen finden Sie unter Aktivieren eines Arbeitsbereichs für Unity Catalog.

  10. Übertragen Sie die Metastore-Administratorrolle auf eine Gruppe.

    Der Benutzer, der einen Metastore erstellt, ist sein Eigentümer, auch Metastore-Administrator genannt. Der Metastore-Administrator kann Objekte der obersten Ebene im Metastore wie Kataloge erstellen und den Zugriff auf Tabellen und andere Objekte verwalten. Databricks empfiehlt, dass Sie die Rolle des Metastore-Administrators einer Gruppe zuweisen. Zuweisen eines Metastore-Administrators.

  11. Aktivieren Sie die Azure Databricks-Datenverwaltung von Uploads auf verwaltete Datenträger.

    Azure Databricks verwendet die ursprungsübergreifende Ressourcenfreigabe (CORS), um Daten in verwaltete Datenträger in Unity Catalog hochzuladen. Siehe Konfigurieren des Unity Catalog-Speicherkontos für CORS.

Nächste Schritte

Hinzufügen von verwaltetem Speicher zu einem vorhandenen Metastore

Verwalteter Speicher auf Metastore-Ebene ist optional und nicht für Metastores enthalten, die automatisch erstellt wurden. Möglicherweise möchten Sie Ihrem Metastore Speicher auf Metastore-Ebene hinzufügen, wenn Sie ein Datenisolationsmodell bevorzugen, das Daten zentral für mehrere Arbeitsbereiche speichert. Sie benötigen Speicher auf Metastore-Ebene, wenn Sie Notizbücher mithilfe der Delta-Freigabe freigeben möchten oder wenn Sie ein Azure Databricks-Partner sind, der persönliche Stagingspeicherorte verwendet.

Siehe auch Verwalteter Speicher.

Anforderungen

  • Sie müssen mindestens einen Arbeitsbereich an den Unity Catalog Metastore angefügt haben.
  • Azure Databricks-Berechtigungen erforderlich:
    • Um einen externen Speicherort zu erstellen, müssen Sie ein Metastore-Administrator oder Benutzer mit den CREATE EXTERNAL LOCATION- und CREATE STORAGE CREDENTIAL-Berechtigungen sein.
    • Um den Speicherort der Metastoredefinition hinzuzufügen, müssen Sie ein Kontoadministrator sein. Anweisungen zum Aktivieren der Kontoadministratorrolle in Ihrem Konto finden Sie unter Einrichten Ihres ersten Kontoadministrators.
  • Azure-Mandantenberechtigungen erforderlich:
    • Berechtigung zum Erstellen eines Speicherkontos für die Verwendung mit Azure Data Lake Storage Gen2. Dieses Speicherkonto muss einen hierarchischen Namespace aufweisen. Lesen Sie die Informationen unter Erstellen eines Speicherkontos für die Verwendung mit Azure Data Lake Storage Gen2.
    • Berechtigung zum Erstellen einer neuen Ressource zum Halten einer vom System zugewiesenen verwalteten Identität. Dazu müssen Sie Mitwirkender oder Eigentümer einer Ressourcengruppe in einem beliebigen Abonnement des Tenants sein.

Schritt 1: Erstellen des Speicherorts

Befolgen Sie die Anweisungen in Schritt 1 (optional): Erstellen eines Speichercontainers für verwalteten Speicher auf Metastore-Ebene und Schritt 2 (optional): Erstellen einer verwalteten Identität, um auf den verwalteten Speicherort zuzugreifen, um einen Speichercontainer in Azure Data Lake Storage Gen2 und einen Azure Databricks-Zugriffsconnector zu erstellen, der eine verwaltete Identität enthält, die Zugriff auf den Speichercontainer hat.

Schritt 2: Erstellen eines externen Speicherorts im Unity Catalog

In diesem Schritt erstellen Sie einen externen Speicherort im Unity Catalog, der auf den soeben erstellten ADLS Gen 2-Pfad verweist.

  1. Erstellen Sie Speicheranmeldeinformationen.

    Die Speicheranmeldeinformationen stellen die verwaltete Azure-Identität dar, die Sie in Schritt 1: Erstellen des Speicherorts erstellt haben.

    Befolgen Sie die Anweisungen unter Erstellen von Speicheranmeldeinformationen zum Herstellen einer Verbindung mit Azure Data Lake Storage Gen2.

  2. Erstellen Sie einen externen Speicherort, der auf die Speicheranmeldeinformationen verweist, die Sie im vorherigen Schritt erstellt haben, und den ADLS Gen 2-Speichercontainer, den Sie in Schritt 1: Erstellen des Speicherorts erstellt haben.

    Befolgen Sie die Anweisungen unter Erstellen eines externen Speicherorts zum Verbinden des Cloudspeichers mit Azure Databricks.

  3. Gewähren Sie sich die CREATE MANAGED STORAGE-Berechtigung für den externen Speicherort.

    1. Klicken Sie auf den Namen des externen Speicherorts, um den Detailbereich zu öffnen.
    2. Klicken Sie auf der Registerkarte Berechtigungen auf Erteilen.
    3. Wählen Sie im Dialogfeld Erteilen <external location> im Feld Prinzipale sich selbst aus und wählen Sie dann CREATE MANAGED STORAGE.
    4. Klicken Sie auf Erteilen.

Schritt 3: Hinzufügen des Speicherorts zum Metastore

Nachdem Sie einen externen Speicherort erstellt haben, der den Metastore-Speicher-Bucket darstellt, können Sie ihn dem Metastore hinzufügen.

  1. Melden Sie sich als Kontoadministrator*in bei der Kontokonsole an.

  2. Klicken Sie auf KatalogsymbolKatalog.

  3. Klicken Sie auf den Namen des Metastores.

  4. Vergewissern Sie sich, dass Sie der Metastore-Administrator sind.

    Klicken Sie andernfalls auf Bearbeiten und weisen Sie sich selbst die Rolle Metastore-Administrator zu. Sie können die Rolle für sich selbst wieder entfernen, wenn Sie mit diesem Verfahren fertig sind.

  5. Klicken Sie auf der Registerkarte Konfiguration neben dem Pfad ADLS Gen 2 auf Festlegen.

  6. Geben Sie im Dialogfeld Metastore-Stamm festlegen den ADLS Gen 2-Pfad ein, den Sie zum Erstellen des externen Speicherorts verwendet haben, und klicken Sie auf Aktualisieren.

    Sie können diesen Pfad nicht ändern, nachdem Sie ihn festgelegt haben.

Löschen eines Metastores

Wenn Sie Ihr Azure Databricks-Konto schließen oder einen anderen Grund haben, den Zugriff auf Daten zu löschen, die von Ihrem Unity Catalog-Metastore verwaltet werden, können Sie den Metastore löschen.

Warnung

Alle vom Metastore verwalteten Objekte sind dann nicht mehr über Azure Databricks-Arbeitsbereiche zugänglich. Diese Aktion kann nicht rückgängig gemacht werden.

Verwaltete Tabellendaten und Metadaten werden nach 30 Tagen automatisch gelöscht. Externe Tabellendaten in Ihrem Cloudspeicher sind von der Löschung des Metastores nicht betroffen.

So löschen Sie einen Metastore:

  1. Melden Sie sich als Metastoreadministrator bei der Kontokonsole an.
  2. Klicken Sie auf KatalogsymbolKatalog.
  3. Klicken Sie auf den Namen des Metastores.
  4. Klicken Sie auf der Registerkarte Konfiguration oben rechts auf die Menüschaltfläche, und wählen Sie Löschen aus.
  5. Geben Sie im Bestätigungsdialogfeld den Namen des Metastores ein, und klicken Sie auf Löschen.