Freigeben über


Integrieren des Databricks Unity-Katalogs in OneLake

Hinweis

In diesem Artikel wird ein manueller Ansatz beschrieben, bei dem Verknüpfungen zum Synchronisieren von Unity-Katalogtabellen mit OneLake verwendet werden. Anstelle dieses Ansatzes empfehlen wir die Verwendung des Azure Databricks Unity Catalog Mirrorings, um Databricks-Tabellen mit automatischer Synchronisierung und minimalem Setup in OneLake zu übertragen.

Dieses Szenario zeigt, wie externe Delta-Tabellen aus dem Unity-Katalog mit Hilfe von Shortcuts in OneLake integriert werden können. Nach Abschluss dieses Lernprogramms können Sie Ihre externen Delta-Tabellen im Unity-Katalog automatisch mit einem Microsoft Fabric Lakehouse synchronisieren.

Voraussetzungen

Bevor Sie eine Verbindung herstellen, stellen Sie sicher, dass Sie folgendes haben:

Einrichten Ihrer Cloud Storage-Verbindung

Überprüfen Sie zunächst, welche Speicherorte in Azure Data Lake Storage Gen2 (ADLS Gen2) Ihre Unity-Katalogtabellen verwenden. OneLake-Tastenkombinationen verwenden diese Cloudspeicherverbindung. So erstellen Sie eine Cloudverbindung mit dem richtigen Unity-Katalogspeicherort:

  1. Erstellen Sie eine Cloud-Speicherverbindung, die von Ihren Unity Catalog-Tabellen verwendet wird. Erfahren Sie, wie Sie eine ADLS Gen2-Verbindung einrichten.

  2. Nachdem Sie die Verbindung erstellt haben, rufen Sie die Verbindungs-ID ab, indem Sie Einstellungen>Verbindungen und Gateways verwalten>Verbindungen>Einstellungen auswählen.

Screenshot der ADLS Gen2-Verbindungs-ID.

Hinweis

Die Gewährung von direktem Speicherzugriff auf externe Speicherorte in ADLS Gen2 berücksichtigt keine von Unity Catalog gewährten Berechtigungen oder durchgeführten Audits. Der direkte Zugriff umgeht Überwachung, Herkunft und andere Sicherheits- und Überwachungsfunktionen von Unity Catalog, einschließlich Zugriffskontrolle und Berechtigungen. Sie sind für die Verwaltung des direkten Speicherzugriffs über ADLS Gen2 verantwortlich und stellen sicher, dass die Benutzer die entsprechenden Berechtigungen über Fabric erhalten. Vermeiden Sie alle Szenarien, die direkten Schreibzugriff auf Speicherebene für Buckets gewähren, die von Databricks verwaltete Tabellen speichern. Das Ändern, Löschen oder Entwickeln von Objekten direkt über den Speicher, die ursprünglich von Unity Catalog verwaltet wurden, kann zu einer Datenbeschädigung führen.

Ausführen des Notebooks

Nachdem Sie die Cloud-Verbindungs-ID abgerufen haben, fügen Sie Ihrem Fabric Lakehouse Unity Catalog-Tabellen hinzu:

Screenshot zeigt den Flow von Unity Catalog zu Fabric Shortcuts.

  1. Importieren Sie Synchronisierungs-Notebook in Ihren Fabric-Arbeitsbereich. Dieses Notizbuch exportiert alle Metadaten von Unity-Katalogtabellen aus einem bestimmten Katalog und Schemata in Ihrem Metastore.

  2. Konfigurieren Sie die Parameter in der ersten Zelle des Notebooks, um Unity Catalog-Tabellen zu integrieren. Für den Export von Unity-Catalog-Tabellen wird die Databricks-API verwendet, die durch PAT-Token authentifiziert wird. Der folgende Codeschnipsel wird verwendet, um die Quellparameter (Unity Catalog) und Zielparameter (OneLake) zu konfigurieren. Diese müssen durch Ihre eigenen Werte ersetzt werden.

    # Databricks workspace
    dbx_workspace = "<databricks_workspace_url>"
    dbx_token = "<pat_token>"
    # Unity Catalog
    dbx_uc_catalog = "catalog1"
    dbx_uc_schemas = '["schema1", "schema2"]'
    
    # Fabric
    fab_workspace_id = "<workspace_id>"
    fab_lakehouse_id = "<lakehouse_id>"
    fab_shortcut_connection_id = "<connection_id>"
    # If True, UC table renames and deletes will be considered
    fab_consider_dbx_uc_table_changes = True
    
  3. Führen Sie alle Zellen des Notebooks aus, um mit der Synchronisierung von Unity Catalog Delta-Tabellen mit OneLake mithilfe von Tastenkombinationen zu beginnen. Nach Abschluss des Notizbuchs stehen Verknüpfungen zu Unity Catalog Delta-Tabellen im Lakehouse, im SQL-Analytics-Endpunkt und im semantischen Modell zur Verfügung.

Planen des Notebooks

Wenn Sie das Notizbuch in regelmäßigen Abständen ausführen möchten, um Unity Catalog Delta-Tabellen ohne manuelle erneute Synchronisierung in OneLake zu integrieren, können Sie entweder das Notizbuch planen oder eine Notizbuchaktivität in einer Pipeline in Fabric Data Factory verwenden.

Wenn Sie im letzten Szenario Parameter aus der Pipeline übergeben möchten, legen Sie die erste Zelle des Notizbuchs als Umschaltparameterzelle fest, und geben Sie die entsprechenden Parameter in der Pipeline an.

Screenshot mit Notebook-Aktivitätsparametern.

Andere Aspekte

  • Verwenden Sie für Produktionsszenarien Databricks OAuth für die Authentifizierung und Azure Key Vault, um geheime Schlüssel zu verwalten. Sie können z. B. die Dienstprogramme "MSSparkUtils" Anmeldeinformationen verwenden, um auf Key Vault-Geheimnisse zuzugreifen.
  • Das Notebook funktioniert mit externen Delta-Tabellen im Unity-Katalog. Wenn Sie mehrere Cloudspeicherorte für Ihre Unity-Katalogtabellen verwenden, z. B. mehrere ADLS Gen2, führen Sie das Notizbuch für jede Cloudverbindung separat aus.
  • Unity-Katalog-verwaltete Delta-Tabellen, Ansichten, materialisierte Ansichten, Streaming-Tabellen und Nicht-Delta-Tabellen werden nicht unterstützt.
  • Änderungen an Unity Catalog-Tabellenschemas, wie das Hinzufügen oder Löschen von Spalten, führen automatisch zu einer Aktualisierung der Shortcuts. Einige Updates, z. B. die Umbenennung und Löschung der Unity-Katalogtabelle, erfordern jedoch eine erneute Synchronisierung oder erneutes Ausführen eines Notizbuchs. Dieses Verhalten wird durch den fab_consider_dbx_uc_table_changes Parameter gesteuert.
  • Bei Schreibszenarien kann die Verwendung derselben Speicherebene für verschiedene Recheneinheiten zu unbeabsichtigten Folgen führen. Verstehen Sie die Auswirkungen bei der Verwendung verschiedener Apache Spark Compute Engines und Laufzeitversionen.