Azure Databricks REST API

Tato stránka popisuje Azure Databricks REST API, jak jej volat a některé osvědčené postupy.

Pro úplnou referenci pro Databricks REST API viz odkaz na Databricks REST API.

Note

S výjimkou pokročilých scénářů Databricks doporučuje používat Databricks SDK nebo Databricks CLI místo Databricks REST API pro programovou správu Databricks objektů.

Pracovní prostor vs REST API pro účet

Azure Databricks poskytuje dvě sady REST API. API pracovních prostor spravují zdroje uvnitř jednoho pracovního prostoru, jako jsou clustery, úlohy, zápisníky a objekty Unity Catalog, a vy je voláte pomocí URL vašeho pracovního prostoru jako hostitele. Rozhraní API účtu spravují prostředky na úrovni účtu, jako je zřizování uživatelů a skupin, vytváření pracovních prostorů, konfigurace sítě a fakturace a nastavení služby Unity Catalog na úrovni účtu, a voláte je pomocí své přihlašovací adresy URL ke konzoli účtu a ID účtu.

Pro operace dostupné v každé sadě viz odkaz na API pracovního prostoru a odkaz na API účtu.

Zavolat REST API

Volání Databricks REST API obsahuje následující komponenty:

Pro informace o tom, jak strukturovat požadavek REST API a jak parsovat payloady pro váš preferovaný vývojářský nástroj, navštivte dokumentaci vašeho poskytovatele.

Příklad 1: Získejte shluky

Následující příklad volá endpoint Cluster, List pro vrácení seznamu dostupných clusterů. Předpokládá se, že proměnná prostředí DATABRICKS_HOST je nastavena na adresu URL vašeho pracovního prostoru Databricks a proměnná DATABRICKS_TOKEN je nastavena na token Databricks.

curl -X GET "$DATABRICKS_HOST/api/2.0/clusters/list" \
  -H "Authorization: Bearer $DATABRICKS_TOKEN"
import requests
import os

headers = {"Authorization": f"Bearer {os.getenv('DATABRICKS_TOKEN')}"}
response = requests.get(f"{os.getenv('DATABRICKS_HOST')}/api/2.0/clusters/list", headers=headers)

print(response.json())

Příklad 2: Spuskut úkol

Následující příklad volá endpoint Job, Run Now k zahájení suchého testu existující úlohy. Předpokládá se, že proměnná prostředí DATABRICKS_HOST je nastavena na adresu URL vašeho pracovního prostoru Databricks a proměnná DATABRICKS_TOKEN je nastavena na token Databricks.

curl -X POST "$DATABRICKS_HOST/api/2.1/jobs/run-now" \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "job_id": 45678,
    "notebook_params": {
      "dry_run": "true",
      "start_date": "2026-08-27"
    }
  }'
import requests
import os

url = f"{os.getenv('DATABRICKS_HOST')}/api/2.1/jobs/run-now"
headers = {
    "Authorization": f"Bearer {os.getenv('DATABRICKS_TOKEN')}",
    "Content-Type": "application/json"
}
payload = {
    "job_id": 45678,
    "notebook_params": {"dry_run": "true", "start_date": "2026-08-27"}
}

response = requests.post(url, headers=headers, json=payload)
print(f"Run ID: {response.json().get('run_id')}")

Příklad 3: Vrátit uživatele účtu

Následující příklad volá koncový bod Account User, List k vrácení seznamu uživatelů v účtu Databricks identifikovaném pomocí <account_id>:

curl -X GET '<databricks-account-login-url>/api/2.0/identity/accounts/<account_id>/users' \
  --header "Authorization: Bearer $OAUTH_TOKEN"
import requests
import os

url = "<databricks-account-login-url>/api/2.0/identity/accounts/<account_id>/users"
headers = {"Authorization": f"Bearer {os.getenv('OAUTH_TOKEN')}"}

response = requests.get(url, headers=headers)
print(response.json())

Osvědčené postupy

Následující sekce popisují některé osvědčené postupy v oblasti výkonu, jak se data ve vašem pracovním prostoru zvyšují.

Stránkování LIST odpovědí API

LIST API vrací výsledky na stránkách místo jedné velké odpovědi. Pro získání kompletní sady výsledků požádejte o první stránku, poté použijte token v odpovědi k požadavku na každou následující stránku, dokud žádný token není vrácen.

Pro prohledání kompletní sady výsledků:

  • Přečtěte si next_page_token pole z každé odpovědi. Chcete-li vyžádat další stránku, předejte její hodnotu v parametru dotazu page_token v dalším požadavku a všechny ostatní parametry požadavku ponechte beze změny.
  • Opakujte, dokud odpověď nevynechá next_page_token nebo nevrátí hodnotu jako prázdnou. Tato odpověď je poslední stránkou. Pokračujte v žádostech o stránky, i když stránka neobsahuje žádné výsledky.
  • Do prvního požadavku nezahrnujte page_token. Přidejte ho pouze pro následné žádosti.

Parametr ovlivňující velikost stránky se liší podle API. Například některá API používají max_results, jiná používají page_size a další používají limit. Zkontrolujte v REST API referenci parametry, které každý koncový bod podporuje.

Note

Některá starší API Unity Catalog LIST vracejí výsledky pouze po stránkách, když zadáte max_results. Nastavte max_results=0 tak, aby server zvolil velikost stránky, nebo nastavte kladnou hodnotu pro požadavek na velikost stránky. Pro více informací viz Paginate Unity Catalog REST API operations.

Zvládněte 429 reakcí s limitem rychlosti

Databricks vynucuje omezení rychlosti u volání REST API, aby pracovní prostory zůstaly responzivní i při vysoké zátěži. Limity jsou aplikovány na každý koncový bod a na pracovní prostor, aby se podpořilo spravedlivé používání a dostupnost. Požadavek, který překročí limit rychlosti, vrátí 429 Too Many Requests HTTP odpověď.

Reagujte s grácií tím, že to zkusíte 429 znovu s exponenciálním odstupem a třesem:

  • Exponenciální prodleva: Po chybě 429 počkejte před dalším pokusem a po každém dalším selhání 429 dobu čekání zdvojnásobte. Nastavte maximální čekací dobu a maximální počet opakování, aby se požadavek neopakoval donekonečna.
  • Jitter: Přidej k každému čekání malý náhodný čas. Jitter časově rozkládá opakované pokusy u více klientů, aby je všichni neopakovali ve stejný okamžik a nezpůsobovali tak opakované špičky provozu.
  • Pokud odpověď obsahuje hlavičku Retry-After , počkejte alespoň tolik, než to zkusíte znovu.

Většina HTTP klientských knihoven vám toto chování při opakovaném pokusu může aplikovat. Informace o algoritmu naleznete v článku Exponenciální backoff a jitter.

Pro limity rychlosti, které se vztahují na konkrétní API, viz limity API v API rate limitech.

Omezte pole odpovědi kvůli výkonu

Některá LIST API vracejí pole, která jsou nákladná na výpočet nebo která vytvářejí velké odpovědi. Když tato pole nepotřebujete, použijte parametry požadavků, které je vynechávají, abyste snížili velikost odpovědi a zlepšili latenci.

Například API Unity Catalog Tables podporuje následující parametry:

  • omit_properties=true: Vynechá pole properties z každé tabulky v odpovědi.
  • omit_columns=true: Vynechá pole columns z každé tabulky v odpovědi.

Pokud tabulky uvádíte jen proto, abyste získali jejich názvy, nastavení obou parametrů vrátí menší odezvu a tabulky zobrazí rychleji. Zkontrolujte v REST API referenci parametry ořezávání polí, které každý koncový bod podporuje.

Dodatečné zdroje