Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie mit Entwicklertools beginnen, um die Erstellung und Verwaltung von Aufträgen zu automatisieren. Es führt Sie mit der Databricks CLI, den Databricks-SDKs und der REST-API ein.
Hinweis
Dieser Artikel enthält Beispiele zum Erstellen und Verwalten von Aufträgen mithilfe der Databricks CLI, des Databricks Python SDK und der REST-API als einfache Einführung in diese Tools. Um Aufträge programmgesteuert als Teil von CI/CD zu verwalten, verwenden Sie Databricks Asset Bundles oder den Databricks Terraform-Anbieter.
Tools vergleichen
In der folgenden Tabelle werden die Databricks CLI, die Databricks-SDKs und die REST-API zum programmgesteuerten Erstellen und Verwalten von Aufträgen verglichen. Weitere Informationen zu allen verfügbaren Entwicklertools finden Sie unter Local development tools.
| Werkzeug | Beschreibung |
|---|---|
| Databricks-Befehlszeilenschnittstelle | Greifen Sie auf Databricks-Funktionen mithilfe der Befehlszeilenschnittstelle (Databricks Command-Line Interface, CLI) zu, die die REST-API umschließt. Verwenden sie die CLI für einmalige Aufgaben wie Experimente, Shellskripting und direktes Aufrufen der REST-API |
| Databricks-SDKs | Entwickeln Sie Anwendungen und erstellen Sie benutzerdefinierte Databricks-Workflows mit einem Databricks SDK, das für Python, Java, Go oder R verfügbar ist. Anstatt REST-API-Aufrufe direkt mit Curl oder Postman zu senden, können Sie ein SDK für die Interaktion mit Databricks verwenden. |
| Databricks-REST-API | Wenn keine der oben genannten Optionen für Ihren spezifischen Anwendungsfall funktioniert, können Sie die Databricks-REST-API direkt verwenden. Verwenden Sie die REST-API direkt für Anwendungsfälle wie das Automatisieren von Prozessen, bei denen ein SDK in Ihrer bevorzugten Programmiersprache derzeit nicht verfügbar ist. |
Erste Schritte mit der Databricks CLI
Informationen zum Installieren und Konfigurieren der Authentifizierung für die Databricks CLI finden Sie unter Installieren oder Aktualisieren der Databricks CLI- und Authentifizierung für die Databricks CLI-.
Die Databricks CLI verfügt über Befehlsgruppen für Databricks-Features, einschließlich einer für Aufträge, die einen Satz verwandter Befehle enthalten, die auch Unterbefehle enthalten können. Mit der Befehlsgruppe jobs können Sie Ihre Aufträge und Auftragsläufe mit Aktionen wie create, delete und getverwalten. Da die CLI die Databricks-REST-API umschließt, werden die meisten CLI-Befehle einer REST-API-Anforderung zugeordnet.
databricks jobs get wird beispielsweise GET/api/2.2/jobs/get zugeordnet.
Verwenden Sie zum Ausgeben detaillierterer Verwendungs- und Syntaxinformationen für die Befehlsgruppe "Aufträge", einen einzelnen Befehl oder einen Unterbefehl das h Flag:
databricks jobs -hdatabricks jobs <command-name> -hdatabricks jobs <command-name> <subcommand-name> -h
Beispiel: Abrufen eines Auftrags mithilfe der CLI
Um Informationen zu einem einzelnen Auftrag in einem Arbeitsbereich zu drucken, führen Sie den folgenden Befehl aus:
$ databricks jobs get <job-id>
databricks jobs get 478701692316314
Dieser Befehl gibt JSON zurück:
{
"created_time": 1730983530082,
"creator_user_name": "someone@example.com",
"job_id": 478701692316314,
"run_as_user_name": "someone@example.com",
"settings": {
"email_notifications": {
"no_alert_for_skipped_runs": false
},
"format": "MULTI_TASK",
"max_concurrent_runs": 1,
"name": "job_name",
"tasks": [
{
"email_notifications": {},
"notebook_task": {
"notebook_path": "/Workspace/Users/someone@example.com/directory",
"source": "WORKSPACE"
},
"run_if": "ALL_SUCCESS",
"task_key": "success",
"timeout_seconds": 0,
"webhook_notifications": {}
},
{
"depends_on": [
{
"task_key": "success"
}
],
"disable_auto_optimization": true,
"email_notifications": {},
"max_retries": 3,
"min_retry_interval_millis": 300000,
"notebook_task": {
"notebook_path": "/Workspace/Users/someone@example.com/directory",
"source": "WORKSPACE"
},
"retry_on_timeout": false,
"run_if": "ALL_SUCCESS",
"task_key": "fail",
"timeout_seconds": 0,
"webhook_notifications": {}
}
],
"timeout_seconds": 0,
"webhook_notifications": {}
}
}
Beispiel: Erstellen eines Auftrags mithilfe der CLI
Im folgenden Beispiel wird die Databricks CLI verwendet, um einen Auftrag zu erstellen. Dieser Auftrag enthält eine einzelne Auftragsaufgabe, die das angegebene Notebook ausführt. Dieses Notizbuch hat eine Abhängigkeit von einer bestimmten Version des wheel PyPI-Pakets. Zum Ausführen dieser Aufgabe erstellt der Auftrag vorübergehend einen Cluster, der eine Umgebungsvariable namens PYSPARK_PYTHONexportiert. Nachdem der Auftrag ausgeführt wurde, wird der Cluster beendet.
Kopieren Sie den folgenden JSON-Code, und fügen Sie ihn in eine Datei ein. Sie können auf das JSON-Format eines vorhandenen Auftrags zugreifen, indem Sie die Option JSON- anzeigen aus der Auftragsseiten-UI auswählen.
{ "name": "My hello notebook job", "tasks": [ { "task_key": "my_hello_notebook_task", "notebook_task": { "notebook_path": "/Workspace/Users/someone@example.com/hello", "source": "WORKSPACE" } } ] }Führen Sie den folgenden Befehl aus, und ersetzen Sie
<file-path>durch den Pfad und den Namen der soeben erstellten Datei.databricks jobs create --json @<file-path>
Ausführen eines Auftrags mithilfe der CLI
Es gibt drei Möglichkeiten zum Ausführen des Yoaur-Auftrags bei Verwendung der Befehlszeile.
Geplant. Wenn die Auftragsdefinition (in JSON) einen Zeitplan enthält, z. B. das folgende Beispiel, wird der Auftrag automatisch im Zeitplan ausgeführt.
"schedule": { "quartz_cron_expression": "46 0 9 * * ?", "timezone_id": "America/Los_Angeles", "pause_status": "UNPAUSED" }, "max_concurrent_runs": 1,Trigger mit
run-now. Derdatabricks jobs run-nowCLI-Befehl löst eine Ausführung für einen Auftrag aus, den Sie bereits erstellt haben.Trigger mit
submit. Derdatabricks jobs submitCLI-Befehl übernimmt eine Auftragsdefinition und löst eine Ausführung für den Auftrag aus.Mit
submitwird der Auftrag nicht gespeichert und ist in der Benutzeroberfläche nicht sichtbar. Es läuft einmal und wenn es abgeschlossen ist, existiert es nicht mehr als Job.Da sie nicht gespeichert werden, können übermittelte Aufträge im Falle eines Fehlers nicht automatisch für die serverlose Berechnung optimiert werden. Wenn Ihr Auftrag fehlschlägt, sollten Sie die klassische Berechnung verwenden, um die Berechnungsanforderungen für den Auftrag anzugeben. Oder nutzen Sie
jobs createundjobs run-now, um den Auftrag zu erstellen und auszuführen.
Erste Schritte mit dem Databricks SDK
Databricks bietet SDKs, mit denen Sie Vorgänge mit gängigen Programmiersprachen wie Python, Java und Go automatisieren können. In diesem Abschnitt erfahren Sie, wie Sie mit dem Python SDK beginnen, um Aufträge auf Databricks zu erstellen und zu verwalten.
Sie können das Databricks SDK aus Ihrem Databricks-Notizbuch oder von Ihrem lokalen Entwicklungscomputer verwenden. Stellen Sie sicher, dass Sie auf Ihrem lokalen Entwicklungscomputer zunächst die Anleitung „Erste Schritte mit dem Databricks SDK für Python“abgeschlossen haben.
Hinweis
Wenn Sie aus einem Databricks-Notizbuch entwickeln und einen Cluster verwenden, der Databricks Runtime 12.2 LTS und unten verwendet, müssen Sie zuerst das Databricks SDK für Python installieren. Siehe Installieren oder Aktualisieren des Databricks SDK für Python.
Beispiel: Erstellen eines Auftrags mit dem Python SDK
Der folgende Beispielnotizbuchcode erstellt einen Auftrag, der ein vorhandenes Notizbuch ausführt. Er ruft den Pfad des vorhandenen Notizbuchs und die zugehörigen Auftragseinstellungen mit Eingabeaufforderungen ab.
Stellen Sie zunächst sicher, dass die richtige Version des SDK installiert wurde:
%pip install --upgrade databricks-sdk==0.74.0
%restart_python
Führen Sie als Nächstes zum Erstellen eines Auftrags mit einer Notebook-Aufgabe Folgendes aus, und reagieren Sie auf die Eingabeaufforderungen:
from databricks.sdk.service.jobs import JobSettings as Job
from databricks.sdk import WorkspaceClient
job_name = input("Provide a short name for the job, for example, my-job: ")
notebook_path = input("Provide the workspace path of the notebook to run, for example, /Users/someone@example.com/my-notebook: ")
task_key = input("Provide a unique key to apply to the job's tasks, for example, my-key: ")
test_sdk = Job.from_dict(
{
"name": job_name ,
"tasks": [
{
"task_key": task_key,
"notebook_task": {
"notebook_path": notebook_path,
"source": "WORKSPACE",
},
},
],
}
)
w = WorkspaceClient()
j = w.jobs.create(**test_sdk.as_shallow_dict())
print(f"View the job at {w.config.host}/#job/{j.job_id}\n")
Ausführen eines Auftrags mit dem Python SDK
Es gibt drei Möglichkeiten zum Ausführen eines Auftrags bei Verwendung der API.
Geplant. Wenn die Auftragsdefinition (in JSON) einen Zeitplan enthält, z. B. das folgende Beispiel, wird der Auftrag automatisch im Zeitplan ausgeführt.
"schedule": { "quartz_cron_expression": "46 0 9 * * ?", "timezone_id": "America/Los_Angeles", "pause_status": "UNPAUSED" }, "max_concurrent_runs": 1,Auslöser mit
run-now. Diejobs.run_nowAPI löst eine Ausführung für einen Auftrag aus, den Sie bereits erstellt haben.Trigger mit
submit. Diejobs.runs.submitAPI akzeptiert eine Auftragsdefinition und löst eine Ausführung für den Auftrag aus.Bei
submitwird der Job nicht gespeichert und ist in der UI nicht sichtbar. Sie wird einmal ausgeführt, und wenn sie fertig ist, existiert sie nicht mehr als Aufgabe.Da sie nicht gespeichert werden, können übermittelte Aufträge im Falle eines Fehlers nicht automatisch für die serverlose Berechnung optimiert werden. Wenn Ihr Auftrag fehlschlägt, sollten Sie die klassische Berechnung verwenden, um die Berechnungsanforderungen für den Auftrag anzugeben. Alternativ können Sie
jobs.createundjobs.run_nowverwenden, um den Auftrag zu erstellen und auszuführen.
Erste Schritte mit der Databricks-REST-API
Hinweis
Databricks empfiehlt die Verwendung der Databricks CLI- und eines Databricks SDK-, es sei denn, Sie verwenden eine Programmiersprache, die nicht über ein entsprechendes Databricks SDK verfügt.
Im folgenden Beispiel wird eine Anforderung an die Databricks-REST-API zum Abrufen von Details für einen einzelnen Auftrag gestellt. Es wird davon ausgegangen, dass die Umgebungsvariablen DATABRICKS_HOST und DATABRICKS_TOKEN so festgelegt wurden, wie unter "Authentifizierung des persönlichen Zugriffstokens" beschrieben.
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data '{ "job": "11223344" }'
Informationen zur Verwendung der Databricks-REST-API finden Sie in der Referenzdokumentation Databricks REST API.
Anzeigen von Aufträgen als Code
Im Databricks-Arbeitsbereich können Sie die JSON-, YAML- oder Python-Darstellung eines Auftrags anzeigen.
Klicken Sie in der Randleiste Ihres Azure Databricks-Arbeitsbereichs auf Aufträge und Pipelines , und wählen Sie einen Auftrag aus.
Klicken Sie links neben der Schaltfläche " Jetzt ausführen " auf den Kebab, und klicken Sie dann auf "Als Code anzeigen":
Klicken Sie auf YAML, Python oder JSON , um den Auftrag als Code in dieser Sprache anzuzeigen.
- Klicken Sie für YAML auf "Kopieren", und fügen Sie den Code dann direkt in Die Konfigurationsdateien
*.yamlvon Databricks Asset Bundles ein, um den vorhandenen Auftrag in ein Bündel einzuschließen. Sie können auch auf "Bearbeiten" klicken, um die Konfiguration des Auftrags in YAML anstelle der Benutzeroberfläche zu ändern. - Wählen Sie für Python databricks SDK oder Databricks Asset Bundles aus, und klicken Sie dann auf Kopieren.
- Der Python-Code für das SDK kann zum Erstellen des Auftrags in Notizbüchern oder lokal bei Verwendung des Databricks Python SDK verwendet werden. Siehe Erstellen eines Auftrags mit dem Python SDK.
- Der Python-Code für Bundles kann verwendet werden, um den Auftrag in ein Bundle mit Python einzuschließen. Siehe Bundle-Konfiguration in Python.
- Klicken Sie für JSON auf "Kopieren ", und verwenden Sie den Code, um den Auftrag mithilfe der Databricks CLI, der Databricks-SDKs oder der Databricks-REST-API zu erstellen, zu aktualisieren oder abzurufen.
- Klicken Sie für YAML auf "Kopieren", und fügen Sie den Code dann direkt in Die Konfigurationsdateien
Bereinigung
Führen Sie databricks jobs delete <job-id> aus der Databricks CLI aus, oder löschen Sie den Auftrag direkt aus der Benutzeroberfläche des Databricks-Arbeitsbereichs, um alle soeben erstellten Aufträge zu löschen.
Nächste Schritte
- Weitere Informationen zur Databricks CLI finden Sie unter Was ist die Databricks CLI? und Databricks CLI-Befehle, um mehr über andere Befehlsgruppen zu erfahren.
- Weitere Informationen zum Databricks SDK finden Sie unter Azure Databricks SDKs.
- Weitere Informationen zu CI/CD mit Databricks finden Sie unter Databricks-Ressourcenbundles, Databricks Terraform-Anbieter und Terraform CDKTF für Databricks.
- Eine umfassende Übersicht über alle Entwicklertools finden Sie unter Local development tools.