Freigeben über


Deklarative Lakeflow-Spark-Pipelines mit Databricks-Asset-Bundles entwickeln

Databricks Asset Bundles, auch bekannt als Bundles, ermöglichen Es Ihnen, Azure Databricks-Ressourcen wie Lakeflow Spark Declarative Pipelines programmgesteuert zu überprüfen, bereitzustellen und auszuführen. Weitere Informationen finden Sie unter Was sind Databricks-Ressourcenbundles?

Auf dieser Seite wird beschrieben, wie Sie ein Bündel zum programmgesteuerten Verwalten einer Pipeline erstellen. Siehe Lakeflow Spark Declarative Pipelines. Das Bündel wird mit der Standardpaketvorlage "Databricks Asset Bundles" für Python erstellt, die eine ETL-Pipeline und einen Auftrag zum Ausführen definiert. Sie überprüfen dann die Pipeline, stellen sie bereit und führen die bereitgestellte Pipeline in Ihrem Azure Databricks-Arbeitsbereich aus.

Tipp

Wenn Sie über vorhandene Pipelines verfügen, die mit der Azure Databricks-Benutzeroberfläche oder -API erstellt wurden, die Sie in Bundles verschieben möchten, müssen Sie sie in den Konfigurationsdateien eines Bundles definieren. Databricks empfiehlt, zuerst ein Bündel mithilfe der folgenden Schritte zu erstellen, und fügen Sie dann dem Bundle Konfiguration und andere Quellen hinzu. Siehe Abrufen einer vorhandenen Pipelinedefinition mithilfe der Benutzeroberfläche.

Anforderungen

  • Databricks CLI Version 0.276.0 oder höher. Führen Sie den Befehl databricks -v aus, um zu überprüfen, welche Version der Databricks-CLI installiert ist. Informationen zum Installieren der Databricks CLI finden Sie unter Installieren oder Aktualisieren der Databricks CLI.
  • uv ist erforderlich, um Tests auszuführen und Abhängigkeiten für dieses Projekt aus einer IDE zu installieren.
  • Für den Remotearbeitsbereich müssen Arbeitsbereichsdateien aktiviert sein. Weitere Informationen finden Sie unter Was sind Arbeitsbereichsdateien?.
  • Ein bestehender Katalog für Tabellen in der Pipeline. Siehe Erstellen von Katalogen.

(Optional) Installieren eines Python-Moduls zur Unterstützung der lokalen Pipelineentwicklung

Databricks bietet ein Python-Modul, das Die lokale Entwicklung von Lakeflow Spark Declarative Pipelines-Code unterstützt, indem Syntaxüberprüfung, AutoVervollständigen und Datentypüberprüfung beim Schreiben von Code in Ihrer IDE bereitgestellt werden.

Das Python-Modul für die lokale Entwicklung ist auf PyPi verfügbar. Informationen zum Installieren des Moduls finden Sie unter Python-Stub für DLT.

Schritt 1: Einrichten der Authentifizierung

Richten Sie zunächst die Authentifizierung zwischen der Databricks CLI auf Ihrem Entwicklungscomputer und Ihrem Azure Databricks-Arbeitsbereich ein. Bei dieser Seite wird davon ausgegangen, dass Sie die OAuth-Authentifizierung User-to-Machine (U2M) und ein entsprechendes Azure Databricks-Konfigurationsprofil namens DEFAULT für die Authentifizierung verwenden möchten.

Hinweis

Die U2M-Authentifizierung eignet sich für das Testen dieser Schritte in Echtzeit. Bei vollständig automatisierten Workflows empfiehlt Databricks stattdessen die Verwendung der OAuth-M2M-Authentifizierung (Machine-to-Machine, Computer-zu-Computer). Lesen Sie die Anweisungen zum Einrichten der M2M-Authentifizierung unter Autorisieren des Dienstprinzipalzugriffs auf Azure Databricks mit OAuth.

  1. Verwenden Sie die Databricks CLI, um die OAuth-Tokenverwaltung lokal zu initiieren, indem Sie den folgenden Befehl für jeden Zielarbeitsbereich ausführen.

    Ersetzen Sie <workspace-url> im folgenden Befehl durch Ihre arbeitsbereichsspezifische Azure Databricks-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Die Databricks-CLI fordert Sie auf, die von Ihnen eingegebenen Informationen als Azure Databricks-Konfigurationsprofil zu speichern. Drücken Sie die EINGABETASTE (Enter), um den vorgeschlagenen Profilnamen zu übernehmen, oder geben Sie den Namen eines neuen oder bereits vorhandenen Profils ein. Ist bereits ein Profil mit dem gleichen Namen vorhanden, wird es mit den von Ihnen eingegebenen Informationen überschrieben. Sie können Profile verwenden, um Ihren Authentifizierungskontext schnell über mehrere Arbeitsbereiche hinweg zu wechseln.

    Um eine Liste vorhandener Profile abzurufen, führen Sie in der Databricks-CLI den Befehl databricks auth profiles in einem separaten Terminal oder in einer separaten Eingabeaufforderung aus. Um die vorhandenen Einstellungen eines bestimmten Profils anzuzeigen, führen Sie den Befehl databricks auth env --profile <profile-name>aus.

  3. Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.

  4. Um den aktuellen OAuth-Tokenwert eines Profils und den bevorstehenden Ablaufzeitstempel eines Profils anzuzeigen, führen Sie einen der folgenden Befehle aus:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Wenn Sie über mehrere Profile mit demselben --host-Wert verfügen, müssen Sie möglicherweise die Optionen --host und -p zusammen angeben, damit die Databricks CLI die richtigen übereinstimmenden Informationen des OAuth-Tokens ermitteln kann.

Schritt 2: Erstellen des Pakets

Initialisieren Sie ein Bundle mit der standardmäßigen Python-Bundle-Projektvorlage.

  1. Verwenden Sie Ihr Terminal oder die Eingabeaufforderung, um zu einem Verzeichnis auf Ihrem lokalen Entwicklungscomputer zu wechseln, das das generierte Bundle der Vorlage enthält.

  2. Verwenden Sie die Databricks CLI, um den Befehl bundle init auszuführen:

    databricks bundle init
    
  3. Behalten Sie für Template to use den Standardwert „default-python“ bei, indem Sie „Enter“ drücken.

  4. Lassen Sie den Standardwert von Unique name for this project auf my_project eingestellt oder geben Sie einen anderen Wert ein und drücken Sie dann Enter. Dadurch wird der Name des Stammverzeichnisses für dieses Bündel bestimmt. Dieses Stammverzeichnis wird in Ihrem aktuellen Arbeitsverzeichnis erstellt.

  5. Wählen Sie für Include a job that runs a notebook, no aus, und drücken Sie Enter. (Das Beispielnotizbuch, das dieser Option zugeordnet ist, enthält keinen Pipelinecode darin.)

  6. Behalten Sie für Include an ETL pipeline den Standardwert „yes“ bei, indem Sie „Enter“ drücken. Dadurch werden Beispielpipelinecode und eine Pipelinedefinition hinzugefügt.

  7. Wählen Sie für Include a stub (sample) Python package, no aus, und drücken Sie Enter.

  8. Wählen Sie für Use serverless, yes aus, und drücken Sie Enter. Dadurch wird die Databricks CLI angewiesen, Ihr Bundle so zu konfigurieren, dass es auf serverlosem Compute ausgeführt wird.

  9. Geben Sie für Default catalog for any tables created by this project [hive_metastore]den Namen eines vorhandenen Unity-Katalogkatalogs ein.

  10. Wählen Sie Use a personal schema for each user working on this project. für yes aus.

Schritt 3: Erkunden des Pakets

Wechseln Sie in das Stammverzeichnis des neu erstellten Bundles, um die von der Vorlage erzeugten Dateien anzuzeigen. Von besonderem Interesse sind die folgenden Dateien:

  • databricks.yml: Diese Datei gibt den programmgesteuerten Namen des Bundles an, enthält Verweise auf die Dateien des Bündels, definiert Katalog- und Schemavariablen und gibt Einstellungen für Zielarbeitsbereiche an.
  • resources/sample_job.yml und resources/<project-name>_etl_pipeline.yml: Diese Dateien definieren den Auftrag, der eine Pipelineaktualisierungsaufgabe enthält, und die Einstellungen der Pipeline. Informationen zu Pipelineeinstellungen finden Sie unter Pipeline.
  • src/: Dieser Ordner enthält die Quelldateien der Beispielpipeline, Erkundungen und Transformationen.
  • tests/ und fixtures/: Diese Ordner enthalten Probeneinheitstests für die Pipeline und Vorrichtungen für Datensätze.
  • README.md: Diese Datei enthält zusätzliche Informationen zu den ersten Schritten und zur Verwendung dieser Bündelvorlage.

Schritt 4: Überprüfen der Bundlekonfiguration

Überprüfen Sie nun, ob die Bundlekonfiguration gültig ist.

  1. Verwenden Sie im Stammverzeichnis die Databricks CLI, um den bundle validate Befehl auszuführen:

    databricks bundle validate
    
  2. Wenn eine Zusammenfassung der Bundlekonfiguration zurückgegeben wird, war die Prüfung erfolgreich. Wenn Fehler zurückgegeben werden, müssen Sie sie beheben und dann diesen Schritt wiederholen.

Schritt 5: Bereitstellen des Bundles im Remotearbeitsbereich

Stellen Sie als Nächstes das Bundle in Ihrem Azure Databricks-Remotearbeitsbereich bereit, und überprüfen Sie die Pipeline in Ihrem Arbeitsbereich.

  1. Verwenden Sie im Stammverzeichnis des Bundles die Databricks CLI, um den bundle deploy-Befehl auszuführen:

    databricks bundle deploy --target dev
    

    Hinweis

    Die Standardvorlage enthält einen Auftrag, der die Pipeline täglich ausführt, aber dieser wird für den Zielbereitstellungsmodus dev angehalten. Weitere Informationen finden Sie unter Bereitstellungsmodi für Databricks-Ressourcenbundle.

  2. Vergewissern Sie sich, dass das Bundle bereitgestellt wurde:

    1. Klicken Sie in der Randleiste Ihres Azure Databricks-Arbeitsbereichs auf "Arbeitsbereich".
    2. Klicken Sie in den Ordner "Benutzer ><your-username>>.bundle ", und suchen Sie ihr Bundleprojekt.
  3. Prüfen Sie, ob Ihre Pipeline erstellt wurde:

    1. Klicken Sie in der Randleiste Ihres Azure Databricks-Arbeitsbereichs auf Aufträge und Pipelines.
    2. Wählen Sie optional die Filter "Pipelines " und "Owned by me" aus .
    3. Klicken Sie auf [dev <your-username>] <project-name>_etl.

Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie die Schritte 4 bis 5 wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist, und dann das Projekt erneut bereitstellen.

Schritt 6: Ausführen der bereitgestellten Pipeline

Lösen Sie nun eine Ausführung der Pipeline in Ihrem Arbeitsbereich über die Befehlszeile aus.

  1. Verwenden Sie im Stammverzeichnis die Databricks CLI, um den bundle run Befehl auszuführen, und ersetzen <project-name> Sie dabei durch den Namen Ihres Projekts:

    databricks bundle run --target dev <project-name>_etl
    
  2. Kopieren Sie den Wert von Update URL, der in Ihrem Terminal angezeigt wird, und fügen Sie ihn in Ihren Webbrowser ein, um Ihren Azure Databricks-Arbeitsbereich zu öffnen.

  3. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich, nachdem die Pipeline erfolgreich ausgeführt wurde, auf die materialisierten Ansichten, um die Details jeder Ansicht anzuzeigen.

Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie die Schritte 4 bis 6 wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist, das Projekt erneut bereitstellen und dieses Projekt ausführen.

Schritt 7: Ausführen von Tests

Verwenden Sie pytest schließlich, um Tests lokal auszuführen:

uv run pytest

Schritt 8: Bereinigen

In diesem Schritt löschen Sie das bereitgestellte Bundle und die Pipeline aus Ihrem Arbeitsbereich.

  1. Verwenden Sie im Stammverzeichnis die Databricks CLI, um den bundle destroy Befehl auszuführen:

    databricks bundle destroy --target dev
    
  2. Wenn Sie aufgefordert werden, Ressourcen, die Pipeline sowie von der Pipeline verwaltete Tabellen und Ansichten dauerhaft zu zerstören, geben Sie y ein und drücken Sie Enter.

  3. Wenn Sie das Bundle auch von Ihrem Entwicklungscomputer löschen möchten, können Sie jetzt das lokale Projektverzeichnis löschen.