Feladatlétrehozás és -kezelés automatizálása
Ez a cikk bemutatja, hogyan kezdheti el a fejlesztői eszközöket a feladatok létrehozásának és kezelésének automatizálásához. Bemutatja a Databricks parancssori felületét, a Databricks SDK-jait és a REST API-t.
Jegyzet
Ez a cikk példákat tartalmaz a databricks parancssori felület, a Databricks Python SDK és a REST API használatával történő feladatok létrehozására és kezelésére ezen eszközök egyszerű bemutatásaként. A CI/CD részeként a feladatok programozott kezeléséhez használja a Databricks Asset Bundles (DABs) vagy a Databricks Terraform provider.
Eszközök összehasonlítása
Az alábbi táblázat összehasonlítja a Databricks parancssori felületét, a Databricks SDK-jait és a REST API-t a feladatok programozott létrehozásához és kezeléséhez. Az összes elérhető fejlesztői eszközről további információt Helyi fejlesztési eszközökcímű témakörben talál.
Eszköz | Leírás |
---|---|
Databricks CLI | A Databricks funkcióit a Databricks parancssori felületével érheti el, amely a REST API-t burkolja. Használja a parancssori felületet olyan egyszeri feladatokhoz, mint a kísérletezés, a rendszerhéj-szkriptelés és a REST API közvetlen meghívása |
Databricks SDK-k | Alkalmazások fejlesztése és egyéni Databricks-munkafolyamatok létrehozása a Pythonhoz, Java-hoz, Go-hoz vagy R-hez elérhető Databricks SDK-val. Ahelyett, hogy közvetlenül a Curl vagy a Postman használatával küldene REST API-hívásokat, SDK-val is kommunikálhat a Databricks szolgáltatással. |
Databricks REST API | Ha a fenti beállítások egyike sem működik az adott használati esethez, közvetlenül használhatja a Databricks REST API-t. Használja közvetlenül a REST API-t olyan használati esetekhez, mint például az olyan folyamatok automatizálása, amelyeknél jelenleg nem érhető el SDK az előnyben részesített programozási nyelven. |
Ismerkedés a Databricks parancssori felületével
A Databricks parancssori felület hitelesítésének telepítéséhez és konfigurálásához lásd az alábbiakat: A Databricks parancssori felület telepítése vagy frissítése és Hitelesítés a Databricks parancssori felülethez.
A Databricks parancssori felületének parancscsoportjai vannak a Databricks-funkciókhoz, köztük egy feladathoz, amelyek kapcsolódó parancsokat tartalmaznak, amelyek alparancsokat is tartalmazhatnak. A jobs
parancscsoport lehetővé teszi a feladatok és feladatok futtatásának kezelését olyan műveletekkel, mint create
, delete
és get
. Mivel a parancssori felület a Databricks REST API-t burkolja, a legtöbb CLI-parancs REST API-kérésre van leképezve. Például databricks jobs get
hozzárendelődik GET/api/2.2/jobs/get
-hez.
Ha részletesebb használati és szintaxisadatokat szeretne kiadni a feladatok parancscsoportja, egy egyéni parancs vagy alparancs számára, használja a h
jelzőt:
databricks jobs -h
databricks jobs <command-name> -h
databricks jobs <command-name> <subcommand-name> -h
Példa: Databricks-feladat lekérése a parancssori felület használatával
A munkaterületen lévő egyes feladatokra vonatkozó információk nyomtatásához futtassa a következő parancsot:
$ databricks jobs get <job-id>
databricks jobs get 478701692316314
Ez a parancs jSON-t ad vissza:
{
"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": {}
}
}
Példa: Databricks-feladat létrehozása a parancssori felület használatával
Az alábbi példa a Databricks parancssori felületét használja egy Databricks-feladat létrehozásához. Ez a feladat egyetlen feladatfeladatot tartalmaz, amely a megadott jegyzetfüzetet futtatja. Ez a jegyzetfüzet a wheel
PyPI-csomag egy adott verziójától függ. A feladat futtatásához a feladat ideiglenesen létrehoz egy fürtöt, amely exportál egy PYSPARK_PYTHON
nevű környezeti változót. A feladat futtatása után a klaszter megszűnik.
Másolja és illessze be a következő JSON-t egy fájlba. A meglévő feladatok JSON-formátumát a feladatlap felhasználói felületén a JSON megtekintése lehetőség kiválasztásával érheti el.
{ "name": "My hello notebook job", "tasks": [ { "task_key": "my_hello_notebook_task", "notebook_task": { "notebook_path": "/Workspace/Users/someone@example.com/hello", "source": "WORKSPACE" } } ] }
Futtassa a következő parancsot úgy, hogy a
<file-path>
-t lecseréli az imént létrehozott fájl elérési útjára és nevére.databricks jobs create --json @<file-path>
A Databricks SDK használatának első lépései
A Databricks olyan SDK-kat biztosít, amelyek lehetővé teszik a műveletek automatizálását olyan népszerű programozási nyelvek használatával, mint a Python, a Java és a Go. Ez a szakasz bemutatja, hogyan kezdheti el használni a Python SDK-t Databricks-feladatok létrehozásához és kezeléséhez.
A Databricks SDK-t a Databricks-jegyzetfüzetből vagy a helyi fejlesztőgépről is használhatja. Ha helyi fejlesztőgépet használ, először végezze el a Ismerkedés a Pythonhoz készült Databricks SDK-val.
Jegyzet
Ha egy Databricks-jegyzetfüzetből fejleszt, és egy olyan fürtöt használ, amely a Databricks Runtime 12.2 LTS-t futtat, először telepítenie kell a Pythonhoz készült Databricks SDK-t. Lásd: A Databricks SDK telepítése vagy frissítése Python-.
Példa: Databricks-feladat létrehozása a Python SDK használatával
Az alábbi példajegyzetfüzetkód létrehoz egy Databricks-feladatot, amely egy meglévő jegyzetfüzetet futtat. Lekéri a meglévő jegyzetfüzet elérési útját és a kapcsolódó feladatbeállításokat a jelzésekkel együtt.
Először győződjön meg arról, hogy az SDK megfelelő verziója telepítve van:
%pip install --upgrade databricks-sdk==0.40.0
%restart_python
Ezután egy jegyzetfüzet-feladattal rendelkező feladat létrehozásához futtassa a következőt, válaszolva a kérdésekre:
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")
A Databricks REST API használatának első lépései
Jegyzet
A Databricks a Databricks CLI és egy Databricks SDKhasználatát javasolja, kivéve, ha olyan programozási nyelvet használ, amely nem rendelkezik megfelelő Databricks SDK-val.
Az alábbi példa kérést intéz a Databricks REST API-hoz, hogy egyetlen feladat adatait kérje le. Feltételezi, hogy a DATABRICKS_HOST
és DATABRICKS_TOKEN
környezeti változók a Azure Databricks személyes hozzáférési jogkivonat-hitelesítésirészben meghatározottak szerint lettek beállítva.
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data '{ "job": "11223344" }'
A Databricks REST API használatáról lásd a Databricks REST API referenciadokumentációt.
Kitakarít
Az imént létrehozott feladatok törléséhez futtassa databricks jobs delete <job-id>
a Databricks parancssori felületéről, vagy törölje a feladatot közvetlenül a Databricks-munkaterület felhasználói felületéről.
Következő lépések
- A Databricks parancssori felületével kapcsolatos további információkért lásd Mi a Databricks parancssori felület? és Databricks CLI-parancsok a többi parancscsoport megismeréséhez.
- Az Databricks SDK-ról további információért lásd a következőt: SDK-k használata az Azure Databricks.
- A Databricks CI/CD-ről további információt a következő forrásokban talál: Databricks Asset Bundles, Databricks Terraform provider, és Terraform CDKTF a Databrickshez.
- Az összes fejlesztői eszköz átfogó áttekintését Helyi fejlesztési eszközökcímű témakörben talál.