Freigeben über


Registrieren Ihrer Datenbank im Unity-Katalog

Von Bedeutung

Dieses Feature befindet sich in der öffentlichen Vorschau in den folgenden Regionen: westus, westus2, eastus, eastus2, centralus, southcentralus, northeurope, westeurope, australiaeast, brazilsouth, canadacentral, centralindia, southeastasia, uksouth.

Auf dieser Seite wird erläutert, wie Sie Ihre Lakebase-Datenbank als schreibgeschützten Unity-Katalogkatalog registrieren. Auf diese Weise können Sie Unity-Katalogberechtigungen verwenden, um den Datenzugriff zu verwalten und Integrationen wie die Synchronisierung verwalteter Daten zu nutzen.

Besitz und Berechtigungen

  • Wenn die Datenbank nicht vorhanden ist, kann sie zusammen mit dem Katalog erstellt werden. In diesem Fall folgt der Besitz der Objekte diesen Richtlinien.
  • Der Katalogersteller muss außerdem über CREATE CATALOG-Berechtigungen im Unity Catalog-Metastore verfügen.

Erstellen eines Katalogs

Verwenden Sie zum Registrieren einer Datenbank im Unity-Katalog die Azure Databricks-Benutzeroberfläche, den API-Aufruf, das Python SDK oder die CLI.

Benutzeroberfläche

  1. Klicken Sie auf " Berechnen" in der Arbeitsbereich-Randleiste.
  2. Wählen Sie auf der Registerkarte "Datenbankinstanzen " Ihre Datenbankinstanz aus.
  3. Klicken Sie auf der Registerkarte "Kataloge " auf " Katalog erstellen".
  4. Sie können eine vorhandene Datenbank als Unity-Katalogkatalog registrieren oder eine neue datenbank erstellen. Verwenden Sie eine der folgenden Optionen:
    • Um eine vorhandene Datenbank zu verwenden: Geben Sie den gewünschten Unity-Katalognamen und den Namen der vorhandenen Postgres-Datenbank ein. Die Standarddatenbank databricks_postgres kann als Datenbankname verwendet werden.
    • Um gleichzeitig eine neue Postgres-Datenbank und einen Unity-Katalog zu erstellen: Geben Sie den gewünschten Katalognamen ein, und aktivieren Sie "Neue Datenbank erstellen".
  5. Klicken Sie auf "Erstellen".
  6. Klicken Sie nach der Erstellung in der Katalogliste auf den Katalog, um die Katalog-Explorer-Ansicht anzuzeigen.

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseCatalog

# Initialize the Workspace client
w = WorkspaceClient()

# Register an existing database as a UC catalog
catalog = w.database.create_database_catalog(
    DatabaseCatalog(
        name="my_catalog",                    # Name of the UC catalog to create
        database_instance_name="my-instance", # Name of the database instance
        database_name="databricks_postgres",  # Name of the existing Postgres database
    )
)
print(f"Created database catalog: {catalog.name}")

# Create a new database and register it as a UC catalog
catalog = w.database.create_database_catalog(
    DatabaseCatalog(
        name="new_catalog",                   # Name of the UC catalog to create
        database_instance_name="my-instance", # Name of the database instance
        database_name="new_database",         # Name of the Postgres database to register (and optionally create)
        create_database_if_not_exists=True    # Create the database if it doesn't exist
    )
)
print(f"Created new database and catalog: {catalog.name}")

Befehlszeilenschnittstelle (CLI)

# Register an existing database as a UC catalog
databricks database create-database-catalog my_catalog my-instance databricks_postgres

# Create a new database and register it as a UC catalog
databricks database create-database-catalog new_catalog my-instance new_database \
  --create-database-if-not-exists

cURL

export PG_DATABASE_NAME="<name of the PG database to sync to UC>"
export CATLAOG_NAME="<name of UC catalog to create>"
// Optional
export CREATE_DATABASE_IF_NOT_EXISTS="<whether to create a new database>"
curl -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs \
--data-binary @- << EOF
{
  "name": "$CATALOG_NAME",
  "database_name": "$PG_DATABASE_NAME",
  "instance_name": "$INSTANCE_NAME",
  "create_database_if_not_exists": "$CREATE_DATABASE_IF_NOT_EXISTS" // optional
}

Einschränkungen

  • Datenbanknamen dürfen nur alphanumerische oder unterstriche Zeichen enthalten. Die Namen der Notizdatenbank können keine Bindestriche enthalten.
  • Der Katalog, der im Unity-Katalog auf Basis der Datenbank erstellt wurde, ist schreibgeschützt.

Erkunden von Postgres-Objekten im Unity-Katalog über einen Datenbankkatalog

Um den Katalog anzuzeigen, stellen Sie sicher, dass ein ausgeführtes serverloses SQL Warehouse angefügt ist.

  1. Klicken Sie auf " Katalog" in der Arbeitsbereich-Randleiste.
  2. Klicken Sie im Katalogbrowser auf den Cluster, und wählen Sie ein ausgeführtes serverloses SQL Warehouse als Rechenressource aus.
  3. Klicken Sie auf "Start", und schließen Sie sie.

Beim Öffnen des Katalogs, schemas und Tabellen sollten Synchronisierungen automatisch ausgelöst werden. Die Benutzeroberfläche kann jedoch Daten zwischenspeichern, um die Anzahl der Postgres-Anforderungen zu verringern, sodass neue Objekte möglicherweise nicht sofort angezeigt werden.

Um eine vollständige Aktualisierung auszulösen, klicken Sie auf .

Löschen eines Datenbankkatalogs im Unity-Katalog

Sie müssen der Besitzer eines Datenbankkatalogs oder eines Metastore-Administrators sein, um ihn zu löschen.

Databricks empfiehlt, zuerst alle synchronisierten Tabellen aus dem Datenbankkatalog zu löschen. Jede Quelltabelle kann nur verwendet werden, um 20 synchronisierte Tabellen zu erstellen, und es kann bis zu drei Tage dauern, bis synchronisierte Tabellen im Unity-Katalog bereinigt werden, nachdem ein Datenbankkatalog gelöscht wurde. Synchronisierte Tabellen, deren Löschung im Unity-Katalog aussteht, werden auf das Limit von 20 synchronisierten Tabellen pro Quelltabelle angerechnet.

Verwenden Sie die Benutzeroberfläche von Azure Databricks, Python SDK, CLI oder API, um einen Datenbankkatalog zu löschen.

Benutzeroberfläche

  1. Klicken Sie auf " Katalog" in der Arbeitsbereich-Randleiste.
  2. Wählen Sie den Datenbankkatalog aus, den Sie aus dem Katalogbereich löschen möchten.
  3. Klicken Sie auf das Kebab-Menüsymbol, und klicken Sie auf "Löschen".

Python SDK

from databricks.sdk import WorkspaceClient

# Initialize the Workspace client
w = WorkspaceClient()

# Delete a database catalog
catalog_name = "my_catalog"
w.database.delete_database_catalog(name=catalog_name)
print(f"Deleted database catalog: {catalog_name}")

Befehlszeilenschnittstelle (CLI)

# Delete a database catalog
databricks database delete-database-catalog my_catalog

cURL

curl -X DELETE --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs/$CATALOG_NAME

Nachdem der Katalog gelöscht wurde, können Sie die Postgres-Datenbank umbenennen oder ablegen.