Freigeben über


Verwenden von versionskontrolliertem Quellcode in einem Azure Databricks-Auftrag

Sie können Aufträge mithilfe von Notebooks oder Python-Code ausführen, die sich in einem Git-Remoterepository oder einem Databricks-Git-Ordner befinden. Dieses Feature vereinfacht die Erstellung und Verwaltung von Produktionsaufträgen, und es automatisiert Continuous Deployment (kontinuierliche Bereitstellung):

  • Sie müssen kein separates Produktionsrepository in Azure Databricks erstellen, dessen Berechtigungen verwalten und es auf dem neuesten Stand halten.
  • Sie können unbeabsichtigte Änderungen an einem Produktionsauftrag verhindern, z. B. lokale Änderungen im Produktionsrepository oder Änderungen durch den Wechsel eines Branches.
  • Der Auftragsdefinitionsprozess verfügt über eine einzelne Wahrheitsinstanz (SSOT, Single Source of Truth) im Remoterepository, und jede Auftragsausführung ist mit einem Commithash verknüpft.

Wenn Sie Quellcode in einem Git-Remoterepository verwenden möchten, müssen Sie Databricks-Git-Ordner (Repos) einrichten.

Wichtig

Notizbücher, die von Azure Databricks-Aufträgen erstellt werden, die aus Remote-Git-Repositorys ausgeführt werden, sind kurzlebig und können nicht darauf vertrauen, MLflow-Ausführungen, Experimente oder Modelle nachzuverfolgen. Verwenden Sie beim Erstellen eines Notizbuchs aus einem Auftrag ein MLflow-Experiment des Arbeitsbereichs (anstelle eines Notizbuch-MLflow-Experiments), und rufen Sie mlflow.set_experiment("/path/to/experiment") im Arbeitsbereichsnotizbuch auf, bevor Sie MLflow-Tracking-Code ausführen. Weitere Informationen finden Sie unter Verhindern von Datenverlust in MLflow-Experimenten.

Hinweis

Wenn Ihr Auftrag unter Verwendung eines Dienstprinzipals als Identität ausgeführt wird, können Sie den Dienstprinzipal in dem Git-Ordner konfigurieren, der den Quellcode des Auftrags enthält. Weitere Informationen finden Sie unter Verwenden eines Dienstprinzipals mit Databricks-Git-Ordnern.

Verwenden eines Notebooks aus einem Git-Remoterepository

So erstellen Sie eine Aufgabe mit einem Notebook, das sich in einem Git-Remoterepository befindet:

  1. Klicken Sie auf der Seitenleiste auf Symbol für Workflows Workflows und dann auf Schaltfläche „Auftrag erstellen“, oder wechseln Sie zu einem vorhandenen Auftrag, und fügen Sie eine neue Aufgabe hinzu.

  2. Wenn dies ein neuer Auftrag ist, ersetzen Sie Namen für Ihren Auftrag hinzufügen... durch Ihren Auftragsnamen.

  3. Geben Sie im Feld Aufgabenname einen Namen für die Aufgabe ein.

  4. Wählen Sie im Dropdownmenü Typ die Option Notebook aus.

  5. Wählen Sie im Dropdownmenü Quelle die Option Git-Anbieter aus, und klicken Sie auf Bearbeiten oder Git-Verweis hinzufügen. Das Dialogfeld Git-Informationen wird angezeigt.

  6. Geben Sie im Dialogfeld Git-Informationen Details für das Repository ein – einschließlich der Repository-URL, des Git-Anbieters und des Git-Verweises. Dieser Git-Verweis kann ein Branch, ein Tag oder ein Commit sein.

    Geben Sie für Pfad einen relativen Pfad zum Speicherort des Notebooks ein, z. B. etl/notebooks/.

    Wenn Sie den relativen Pfad eingeben, beginnen Sie ihn nicht mit / oder ./, und beziehen Sie die Dateierweiterung des Notebooks, z. B. .py, nicht mit ein. Ist der absolute Pfad für das Notebook, auf das Sie zugreifen möchten, beispielsweise /notebooks/covid_eda_raw.py, geben Sie im Feld „Pfad“ nur notebooks/covid_eda_raw ein.

  7. Klicken Sie auf Erstellen.

Wichtig

Wenn Sie mit einem Python-Notebook direkt aus einem Git-Quellrepository arbeiten, muss die erste Zeile der Notebookquelldatei # Databricks notebook source sein. Für ein Scala-Notebook muss die erste Zeile der Quelldatei // Databricks notebook source sein.

Verwenden von Python-Code aus einem Git-Remoterepository

So erstellen Sie eine Aufgabe mit Python-Code, der sich in einem Git-Remoterepository befindet

  1. Klicken Sie auf der Seitenleiste auf Symbol für Workflows Workflows und dann auf Schaltfläche „Auftrag erstellen“, oder wechseln Sie zu einem vorhandenen Auftrag, und fügen Sie eine neue Aufgabe hinzu.

  2. Wenn dies ein neuer Auftrag ist, ersetzen Sie Namen für Ihren Auftrag hinzufügen... durch Ihren Auftragsnamen.

  3. Geben Sie im Feld Aufgabenname einen Namen für die Aufgabe ein.

  4. Wählen Sie im Dropdownmenü Typ die Option Python-Skript aus.

  5. Wählen Sie im Dropdownmenü Quelle die Option Git-Anbieter aus, und klicken Sie auf Bearbeiten oder Git-Verweis hinzufügen. Das Dialogfeld Git-Informationen wird angezeigt.

  6. Geben Sie im Dialogfeld Git-Informationen Details für das Repository ein – einschließlich der Repository-URL, des Git-Anbieters und des Git-Verweises. Dieser Git-Verweis kann ein Branch, ein Tag oder ein Commit sein.

    Geben Sie für Pfad einen relativen Pfad zum Quellspeicherort ein, z. B. etl/python/python_etl.py.

    Wenn Sie den relativen Pfad eingeben, beginnen Sie nicht mit / oder ./. Ist der absolute Pfad für den Python-Code, auf den Sie zugreifen möchten, beispielsweise /python/covid_eda_raw.py, geben Sie im Feld „Pfad“ nur python/covid_eda_raw.py ein.

  7. Klicken Sie auf Erstellen.

Wenn Sie den Ausführungsverlauf einer Aufgabe anzeigen, die in einem Git-Remoterepository gespeicherten Python-Code ausführt, enthält der Bereich Taskausführungsdetails Git-Details – einschließlich der Commit-SHA, die der Ausführung zugeordnet ist.

Verwenden von SQL-Abfragen aus einem Git-Remoterepository.

Hinweis

In einer Datei wird nur eine SQL-Anweisung unterstützt. Mehrere durch Semikolon (;) getrennte SQL-Anweisungen sind nicht zulässig.

So führen Sie Abfragen aus, die in Dateien vom Typ .sql gespeichert sind, die sich in einem Git-Remoterepository befinden

  1. Klicken Sie auf der Seitenleiste auf Symbol für Workflows Workflows und dann auf Schaltfläche „Auftrag erstellen“, oder wechseln Sie zu einem vorhandenen Auftrag, und fügen Sie eine neue Aufgabe hinzu.

  2. Wenn dies ein neuer Auftrag ist, ersetzen Sie Namen für Ihren Auftrag hinzufügen... durch Ihren Auftragsnamen.

  3. Geben Sie im Feld Aufgabenname einen Namen für die Aufgabe ein.

  4. Wählen Sie im Dropdownmenü Typ die Option SQL aus.

  5. Wählen Sie im Dropdownmenü SQL-Task die Option Datei aus.

  6. Wählen Sie im Dropdownmenü Quelle die Option Git-Anbieter aus, und klicken Sie auf Bearbeiten oder Git-Verweis hinzufügen. Das Dialogfeld Git-Informationen wird angezeigt.

  7. Geben Sie im Dialogfeld Git-Informationen Details für das Repository ein – einschließlich der Repository-URL, des Git-Anbieters und des Git-Verweises. Dieser Git-Verweis kann ein Branch, ein Tag oder ein Commit sein.

    Geben Sie für Pfad einen relativen Pfad zum Quellspeicherort ein, z. B. queries/sql/myquery.sql.

    Wenn Sie den relativen Pfad eingeben, beginnen Sie nicht mit / oder ./. Ist der absolute Pfad für die SQL-Abfrage, auf die Sie zugreifen möchten, beispielsweise /sql/myqeury.sql, geben Sie im Feld „Pfad“ nur sql/myquery.sql ein.

  8. Wählen Sie ein SQL-Warehouse aus. Sie müssen ein serverloses SQL-Warehouse oder ein Pro-SQL-Warehouse auswählen.

  9. Klicken Sie auf Erstellen.

Hinzufügen zusätzlicher Aufgaben aus einem Git-Remoterepository

Zusätzliche Aufgaben innerhalb eines Multitaskauftrags können auf eine der folgenden Arten auf denselben Commit im Remoterepository verweisen:

  • sha von $branch/head, wenn git_branch festgelegt ist
  • sha von $tag, wenn git_tag festgelegt ist
  • der Wert von git_commit

Sie können Notebook- und Python-Aufgaben in einem Azure Databricks-Auftrag kombinieren, sie müssen jedoch den gleichen Git-Verweis verwenden.

Verwenden eines Databricks-Git-Ordners

Wenn Sie die Azure Databricks-Benutzeroberfläche für die Versionskontrolle des Quellcodes verwenden möchten, klonen Sie Ihr Repository in einen Databricks-Git-Ordner. Weitere Informationen finden Sie unter Option 2: Einrichten eines Git-Produktionsordners und der Git-Automatisierung.

Zum Hinzufügen eines Notebooks oder von Python-Code aus einem Git-Ordner in einer Auftragsaufgabe wählen Sie im Dropdownmenü Quelle die Option Arbeitsbereich aus, und geben Sie unter Pfad den Pfad zum Notebook oder Python-Code ein.

Zugreifen auf Notebooks aus einer IDE

Wenn Sie aus einer integrierten Entwicklungsumgebung auf Notebooks zugreifen müssen, stellen Sie sicher, dass am Anfang der Quellcodedatei für das jeweilige Notebook der Kommentar # Databricks notebook source steht. Zur Unterscheidung zwischen einer gewöhnlichen Python-Datei und einem im Quellcodeformat exportieren Azure Databricks-Notebook in der Sprache Python fügt Databricks oben in der Notebook-Quellcodedatei die Zeile # Databricks notebook source hinzu. Das Notebook wird beim Importieren von Azure Databricks erkannt und als Notebook importiert, nicht als Python-Modul.

Problembehandlung

Hinweis

Git-basierte Aufträge unterstützen keinen Schreibzugriff auf Arbeitsbereichsdateien. Verwenden Sie den Treiberspeicher, um Daten an einen temporären Speicherort zu schreiben. Verwenden Sie ein UC-Volume oder DBFS, um persistente Daten aus einem Git-Auftrag zu schreiben.

Fehlermeldung:

Run result unavailable: job failed with error message Notebook not found: path-to-your-notebook

Mögliche Ursachen:

In Ihrem Notebook fehlt der Kommentar # Databricks notebook source am Anfang der Notebook-Quellcodedatei, oder im Kommentar beginnt notebook mit einem Großbuchstaben, obwohl es mit einem kleinen n beginnen muss.