Megosztás a következőn keresztül:


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_PYTHONnevű környezeti változót. A feladat futtatása után a klaszter megszűnik.

  1. 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"
        }
        }
    ]
    }
    
  2. 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