Freigeben über


Entwickeln eines Auftrags mit Databricks-Ressourcenbündeln

Databricks Asset Bundles, auch bekannt als Bundles, enthalten die Artefakte, die Sie bereitstellen möchten, und die Einstellungen für Azure Databricks-Ressourcen wie Aufträge, die Sie ausführen möchten, und ermöglichen Es Ihnen, sie 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 eines Auftrags erstellen. Siehe Lakeflow Jobs. Das Bündel wird mit der Standardpaketvorlage "Databricks Asset Bundles" für Python erstellt, die aus einem Notizbuch und der Definition eines Auftrags besteht, um es auszuführen. Anschließend validieren Sie den bereitgestellten Auftrag in Ihrem Azure Databricks-Arbeitsbereich und führen ihn aus.

Tipp

Wenn Sie über vorhandene Aufträge verfügen, die mit der Benutzeroberfläche oder API von Lakeflow Jobs erstellt wurden, die Sie in Bundles verschieben möchten, müssen Sie sie in den Konfigurationsdateien eines Bundles definieren. Dazu empfiehlt Databricks, zunächst ein Bundle mithilfe der nachstehenden Schritte zu erstellen und zu überprüfen, ob das Bundle funktioniert. Anschließend können Sie dem Bündel zusätzliche Auftragsdefinitionen, Notebooks und andere Quellen hinzufügen. Siehe Abrufen einer vorhandenen Auftragsdefinition mithilfe der Benutzeroberfläche.

Wenn Sie ein Bundle von Grund auf neu erstellen möchten, lesen Sie den Abschnitt Manuelles Erstellen eines Bundles.

Anforderungen

  • Databricks-CLI-Version 0.218.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 Remote-Databricks-Arbeitsbereich müssen Arbeitsbereichsdateien aktiviert sein. Weitere Informationen finden Sie unter Was sind Arbeitsbereichsdateien?.
  • Ein vorhandener Katalog. Informationen zum Erstellen eines Katalogs finden Sie unter Erstellen von Katalogen.

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: Initialisieren des Bundles

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. Lassen Sie für Template to use den Standardwert von default-python bestehen, indem Sie Enter drücken.

  4. Behalten Sie für Unique name for this project den Standardwert von my_project bei 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 Include a job that runs a notebook für yes aus, und drücken Sie Enter.

  6. Wählen Sie Include an ETL pipeline für no aus, und drücken Sie Enter.

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

  8. Wählen Sie Use serverless für 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. Zu den Dateien von besonderem Interesse gehören:

  • 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: Diese Datei gibt die Einstellungen des Auftrags an, einschließlich einer Standardnotizbuchaufgabe. Informationen zu den Job-Einstellungen finden Sie unter Job.
  • src/: Dieser Ordner enthält die Quelldateien des Auftrags.
  • src/sample_notebook.ipynb: Dieses Notebook liest eine Beispieltabelle.
  • tests/: Dieser Ordner enthält Beispiel-Einheitstests.
  • README.md: Diese Datei enthält zusätzliche Informationen zu den ersten Schritten und zur Verwendung dieser Bündelvorlage.

Tipp

Sie können die Einstellungen für neue Auftragscluster in Bundles definieren, kombinieren und überschreiben, indem Sie die unter Überschreiben mit Zieleinstellungen beschriebenen Techniken verwenden.

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 den Auftrag in Ihrem Azure Databricks-Remotearbeitsbereich bereit, und überprüfen Sie den Auftrag 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
    
  2. Vergewissern Sie sich, dass das Notizbuch bereitgestellt wurde:

    1. Klicken Sie in der Randleiste Ihres Azure Databricks-Arbeitsbereichs auf "Arbeitsbereich".
    2. Klicken Sie in den Ordner Benutzer ><your-username>> .bundle ><project-name>> dev > files > src. Das Notebook sollte sich in diesem Ordner befinden.
  3. Überprüfen Sie, ob der Auftrag erstellt wurde:

    1. Klicken Sie in der Randleiste Ihres Azure Databricks-Arbeitsbereichs auf Aufträge und Pipelines.
    2. Wählen Sie optional die Filter "Jobs " und "Owned by me" aus .
    3. Klicken Sie auf [dev <your-username>] sample_job.
    4. Klicken Sie auf die Registerkarte "Aufgaben ". Es sollte eine notebook_task geben.

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 des bereitgestellten Auftrags

Starten Sie nun eine Ausführung des Auftrags in Ihrer Arbeitsumgebung über die Befehlszeile.

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

    databricks bundle run --target dev sample_job
    
  2. Kopieren Sie den Wert von Run URL, der in Ihrem Terminal angezeigt wird, und fügen Sie ihn in Ihren Webbrowser ein, um Ihren Azure Databricks-Arbeitsbereich zu öffnen. See Anzeigen und Ausführen eines mit Databricks Asset Bundles erstellten Einzelvorgangs

  3. Klicken Sie auf die Auftragsaufgabe in Ihrem Azure Databricks-Arbeitsbereich, nachdem sie erfolgreich abgeschlossen wurde und eine grüne Titelleiste angezeigt wird, um die Ergebnisse zu sehen.

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 Notebook und den Auftrag 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, alle Arbeitsbereichsdateien und Verzeichnisse dauerhaft zu löschen, 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.