Direkt zum Inhalt

Die Beherrschung der Databricks-API: Arbeiten mit Datenpipelines im großen Maßstab

Lerne, die Databricks REST API für die Jobautomatisierung, das Clustermanagement und Integrationen zu nutzen. Meistere Best Practices für Sicherheit, Leistung und Skalierbarkeit.
Aktualisierte 6. März 2025  · 12 Min. Lesezeit

Databricks APIs ermöglichen die programmatische Interaktion mit Databricks, sodass Nutzer Workflows automatisieren, Cluster verwalten, Jobs ausführen und auf Daten zugreifen können. Diese APIs unterstützen die Authentifizierung über persönliche Zugangstoken, OAuth oder Azure Active Directory.

In diesem Artikel führe ich dich durch eine ausführliche, praktische Reise durch die Databricks REST API. Egal, ob du neu bei Databricks bist oder deine bestehenden Arbeitsabläufe optimieren willst, dieser Leitfaden hilft dir, die wichtigsten Vorgänge wie Authentifizierung, Jobmanagement und Integration mit externen Systemen zu meistern. 

Am Ende dieses Artikels wirst du einen klaren Plan haben, wie du vorgehen kannst:

  • Einrichtung einer sicheren API-Authentifizierung mit persönlichen Zugangs-Tokens.  
  • Nutzung von API-Endpunkten zum Erstellen, Aktualisieren und Ausführen von Aufträgen. 
  • Anwendung von Best Practices zur Leistungssteigerung, Kostenoptimierung und Fehlerbehandlung. 
  • Integration von Databricks mit anderen Plattformen und Orchestrierungswerkzeugen.

Wenn du ganz neu bei Databricks bist und dich schnell einarbeiten willst, lies unseren Blogbeitrag Wie man Databricks lernt: A Beginner's Guide to the Unified Data Platform, der dir hilft, die Kernfunktionen und Anwendungen von Databricks zu verstehen, und dir einen strukturierten Weg bietet, mit dem Lernen zu beginnen.

Warum die Databricks-API verwenden?

Die Databricks REST API bietet Entwicklern und Dateningenieuren leistungsstarke Funktionen, mit denen sie Ressourcen programmatisch verwalten und Arbeitsabläufe rationalisieren können. Hier erfährst du, wie die Databricks-API einen großen Unterschied machen kann:

Geringerer manueller Aufwand bei der Auftragsplanung und dem Cluster-Management

Die Databricks-API ermöglicht es Nutzern, Aufgaben wie die Auftragsplanung und das Cluster-Management zu automatisieren. Dadurch verringert sich der manuelle Aufwand für die Verwaltung dieser Prozesse und es bleibt mehr Zeit für strategische Aktivitäten. Durch die Automatisierung sich wiederholender Aufgaben können Unternehmen ihre Effizienz steigern und die Wahrscheinlichkeit menschlicher Fehler verringern, die zu kostspieligen Fehlern oder Ausfallzeiten führen können.

Nahtlose Integrationen mit externen Systemen

Die Databricks-API ist auf Flexibilität ausgelegt und ermöglicht die Integration mit externen Plattformen wie Orchestrierungstools wie Apache Airflow oder Azure Data Factory.

Du kannst Databricks API auch für Überwachungs- und Alarmsysteme wie Prometheus oder Datadog nutzen. Databricks API wird auch in Daten-Ingestion-Pipelines von Tools wie Kafka oder RESTful-Datendiensten verwendet. Diese Integrationen helfen dabei, End-to-End-Workflows zu erstellen, die Daten-Engineering und -Analysen über mehrere Systeme hinweg verbinden.

Skalierbarkeit für Tausende von automatisierten Pipelines

Die Databricks-API unterstützt die Erstellung und Verwaltung von Tausenden von automatisierten Pipelines. Sie lässt sich mühelos skalieren, um Tausende von Jobs parallel zu verwalten und den Cluster je nach Bedarf dynamisch zu skalieren. Diese Skalierbarkeit stellt sicher, dass sich deine Infrastruktur nahtlos an die geschäftlichen Anforderungen anpasst, selbst im Unternehmensmaßstab.

Zentrale API-Vorgänge und Beispiele

Die Databricks REST-API bietet eine Vielzahl von Operationen zur Verwaltung von Jobs, Clustern, Dateien und Zugriffsberechtigungen. Im Folgenden werde ich die wichtigsten API-Vorgänge mit praktischen Beispielen erläutern, die dir helfen, robuste Arbeitsabläufe zu erstellen und zu automatisieren.

Jobs

Jobs sind das Rückgrat der automatisierten Workflows in Databricks. Mit der API kannst du nahtlos Aufträge erstellen, verwalten und überwachen.

Einen Job erstellen

Verwende den Endpunkt POST /API/2.1/jobs/create, um einen neuen Auftrag zu definieren. Der folgende JSON-Payload erstellt zum Beispiel einen neuen Databricks-Job mit dem Namen My Job und führt ein Notebook unter /path/to/notebook aus. Die Nutzlast verwendet dann ein bestehendes Cluster mit der ID cluster-id, sodass kein neues Cluster erstellt werden muss. Wenn der Auftrag fehlschlägt, sendet die Nutzlast eine E-Mail-Benachrichtigung an user@example.com.

{
  "name": "My Job",
  "existing_cluster_id": "cluster-id",
  "notebook_task": {
    "notebook_path": "/path/to/notebook"
  },
  "email_notifications": {
    "on_failure": ["user@example.com"]
  }
}

Auflisten und Abrufen von Jobdetails

Du kannst den Endpunkt GET /api/2.1/jobs/list verwenden, um eine Liste aller Jobs in deinem Arbeitsbereich abzurufen. Der folgende Beispielbefehl listet zum Beispiel alle Aufträge auf:

curl -n -X GET \
https://<databricks-instance>.cloud.databricks.com/api/2.1/jobs/list

Läufe auslösen

Verwende den Endpunkt POST /api/2.1/jobs/run-now, um einen sofortigen Lauf eines Jobs auszulösen.

curl -n -X POST \
https://<databricks-instance>.cloud.databricks.com/api/2.1/jobs/run-now?job_id=123456789

Löschen von Aufträgen und Läufen

Die neueste API-Version verfügt zwar nicht über einen direkten Endpunkt zum Löschen von Aufträgen, aber du kannst Auftragsläufe und ihren Lebenszyklus über andere Endpunkte verwalten. Verwende den Endpunkt Delete a Job: POST /api/2.1/jobs/delete, um einen Job zu löschen, und POST /api/2.1/jobs/runs/cancel, um einen Lauf abzubrechen.

Überwachung von Läufen, Fehlerbehandlung und Protokollen

Verwende GET /api/2.1/jobs/runs/get, um den Status eines Auftrags zu überwachen. Rufe Protokolle ab oder behandle Fehler über das Feld run_state.

Clusters

Cluster stellen die Rechenressourcen für die Ausführung von Aufträgen bereit. Die API vereinfacht die Verwaltung des Lebenszyklus von Clustern.

Erstellen und Bearbeiten von Clustern

Erstelle einen Cluster mit POST /api/2.1/clusters/create. Du kannst z.B. folgendes in den Request Body schreiben.

{
  "cluster_name": "Example Cluster",
  "spark_version": "12.2.x-scala2.12",
  "node_type_id": "i3.xlarge",
  "num_workers": 4
}

Führe dann den unten stehenden Beispielbefehl aus, um diesen Cluster zu erstellen.

curl -n -X POST \
-H 'Content-Type: application/json' \
-d '{"cluster_name": "My Cluster", "spark_version": "7.3.x-scala2.12", "node_type_id": "i3.xlarge", "num_workers": 2}' \
https://<databricks-instance>.cloud.databricks.com/api/2.1/clusters/create

Start, Neustart, Größenänderung und Beendigung von Clustern

Verwende die folgenden APIs, um:

  • Start Cluster: POST /api/2.1/clusters/start

  • Cluster neu starten: POST /api/2.1/clusters/restart

  • Größe des Clusters ändern: PATCH /api/2.1/clusters/edit

  • Beende den Cluster: POST /api/2.1/clusters/delete

Bewährte Praktiken für ephemere vs. Allzweck-Cluster

Beachte die folgenden Best Practices für:

  • Vergänglichkeitscluster: Für Aufträge, die eine dynamische Ressourcenzuweisung erfordern und nach Beendigung des Auftrags beendet werden können.
  • Allzweck-Cluster: Geeignet für kontinuierliche Workloads, bei denen Cluster über mehrere Jobs hinweg wiederverwendet werden.

DBFS (Databricks File System)

DBFS ermöglicht das Speichern und Abrufen von Dateien in Databricks.

Hoch- und Herunterladen von Dateien

Du kannst die API POST /api/2.1/dbfs/upload verwenden, um Dateien in Stücken (Multipart) oder bei großen Dateien (>1MB) in das DBFS hochzuladen. Die GET /api/2.1/dbfs/read API wird zum Herunterladen von Dateien verwendet.

Verzeichnisse auflisten und große Dateioperationen durchführen

Verwende GET /api/2.1/dbfs/list, um Verzeichnisse zu erkunden und Dateien programmatisch zu verwalten. Für große Datei-Uploads verwende Chunked Uploads mit POST /api/2.1/dbfs/put und dem Parameter overwrite.

Geheimnisse und Authentifizierung

Die Secrets API gewährleistet die sichere Speicherung und den Abruf sensibler Informationen.

Sichere Speicherung von Anmeldedaten mit der Secrets API

Verwende den Endpunkt POST /api/2.1/secrets/create, um ein neues Geheimnis für die Speicherung sensibler Informationen zu erstellen.

Du kannst den Request Body zum Beispiel wie folgt in JSON erstellen:

{
  "scope": "my-scope",
  "key": "my-key",
  "string_value": "my-secret-value"
}

Dann erstellst du das Geheimnis mit dem folgenden Befehl:

curl -n -X POST \
-H 'Content-Type: application/json' \
-d '{"scope": "my-scope", "key": "my-key", "string_value": "my-secret-value"}' \
https://<databricks-instance>.cloud.databricks.com/api/2.1/secrets/create

Abrufen von Geheimnissen für die Integration

Verwende den Endpunkt GET /API/2.1/secrets/get, um Geheimnisse für externe Integrationen abzurufen.

Berechtigungen und Zugriffskontrollen

Die Databricks-Plattform ermöglicht eine granulare Kontrolle über den Zugang zu Jobs und Ressourcen.

Berechtigungen festlegen und aktualisieren

Verwende den Endpunkt POST /api/2.1/permissions/jobs/update, um Rollen wie Eigentümer oder Betrachter zuzuweisen. Der folgende Payload wird zum Beispiel zum Aktualisieren von Berechtigungen verwendet:

{
  "access_control_list": [
    {
      "user_name": "user@example.com",
      "permission_level": "CAN_MANAGE"
    }
  ]
}

Rollenbasierte Zugriffskontrolle (RBAC)

Verwende die integrierte rollenbasierte Zugriffskontrolle (RBAC) von Databricks, um die Berechtigungen für verschiedene Rollen in deinem Unternehmen zu verwalten.

Databricks API Ratenbegrenzung, Fehlerbehandlung und Fehlerbehebung

Wenn du mit der Databricks REST-API arbeitest, ist es wichtig, die Ratenbeschränkungen zu berücksichtigen, Fehler elegant zu behandeln und häufige Probleme zu lösen, um eine zuverlässige Leistung und einen reibungslosen Betrieb zu gewährleisten. In diesem Abschnitt gehe ich auf die Strategien zur Optimierung der API-Nutzung und zur effektiven Fehlerbehebung ein.

Tarifgrenzen

Die Databricks-API setzt Ratenlimits durch, um eine faire Nutzung zu gewährleisten und die Zuverlässigkeit des Dienstes zu erhalten. 

  • Offizielle Richtlinien für die Häufigkeit von Anfragen: Dieses Limit begrenzt die Anzahl der API-Aufrufe, die ein Nutzer in einer Minute tätigen kann. Das Überschreiten dieser Grenze kann zu HTTP 429 Fehlern führen. Die Anzahl der Anfragen pro Tag (Requests Per Day, RPD) begrenzt die Gesamtzahl der Anfragen, die ein Nutzer in 24 Stunden stellen kann.
  • Strategien zum Umgang mit 429 Fehlern und Back-Off-Ansätzen: Implementiere einen Wiederholungsmechanismus mit exponentiell ansteigenden Verzögerungen zwischen den Wiederholungen. Dadurch wird eine Überlastung des Servers verhindert und die Wahrscheinlichkeit verringert, dass die Ratengrenze sofort wieder erreicht wird. Beobachte außerdem die Anfragemuster, um häufige Anrufe nach Möglichkeit zu konsolidieren und die Gesamtzahl der Anfragen zu reduzieren.

Häufige Probleme und Lösungen

Im Folgenden findest du die häufigsten Probleme, die mit Databricks APIs auftreten können, und wie du sie lösen kannst.

  • Fallstricke bei der Authentifizierung: Dieser Fehler tritt oft aufgrund von ungültigen oder abgelaufenen Token auf. Um das Problem zu lösen, stelle immer sicher, dass die Token gültig und richtig konfiguriert sind. Überprüfe die Gültigkeit des Tokens und generiere ihn bei Bedarf neu. Stelle sicher, dass die Service Principals korrekt konfiguriert sind und die richtigen Rollen in Azure Databricks erhalten haben.
  • Datenformat- oder JSON-Fehler: Validiere JSON-Daten immer, bevor du sie in API-Anfragen sendest. Verwende try-catch-Blöcke, um Parsing-Fehler anständig zu behandeln. Die Verwendung von Tools wie JSON-Validatoren zur Überprüfung des Datenformats vor dem Senden von Anfragen kann ebenfalls zur Fehlerbehebung beitragen.
  • Fehlerbehebung bei Auftragsfehlern: Verwende die Databricks-API, um Job-Protokolle zu Debugging-Zwecken abzurufen. Implementiere eine robuste Protokollierung und Überwachung, um Jobfehler schnell zu erkennen und zu beheben.

Engpässe bei der Leistung

Wenn du auf Leistungsengpässe stößt, solltest du die folgenden Lösungen in Betracht ziehen:

  • Minimierung des Overheads bei wiederholten Aufrufen: Implementiere eine Zwischenspeicherung für häufig abgerufene Daten, um die Anzahl der API-Aufrufe zu reduzieren. Verwende außerdem Batch-Operationen, um den Overhead zu minimieren, indem du mehrere Anfragen in einem einzigen Aufruf zusammenfasst.
  • Caching oder Batch-Operationen verwenden: Speichere häufig abgerufene Daten in einer Cache-Schicht, um wiederholte API-Aufrufe zu reduzieren. Du kannst auch mehrere Anfragen in einem einzigen API-Aufruf zusammenfassen, um den Overhead zu reduzieren und die Leistung zu verbessern.

Erweiterte Workflows & Parallelverarbeitung

Die REST-API von Databricks ist äußerst vielseitig und unterstützt sowohl einfache Single-Thread-Workflows als auch komplexe Parallelverarbeitung. Durch den Einsatz fortschrittlicher Workflows kannst du die Effizienz optimieren und nahtlos mit externen Systemen zusammenarbeiten. Schauen wir uns an, wie man diese Funktionen implementiert.

Als Hinweis: Konfiguriere deine Umgebungsvariablen immer mit:

  • DATABRICKS_HOST: Diese Variable speichert die URL deiner Databricks-Instanz, die für die Erstellung von API-Anfragen benötigt wird.

  • DATABRICKS_TOKEN: Diese Variable enthält dein Access Token, was die Einbindung in API-Aufrufe vereinfacht.

Anwendungsfall 1: Single-Thread-API-Ingestion

Der sequentielle Aufruf eines einzelnen API-Endpunkts ist effektiv für kleinere Aufgaben oder einfache Automatisierung. Im Folgenden findest du ein praktisches Beispiel für die Verwendung der Request-Bibliothek in Python.

import requests
import os

# Set up environment variables
DATABRICKS_HOST = os.getenv("DATABRICKS_HOST")
DATABRICKS_TOKEN = os.getenv("DATABRICKS_TOKEN")

# API request to list jobs
url = f"{DATABRICKS_HOST}/api/2.1/jobs/list"
headers = {"Authorization": f"Bearer {DATABRICKS_TOKEN}"}

response = requests.get(url, headers=headers)
if response.status_code == 200:
    jobs = response.json().get("jobs", [])
    for job in jobs:
        print(f"Job ID: {job['job_id']}, Name: {job['settings']['name']}")
else:
    print(f"Error: {response.status_code} - {response.text}")

Anwendungsfall 2: Parallele oder verteilte API-Aufrufe

Die parallele Verarbeitung kann die Effizienz bei der Aufnahme größerer Datenmengen oder beim Umgang mit mehreren Endpunkten erheblich verbessern. Das folgende Beispiel zeigt, wie du Apache Spark nutzt, um API-Aufrufe gleichzeitig zu verteilen.

from pyspark.sql import SparkSession
from pyspark.sql.functions import udf
import requests

# Initialize Spark session
spark = SparkSession.builder.appName("ParallelAPI").getOrCreate()

# Sample data for parallel calls
data = [{"job_id": 123}, {"job_id": 456}, {"job_id": 789}]
df = spark.createDataFrame(data)

# Define API call function
def fetch_job_details(job_id):
    url = f"{DATABRICKS_HOST}/api/2.1/jobs/get"
    headers = {"Authorization": f"Bearer {DATABRICKS_TOKEN}"}
    response = requests.get(url, headers=headers, params={"job_id": job_id})
    if response.status_code == 200:
        return response.json().get("settings", {}).get("name", "Unknown")
    return f"Error: {response.status_code}"

# Register UDF
fetch_job_details_udf = udf(fetch_job_details)

# Apply UDF to DataFrame
results_df = df.withColumn("job_name", fetch_job_details_udf("job_id"))
results_df.show()

Beachte die folgenden Tipps für den Kompromiss zwischen Skalierbarkeit und Kosten.

  • Skalierbarkeit: Spark ermöglicht dir eine horizontale Skalierung, indem du deinem Cluster weitere Knoten hinzufügst. Dies ist besonders nützlich für die Bearbeitung großer Mengen von API-Anfragen.
  • Kosten-Nutzen-Abwägungen: Die Parallelverarbeitung verkürzt zwar die Ausführungszeit, aber sie erhöht den Ressourcenverbrauch und die Kosten. Achte darauf, dass deine Clusterkonfiguration die Leistungsanforderungen mit den Kostenvorgaben in Einklang bringt.
  • Tipps zur Cluster-Konfiguration: Wähle Knoten aus, die ein ausgewogenes Verhältnis zwischen CPU und Arbeitsspeicher haben, basierend auf deiner Arbeitslast. Du solltest auch sicherstellen, dass du genügend Arbeiter hast, um das Volumen der Anfragen zu bewältigen, ohne den Cluster zu überfordern. Optimiere die Spark-Einstellungen, wie spark.executor.memory und spark.driver.memory, um Speicherprobleme zu vermeiden.

Orchestrierung und Integration

Die Integration von Databricks mit externen Orchestrierern wie Airflow oder Dagster ermöglicht es dir, komplexe Workflows zu verwalten und die Jobausführung über verschiedene Systeme hinweg zu automatisieren. Das folgende Beispiel zeigt, wie du Airflow nutzt, um einen Databricks-Job auszulösen.

from airflow import DAG
from airflow.providers.databricks.operators.databricks import DatabricksRunNowOperator
from datetime import datetime

# Define default arguments for the DAG
default_args = {
    "owner": "airflow",  # Owner of the DAG
    "depends_on_past": False,  # Do not depend on past DAG runs
    "retries": 1,  # Number of retry attempts in case of failure
}

# Define the DAG
with DAG(
    dag_id="databricks_job_trigger",  # Unique DAG ID
    default_args=default_args,  # Apply default arguments
    schedule_interval=None,  # Manually triggered DAG (no schedule)
    start_date=datetime(2023, 1, 1),  # DAG start date
) as dag:

    # Task to trigger a Databricks job
    run_job = DatabricksRunNowOperator(
        task_id="run_databricks_job",  # Unique task ID
        databricks_conn_id="databricks_default",  # Connection ID for Databricks
        job_id=12345,  # Replace with the actual Databricks job ID
    )

    # Set task dependencies (if needed)
    run_job

Für CI/CD-Pipelines können Tools wie die Git-Integration mit Databricks die Bereitstellung von Code und Assets in verschiedenen Umgebungen automatisieren. So wird sichergestellt, dass Änderungen getestet und validiert werden, bevor sie in die Produktion einfließen.

# Example of using Databricks REST API in a CI/CD pipeline
import requests

def deploy_to_production():
    # Assuming you have a personal access token
    token = "your_token_here"
    headers = {"Authorization": f"Bearer {token}"}
    
    # Update job or cluster configurations as needed
    url = "https://your-databricks-instance.cloud.databricks.com/api/2.1/jobs/update"
    payload = {"job_id": "123456789", "new_settings": {"key": "value"}}
    
    response = requests.post(url, headers=headers, json=payload)
    if response.status_code == 200:
        print("Deployment successful.")
    else:
        print(f"Deployment failed. Status code: {response.status_code}")

Praktisches Beispiel: Erstellen einer mehrstufigen Pipeline

Nachdem wir nun die verschiedenen Anwendungen von Databricks API kennengelernt haben, möchte ich dir ein Beispiel für eine automatisierte Pipeline zeigen. Diese Pipeline nimmt Daten von einer externen API auf, wandelt die Daten in Databricks um und schreibt die Ergebnisse dann in eine Databricks Tabelle. Dieses Szenario ist ein typischer End-to-End-Workflow für moderne Data Engineering-Aufgaben. Wenn du dein Wissen über die wichtigsten Funktionen von Databricks, einschließlich der Dateneingabe, auffrischen möchtest, empfehle ich dir unser Tutorial über die 7 wichtigsten Konzepte für jeden Datenspezialisten.

Authentifizierung über ein persönliches Zugangstoken

Um mit der Databricks REST API zu interagieren, musst du dich mit einem Personal Access Token (PAT) authentifizieren. Befolge diese Schritte, um den PAT zu erstellen. 

  • Melde dich in deinem Databricks-Arbeitsbereich an.

Databricks Arbeitsbereich.

Databricks Arbeitsbereich. Bild vom Autor.

  • Gehe zu Einstellungen > Benutzereinstellungen > Zugriffstoken.

Erzeugen von Zugriffstoken in Databricks.

Erzeugen von Zugriffstoken in Databricks. Bild vom Autor.

  • Erstelle einen neuen Token und speichere ihn sicher.

Wenn du dein Wissen über Databricks SQL auffrischen musst, empfehle ich dir, unser Databricks SQL-Tutorial zu lesen, um zu erfahren, wie du das SQL Warehouse über die Databricks-Weboberfläche einrichtest.

Richte die Umgebungsvariablen auf eine der folgenden Arten ein:

Verwendung des Terminals

export DATABRICKS_HOST=https://<your-databricks-instance>
export DATABRICKS_TOKEN=<your-access-token>

Die Python-Anforderungsbibliothek für API-Aufrufe nutzen

import os
import requests

DATABRICKS_HOST = os.getenv("DATABRICKS_HOST")
DATABRICKS_TOKEN = os.getenv("DATABRICKS_TOKEN")

headers = {"Authorization": f"Bearer {DATABRICKS_TOKEN}"}

Einrichten eines Databricks-Jobs mit mehreren Aufgaben

Ein Databricks-Job kann aus mehreren Aufgaben bestehen, die jeweils einen Schritt in der Pipeline ausführen. Für dieses Beispiel kannst du dir folgendes vorstellen:

  • Aufgabe 1: Hole Daten von einer externen API und schreibe sie ins DBFS.
  • Aufgabe 2: Transformiere die Daten in einem Databricks-Notebook.
  • Aufgabe 3: Schreibe die umgewandelten Daten in eine Delta-Tabelle.

Das folgende Beispiel verwendet den Endpunkt POST /api/2.1/jobs/create, um den Auftrag zu erstellen.

{
  "name": "Multi-Step Pipeline",
  "tasks": [
    {
      "task_key": "fetch_data",
      "existing_cluster_id": "your-cluster-id",
      "notebook_task": {
        "notebook_path": "/Users/example_user/fetch_data"
      }
    },
    {
      "task_key": "transform_data",
      "depends_on": [{"task_key": "fetch_data"}],
      "existing_cluster_id": "your-cluster-id",
      "notebook_task": {
        "notebook_path": "/Users/example_user/transform_data"
      }
    },
    {
      "task_key": "write_results",
      "depends_on": [{"task_key": "transform_data"}],
      "existing_cluster_id": "your-cluster-id",
      "notebook_task": {
        "notebook_path": "/Users/example_user/write_results"
      }
    }
  ]
}

Auslösen des Workflows und Abrufen von Arbeitsergebnissen/Outputs

Lösen Sie den Auftrag mit POST /api/2.1/jobs/run-now

curl -n -X POST \
https://$DATABRICKS_HOST/api/2.1/jobs/run-now?job_id=your_job_id

Überprüfe den Lernpfad GET /api/2.1/jobs/runs/get mit run_id, um den Arbeitsfortschritt zu verfolgen.

response = requests.get(f"{DATABRICKS_HOST}/api/2.1/jobs/runs/get", headers=headers, params={"run_id": run_id})
print(response.json())

Rufe die Ausgabeprotokolle oder die Ergebnisse der Aufgaben mit GET /api/2.1/jobs/runs/get-output auf.

Protokollierung und Fehlerbehandlung

Für die Protokollierung konfigurierst du die Job-Protokolle so, dass sie in das DBFS oder ein Überwachungstool wie Datadog oder Splunk geschrieben werden. Außerdem solltest du für eine bessere Rückverfolgbarkeit detaillierte Aufzeichnungen in das Notizbuch jeder Aufgabe aufnehmen.

Implementiere auch try-except-Blöcke in Notizbüchern, um Ausnahmen abzufangen und zu protokollieren. Verwende die Databricks Jobs API, um Jobprotokolle zur Fehlersuche bei fehlgeschlagenen Läufen abzurufen. Das folgende Beispiel zeigt die Fehlerbehandlung in einem Notizbuch.

try:
    # Code to fetch data from API
    response = requests.get(api_url)
    # Process data
except Exception as e:
    print(f"An error occurred: {e}")
    # Log error and exit

Du kannst auch E-Mail- oder Slack-Benachrichtigungen mit der Databricks Alerts API oder Tools von Drittanbietern integrieren.

Bewährte Praktiken und Empfehlungen

Die Umsetzung von Best Practices in Databricks kann die Sicherheit deutlich erhöhen, die Kosten senken und die Zuverlässigkeit des Systems insgesamt verbessern. Im Folgenden findest du die wichtigsten Strategien, die du bei der Nutzung von Databricks API berücksichtigen solltest, und die kritischen Bereiche.

Sicherheit und Governance

Vermeide es, einfache Token in Codes oder Notizbüchern zu speichern. Verwende stattdessen Databricks Secret, um sensible Informationen wie API-Schlüssel oder Anmeldedaten sicher mit der Databricks Secrets API zu speichern. So wird sichergestellt, dass sensible Daten nicht im Klartext im Code oder in Notizbüchern veröffentlicht werden. Verwende immer Umgebungsvariablen, um Token oder Geheimnisse an Skripte zu übergeben, aber stelle sicher, dass diese Variablen sicher verwaltet und nicht in die Versionskontrolle übertragen werden.

Nutze die rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC), um Berechtigungen auf Arbeitsbereichs-, Cluster- und Job-Ebene zu definieren und den Zugriff auf sensible APIs auf die erforderlichen Benutzer oder Servicekonten zu beschränken.

Kostenmanagement

Für ein effektives Kostenmanagement solltest du den Einsatz von Single-Node-Clustern für kontinuierliche Aufgaben mit geringer Last in Betracht ziehen. Sie können jedoch kosteneffizient sein, wenn sie nicht vollständig genutzt werden. Außerdem werden ephemere Jobcluster automatisch für Jobs erstellt und beendet, damit die Ressourcen nicht ungenutzt bleiben.

Aufgrund der dynamischen Preisgestaltung für Cloud-Ressourcen kann die Planung außerhalb der Spitzenzeiten die Kosten erheblich senken. Verwende die Jobs-API, um Jobpläne während kostengünstiger Zeitfenster zu definieren.

Überprüfe regelmäßig die Auslastung des Clusters, um sicherzustellen, dass keine Ressourcen verschwendet werden. Konfiguriere die Cluster so, dass sie sich nach einer bestimmten Leerlaufzeit automatisch beenden, um unnötige Kosten zu vermeiden.

Kontinuierliche Prüfung und Überwachung

Für automatisierte Tests und Auftragsdefinitionen solltest du Unit-Tests für die Auftragslogik implementieren, um Fehler frühzeitig zu erkennen. Überwache Lernpfade und protokolliere Leistungskennzahlen, um die Lernpfade programmatisch zu verfolgen und historische Daten zu analysieren:

Fazit und nächste Schritte

Mit der REST-API von Databricks können Teams Arbeitsabläufe automatisieren, Kosten optimieren und nahtlos in externe Systeme integrieren, was die Verwaltung von Datenpipelines und Analysen verändert. Ich empfehle dir, zunächst einen einfachen API-Aufruf zu testen, wie z.B. das Erstellen eines Jobs, um Vertrauen in die Plattform aufzubauen. Du kannst auch andere fortgeschrittene Themen wie den Unity-Katalog für fein abgestufte Governance erforschen oder in Echtzeit-Streaming-Anwendungsfälle eintauchen.

Außerdem empfehle ich dir, die offiziellen Databricks REST API Docs zu lesen, um offene Fragen zu beantworten, und die GitHub-Repositories für die Databricks CLI und das Databricks SDK für Python zu erkunden, um mehr über die rationalisierte Entwicklung zu erfahren.

Wenn du die grundlegenden Konzepte von Databricks kennenlernen möchtest, empfehle ich dir unseren Kurs Einführung in Databricks. In diesem Kurs lernst du Databricks als Data Warehousing-Lösung für Business Intelligence kennen. Ich empfehle auch einen Blick in unseren Blogbeitrag Databricks-Zertifizierungen im Jahr 2024, um zu erfahren, wie du Databricks-Zertifizierungen erlangen kannst, welche Vorteile du für deine Karriere hast und wie du die richtige Zertifizierung für deine Karriereziele findest.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Ich verfasse Artikel, die Datenwissenschaft und Analytik vereinfachen und leicht verständlich und zugänglich machen.

Databricks API FAQs

Was ist die Databricks REST API?

Die Databricks-API ermöglicht den programmatischen Zugang zur Verwaltung von Databricks-Ressourcen wie Jobs, Clustern, Secrets und dem Arbeitsbereich.

Wie kann ich mich bei der Databricks-API authentifizieren?

Verwende Personal Access Tokens (PATs) für eine sichere Authentifizierung. Vermeide es, Token in Code einzubetten; speichere sie in Databricks Secrets oder Umgebungsvariablen.

Was sind die Unterschiede zwischen den API-Versionen (v2.0 vs. v2.1)?

Version 2.1 bietet erweiterte Funktionen, einschließlich verbesserter Funktionen für die Auftragsverwaltung. Es wird empfohlen, auf v2.1 zu migrieren.

Unterstützt die API mehrstufige Arbeitsabläufe?

Ja, die Jobs API unterstützt Workflows mit abhängigen Aufgaben und Multitasking-Jobs.

Themen

Cloud lernen mit DataCamp

Zertifizierung verfügbar

Kurs

Einführung in Databricks

3 hr
12.1K
Erfahre mehr über die Databricks Lakehouse Plattform und wie sie Datenarchitekturen modernisieren und Datenmanagementprozesse verbessern kann.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Mehr anzeigenMehr anzeigen