Uppdaterar från Jobb-API 2.1 till 2.2
Den här artikeln beskriver uppdateringar och förbättringar av funktionerna i version 2.2 av Jobb-API:et. Den innehåller information som hjälper dig att update dina befintliga API-klienter så att de fungerar med den här nya versionen. Dessa uppdateringar omfattar standardköning av jobb och bättre stöd för sidnumrering när svar inkluderar fält som innehåller fler än 100 element. Eftersom version 2.2 förbättrar det befintliga stödet för sidnumrering av stora resultatuppsättningar rekommenderar Databricks att du använder det för dina API-skript och -klienter, särskilt när svar kan innehålla många uppgifter.
Mer information om ändringarna mellan versionerna 2.0 och 2.1 av API:et finns i Uppdatera från Jobb-API 2.0 till 2.1.
Förutom de ändringar som ingår i version 2.1 av Databricks-jobb-API:et har version 2.2 följande förbättringar:
Jobb placeras i kö som standard
Jobbköer är en valfri funktion som förhindrar att körningar av jobb missas när resurser inte är tillgängliga för körningen. Jobbköer stöds i versionerna 2.0, 2.1 och 2.2 av Jobb-API:et, med följande skillnader i standardhanteringen av köer:
- För jobb som skapats med Jobb-API 2.2 är köning aktiverat som standard. Du kan inaktivera köning genom att ange fältet
queue
tillfalse
i begärandeorgan när du skapar eller update ett jobb. - För jobb som skapats med versionerna 2.0 och 2.1 av Jobb-API:et är köhantering inte aktiverat som standard. Med dessa versioner måste du aktivera kö genom att ställa in fältet
queue
tilltrue
i begärandetext när du skapar eller update ett jobb.
Du kan aktivera eller inaktivera köning när du skapa ett jobb, delvis update ett jobbeller update alla jobbinställningar.
Se Jobbkö.
Stöd för paginering av långa listor över uppgifter och uppgiftskörningar
För att stödja jobb med ett stort antal aktiviteter eller aktivitetskörningar ändrar Jobs API 2.2 hur stora resultatuppsättningar returneras för följande begäranden:
- List jobb: Se Ändringar i List jobb och List jobb kör begäranden.
- List jobbet körs: Se Ändringar i List jobb och List jobb kör begäranden.
- Get ett enda jobb: Se Get ett enda jobb.
- Get en enda jobbkörning: Se Get en enda körning.
Jobb-API 2.2 ändrar sidnumrering för dessa begäranden enligt följande:
- Fält som representerar listor över element som aktiviteter, parameters, job_clusters eller miljöer är begränsade till 100 element per svar. Om fler än 100 values är tillgängliga innehåller svarstexten ett
next_page_token
fält som innehåller en token för att hämta nästa resultatsida. - Sidnumrering läggs till för svar på
Get a single job
- ochGet a single job run
-begäranden. Sidnumrering för svaren påList job
ochList job runs
begäran lades till med Jobb-API 2.1.
Följande är ett exempel på svarstext från en Get a single job
begäran om ett jobb med fler än 100 uppgifter. För att demonstrera den tokenbaserade pagineringsfunktionen, utelämnar det här exemplet de flesta av fälten som ingår i svarstexten.
{
"job_id": 11223344,
"settings": {
"tasks": [
{
"task_key": "task-1"
},
{
"task_key": "task-2"
},
{
"task_key": "task-..."
},
{
"task_key": "task-100"
}
]
},
"next_page_token": "Z29...E="
}
Om du vill hämta nästa set resultat setpage_token
frågeparametern i nästa begäran till värdet som returneras i fältet next_page_token
. Till exempel /api/2.2/jobs/get?job_id=11223344&page_token=Z29...E=
.
Om inga fler resultat är tillgängliga inkluderas inte fältet next_page_token
i svaret.
Följande avsnitt innehåller mer information om uppdateringar av var och en av list
och get
begäranden.
Ändringar i List jobs
- och List job runs
-begäranden
För List jobb och List jobb körs begäranden tas has_more
parametern på rotnivån för svarsobjektet bort. Använd i stället förekomsten av next_page_token
för att avgöra om fler resultat är tillgängliga. Annars förblir funktionerna för att sidnumrera resultat oförändrade.
För att förhindra stora svarsinnehåll utelämnas de översta tasks
- och job_clusters
-matriserna för varje jobb standardmässigt från svaren. Om du vill inkludera dessa matriser för varje jobb som ingår i svarstexten för dessa begäranden lägger du till parametern expand_tasks=true
i begäran. När expand_tasks
är aktiverat returneras högst 100 element i matriserna tasks
och job_clusters
. Om någon av dessa matriser har fler än 100 element, tilldelas ett has_more
-fält (som inte ska förväxlas med has_more
-fältet på rotnivå som tas bort) i job
-objektet värdet set till true.
. Dock är endast de första 100 elementen tillgängliga. Du kan inte hämta ytterligare uppgifter eller kluster efter de första 100 med List jobb begäran. Om du vill hämta fler element använder du förfrågningar som returnerar ett enda jobb eller en enda jobbexekvering. De uppdateringar som stöder sidnumrering av stora svarsfält beskrivs i följande avsnitt.
Get ett enda jobb
I Jobb-API 2.2 stöder Get ett enda jobb begäran om att hämta information om ett enda jobb nu sidnumrering av fälten tasks
och job_clusters
när storleken på något av fälten överskrider 100 element. Använd fältet next_page_token
i objektroten för att avgöra om fler resultat är tillgängliga. Värdet för det här fältet används sedan som värde för page_token
frågeparameter i efterföljande begäranden. Matrisfält med färre än 100 element på en sida kommer att vara tomma på efterföljande sidor.
Get en enda körning
I Jobb-API 2.2 stöder Get en enskild körning begäran om att hämta information om en enskild körning nu sidnumrering av fälten tasks
och job_clusters
när storleken på något av fälten överskrider 100 element. Använd fältet next_page_token
i objektroten för att avgöra om fler resultat är tillgängliga. Värdet för det här fältet används sedan som värde för page_token frågeparametern i efterföljande begäranden. Matrisfält med färre än 100 element på en sida kommer att vara tomma på efterföljande sidor.
Jobb-API 2.2 lägger också till frågeparametern only_latest
till den här slutpunkten för att endast visa de senaste körningsförsöken i arrayen tasks
. När parametern only_latest
är true
utelämnas alla körningar som ersätts av ett nytt försök eller en reparation från svaret.
När run_id
refererar till en ForEach
uppgiftsutförande finns ett fält med namnet iterations
i svaret. Fältet iterations
är en matris som innehåller information om alla körningar av den ForEach
aktivitetens kapslade uppgift och har följande egenskaper:
-
schema för varje objekt i matrisen
iterations
är samma som objekten itasks
matrisen. - Om frågeparametern
only_latest
är set tilltrue
inkluderas endast de senaste körningsförsöken i matriseniterations
. - Sidnumrering tillämpas på matrisen
iterations
i stället för dentasks
matrisen. - Matrisen
tasks
är fortfarande en del av svaret och innehåller körning av uppgiftenForEach
.
För att lära dig mer om ForEach
-aktiviteten, se ForEach-aktivitetens dokumentation.
Se till exempel följande svar för en ForEach
uppgift med vissa fält utelämnade:
{
"job_id": 53,
"run_id": 759600,
"number_in_job": 7,
"original_attempt_run_id": 759600,
"state": {
"life_cycle_state": "TERMINATED",
"result_state": "SUCCESS",
"state_message": ""
},
"cluster_spec": {},
"start_time": 1595943854860,
"setup_duration": 0,
"execution_duration": 0,
"cleanup_duration": 0,
"trigger": "ONE_TIME",
"creator_user_name": "user@databricks.com",
"run_name": "process_all_numbers",
"run_type": "JOB_RUN",
"tasks": [
{
"run_id": 759600,
"task_key": "process_all_numbers",
"description": "Process all numbers",
"for_each_task": {
"inputs": "[ 1, 2, ..., 101 ]",
"concurrency": 10,
"task": {
"task_key": "process_number_iteration"
"notebook_task": {
"notebook_path": "/Users/user@databricks.com/process_single_number",
"base_parameters": {
"number": "{{input}}"
}
}
},
"stats": {
"task_run_stats": {
"total_iterations": 101,
"scheduled_iterations": 101,
"active_iterations": 0,
"failed_iterations": 0,
"succeeded_iterations": 101,
"completed_iterations": 101
}
}
}
"state": {
"life_cycle_state": "TERMINATED",
"result_state": "SUCCESS",
"state_message": ""
}
}
],
"iterations": [
{
"run_id": 759601,
"task_key": "process_number_iteration",
"notebook_task": {
"notebook_path": "/Users/user@databricks.com/process_single_number",
"base_parameters": {
"number": "{{input}}"
}
},
"state": {
"life_cycle_state": "TERMINATED",
"result_state": "SUCCESS",
"state_message": ""
}
},
{
"run_id": 759602,
"task_key": "process_number_iteration",
"notebook_task": {
"notebook_path": "/Users/user@databricks.com/process_single_number",
"base_parameters": {
"number": "{{input}}"
}
},
"state": {
"life_cycle_state": "TERMINATED",
"result_state": "SUCCESS",
"state_message": ""
}
}
],
"format": "MULTI_TASK",
"next_page_token": "eyJ..x9"
}