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:
Klicken Sie auf der Seitenleiste auf Workflows und dann auf , oder wechseln Sie zu einem vorhandenen Auftrag, und fügen Sie eine neue Aufgabe hinzu.
Wenn dies ein neuer Auftrag ist, ersetzen Sie Namen für Ihren Auftrag hinzufügen... durch Ihren Auftragsnamen.
Geben Sie im Feld Aufgabenname einen Namen für die Aufgabe ein.
Wählen Sie im Dropdownmenü Typ die Option Notebook aus.
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.
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“ nurnotebooks/covid_eda_raw
ein.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
Klicken Sie auf der Seitenleiste auf Workflows und dann auf , oder wechseln Sie zu einem vorhandenen Auftrag, und fügen Sie eine neue Aufgabe hinzu.
Wenn dies ein neuer Auftrag ist, ersetzen Sie Namen für Ihren Auftrag hinzufügen... durch Ihren Auftragsnamen.
Geben Sie im Feld Aufgabenname einen Namen für die Aufgabe ein.
Wählen Sie im Dropdownmenü Typ die Option Python-Skript aus.
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.
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“ nurpython/covid_eda_raw.py
ein.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
Klicken Sie auf der Seitenleiste auf Workflows und dann auf , oder wechseln Sie zu einem vorhandenen Auftrag, und fügen Sie eine neue Aufgabe hinzu.
Wenn dies ein neuer Auftrag ist, ersetzen Sie Namen für Ihren Auftrag hinzufügen... durch Ihren Auftragsnamen.
Geben Sie im Feld Aufgabenname einen Namen für die Aufgabe ein.
Wählen Sie im Dropdownmenü Typ die Option SQL aus.
Wählen Sie im Dropdownmenü SQL-Task die Option Datei aus.
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.
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“ nursql/myquery.sql
ein.Wählen Sie ein SQL-Warehouse aus. Sie müssen ein serverloses SQL-Warehouse oder ein Pro-SQL-Warehouse auswählen.
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
, wenngit_branch
festgelegt istsha
von$tag
, wenngit_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.