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 Bundle wird mit dem Befehl Databricks CLI pipelines initerstellt, der eine ETL-Pipeline und einen Auftrag zum Ausführen definiert. Anschließend überprüfen, bereitstellen und ausführen Sie die bereitgestellte Pipeline in Ihrem Azure Databricks-Arbeitsbereich auf serverloser Berechnung.

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.283.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

Initialisiere ein Bundle mit einer Pipeline:

  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 pipelines init auszuführen:

    databricks pipelines init
    
  3. Lassen Sie den Standardwert von Unique name for this project auf my_pipeline_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.

  4. Geben Sie für Initial catalogden Namen eines vorhandenen Unity-Katalogkatalogs ein.

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

  6. Wählen Sie Initial language for this project für python aus.

Schritt 3: Erkunden des Pakets

Wechseln Sie in das Stammverzeichnis des neu erstellten Bundles, um die von der Vorlage erzeugten Dateien anzuzeigen. Die folgende Struktur wird standardmäßig erstellt:

my_pipeline_project
├── databricks.yml
├── pyproject.toml
├── README.md
├── resources
│   ├── my_pipeline_project_etl.pipeline.yml
│   └── sample_job.job.yml
└── src
    └── my_pipeline_project_etl
        ├── explorations
        │   └── sample_exploration.ipynb
        ├── README.md
        └── transformations
            ├── sample_trips_my_pipeline_project.py
            └── sample_zones_my_pipeline_project.py

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.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.
  • 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 der Pipeline 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 aus dem Wurzelverzeichnis des Bundles einen CLI-Befehl deploy von Databricks:

    databricks bundle deploy --target dev
    

    Oder:

    databricks pipelines 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 pipelines 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 pipelines 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.