작업 만들기 및 관리 자동화
이 문서에서는 개발자 도구를 시작하여 작업 만들기 및 관리를 자동화하는 방법을 보여줍니다. Databricks CLI, Databricks SDK 및 REST API를 소개합니다.
메모
이 문서에서는 이러한 도구를 쉽게 소개하기 위해 Databricks CLI, Databricks Python SDK 및 REST API를 사용하여 작업을 만들고 관리하는 예제를 제공합니다. CI/CD의 일부로 프로그래밍 방식으로 작업을 관리하려면 DAB(Databricks Asset Bundles) 또는 Databricks Terraform 공급자사용합니다.
도구 비교
다음 표에서는 프로그래밍 방식으로 작업을 만들고 관리하기 위한 Databricks CLI, Databricks SDK 및 REST API를 비교합니다. 사용 가능한 모든 개발자 도구에 대해 알아보려면 로컬 개발 도구참조하세요.
도구 | 묘사 |
---|---|
Databricks CLI | REST API를 래핑하는 DATAbricks CLI(명령줄 인터페이스)를 사용하여 Databricks 기능에 액세스합니다. 실험, 셸 스크립팅 및 REST API 직접 호출과 같은 일회성 작업에 CLI 사용 |
Databricks SDKs | Python, Java, Go 또는 R에 사용할 수 있는 Databricks SDK를 사용하여 애플리케이션을 개발하고 사용자 지정 Databricks 워크플로를 만듭니다. curl 또는 Postman을 사용하여 REST API 호출을 직접 보내는 대신 SDK를 사용하여 Databricks와 상호 작용할 수 있습니다. |
Databricks REST API | 위의 옵션이 특정 사용 사례에 대해 작동하지 않는 경우 Databricks REST API를 직접 사용할 수 있습니다. 선호하는 프로그래밍 언어의 SDK를 현재 사용할 수 없는 프로세스 자동화와 같은 사용 사례에 REST API를 직접 사용합니다. |
Databricks CLI를 시작하기
Databricks CLI에 대한 인증을 설치하고 구성하려면 Databricks CLI 및 Databricks CLI 대한인증 설치 또는 업데이트 참조하세요.
Databricks CLI에는 하위 명령도 포함할 수 있는 관련 명령 집합이 포함된 작업용 명령 그룹을 포함하여 Databricks 기능에 대한 명령 그룹이 있습니다.
jobs
명령 그룹을 사용하면 create
, delete
및 get
같은 작업을 사용하여 작업 및 작업 실행을 관리할 수 있습니다. CLI는 Databricks REST API를 래핑하므로 대부분의 CLI 명령은 REST API 요청에 매핑됩니다. 예를 들어 databricks jobs get
는 GET/api/2.2/jobs/get
로 매핑됩니다.
작업 명령 그룹, 개별 명령 또는 하위 명령에 대한 자세한 사용 및 구문 정보를 출력하려면 h
플래그를 사용합니다.
databricks jobs -h
databricks jobs <command-name> -h
databricks jobs <command-name> <subcommand-name> -h
예: CLI를 사용하여 Databricks 작업 검색
작업 영역에서 개별 작업에 대한 정보를 인쇄하려면 다음 명령을 실행합니다.
$ databricks jobs get <job-id>
databricks jobs get 478701692316314
이 명령은 JSON을 반환합니다.
{
"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": {}
}
}
예: CLI를 사용하여 Databricks 작업 만들기
다음 예제에서는 Databricks CLI를 사용하여 Databricks 작업을 만듭니다. 이 작업에는 지정된 Notebook을 실행하는 단일 작업 태스크가 포함됩니다. 이 Notebook은 특정 버전의 wheel
PyPI 패키지에 종속됩니다. 이 작업을 실행하기 위해 작업은 PYSPARK_PYTHON
환경 변수를 내보내는 클러스터를 일시적으로 만듭니다. 작업이 실행되면 클러스터가 종료됩니다.
다음 JSON을 복사하여 파일에 붙여넣습니다. 작업 페이지 UI에서 보기 JSON 옵션을 선택하여 기존 작업의 JSON 형식에 액세스할 수 있습니다.
{ "name": "My hello notebook job", "tasks": [ { "task_key": "my_hello_notebook_task", "notebook_task": { "notebook_path": "/Workspace/Users/someone@example.com/hello", "source": "WORKSPACE" } } ] }
<file-path>
방금 만든 파일의 경로와 이름으로 바꿔서 다음 명령을 실행합니다.databricks jobs create --json @<file-path>
Databricks SDK 시작
Databricks는 Python, Java 및 Go와 같은 인기 있는 프로그래밍 언어를 사용하여 작업을 자동화할 수 있는 SDK를 제공합니다. 이 섹션에서는 Python SDK를 사용하여 Databricks 작업을 만들고 관리하는 방법을 보여 줍니다.
Databricks Notebook 또는 로컬 개발 컴퓨터에서 Databricks SDK를 사용할 수 있습니다. 로컬 개발 머신을 사용하는 경우, 먼저 Python용 Databricks SDK 시작하기 을 완료해야 합니다.
메모
Databricks Notebook에서 개발하고 Databricks Runtime 12.2 LTS 이하를 사용하는 클러스터를 사용하는 경우 먼저 Python용 Databricks SDK를 설치해야 합니다. Python용 Databricks SDK설치 또는 업그레이드를 참조하세요.
예: Python SDK를 사용하여 Databricks 작업 만들기
다음 예제 Notebook 코드는 기존 Notebook을 실행하는 Databricks 작업을 만듭니다. 프롬프트를 사용하여 기존 Notebook의 경로 및 관련 작업 설정을 검색합니다.
먼저 올바른 버전의 SDK가 설치되어 있는지 확인합니다.
%pip install --upgrade databricks-sdk==0.40.0
%restart_python
다음으로 Notebook 작업을 사용하여 작업을 만들려면 다음을 실행하여 프롬프트에 응답합니다.
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")
Databricks REST API 시작
메모
Databricks는 해당 Databricks SDK가 없는 프로그래밍 언어를 사용하지 않는 한 Databricks CLI 및 Databricks SDK사용하는 것이 좋습니다.
다음 예제에서는 Databricks REST API에 단일 작업에 대한 세부 정보를 검색하도록 요청합니다.
DATABRICKS_HOST
수행에 설명된 대로 DATABRICKS_TOKEN
및 환경 변수가 설정되었다고 가정합니다.
$ curl --request GET "https://${DATABRICKS_HOST}/api/2.2/jobs/get" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--data '{ "job": "11223344" }'
Databricks REST API 사용에 대한 자세한 내용은 Databricks REST API 참조 설명서를 참조하세요.
정리하기
방금 만든 작업을 삭제하려면 Databricks CLI에서 databricks jobs delete <job-id>
실행하거나 Databricks 작업 영역 UI에서 직접 작업을 삭제합니다.
다음 단계
- Databricks CLI에 대한 자세한 내용은 Databricks CLI란?을 참조하세요. 및 Databricks CLI 명령은 다른 명령 그룹에 대해 알아볼 있습니다.
- Azure Databricks에서 SDK를 사용하는 방법에 대해 더 알고 싶다면 Databricks SDK를 참조하세요.
- Databricks를 사용하는 CI/CD에 대한 자세한 내용은 Databricks 자산 번들 Databricks Terraform 공급자 및 Databricks용 Terraform CDKTF 참조하세요.
- 모든 개발자 도구에 대한 포괄적인 개요는 로컬 개발 도구참조하세요.