이 문서에서는 개발자 도구를 시작하여 작업 만들기 및 관리를 자동화하는 방법을 보여줍니다. Databricks CLI, Databricks SDK 및 REST API를 소개합니다.
메모
이 문서에서는 이러한 도구를 쉽게 소개하기 위해 Databricks CLI, Databricks Python SDK 및 REST API를 사용하여 작업을 만들고 관리하는 예제를 제공합니다. CI/CD의 일부로 프로그래밍 방식으로 작업을 관리하려면 Databricks Asset Bundles 또는 Databricks Terraform 공급자사용합니다.
도구 비교
다음 표에서는 프로그래밍 방식으로 작업을 만들고 관리하기 위한 Databricks CLI, Databricks SDK 및 REST API를 비교합니다. 사용 가능한 모든 개발자 도구에 대해 알아보려면 로컬 개발 도구참조하세요.
| 도구 | 묘사 |
|---|---|
| Databricks CLI | REST API를 래핑하는 DATAbricks CLI(명령줄 인터페이스)를 사용하여 Databricks 기능에 액세스합니다. 실험, 셸 스크립팅 및 REST API 직접 호출과 같은 일회성 작업에 CLI 사용 |
| Databricks SDK | 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 -hdatabricks jobs <command-name> -hdatabricks jobs <command-name> <subcommand-name> -h
예: CLI를 사용하여 작업 검색
작업 영역에서 개별 작업에 대한 정보를 인쇄하려면 다음 명령을 실행합니다.
$ 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 CLI를 사용하여 작업을 만듭니다. 이 작업에는 지정된 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를 사용하여 작업 만들기
다음 예제 Notebook 코드는 기존 Notebook을 실행하는 작업을 만듭니다. 프롬프트를 사용하여 기존 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 작업 영역에서 작업의 JSON, YAML 또는 Python 표현을 볼 수 있습니다.
Azure Databricks 작업 영역의 사이드바에서 작업 및 파이프라인을 클릭하고 작업을 선택합니다.
지금 실행 단추의 왼쪽에 있는 케밥을 클릭한 다음 코드로 보기를 클릭합니다.
YAML, Python 또는 JSON을 클릭하여 해당 언어의 코드로 작업을 봅니다.
- YAML의 경우 복사를 클릭한 다음, 코드를 Databricks 자산 번들 구성
*.yaml파일에 직접 붙여넣어 기존 작업을 번들에 포함합니다. 편집을 클릭하여 UI 대신 YAML에서 작업의 구성을 수정할 수도 있습니다. - Python의 경우 Databricks SDK 또는 Databricks 자산 번들을 선택한 다음 복사를 클릭합니다.
- SDK용 Python 코드를 사용하여 Notebook에서 작업을 만들거나 Databricks Python SDK를 사용할 때 로컬로 작업을 만들 수 있습니다. Python SDK를 사용하여 작업 만들기를 참조하세요.
- 번들에 대한 Python 코드를 사용하여 Python을 사용하여 번들에 작업을 포함할 수 있습니다. Python의 번들 구성을 참조하세요.
- JSON의 경우 복사 를 클릭하고 코드를 사용하여 Databricks CLI, DatabricksSDK 또는 DatabricksREST API를 사용하여 작업을 만들거나 업데이트하거나 가져옵니다.
- YAML의 경우 복사를 클릭한 다음, 코드를 Databricks 자산 번들 구성
정리하기
방금 만든 작업을 삭제하려면 Databricks CLI에서 databricks jobs delete <job-id> 실행하거나 Databricks 작업 영역 UI에서 직접 작업을 삭제합니다.
다음 단계
- Databricks CLI에 대한 자세한 내용은 Databricks CLI란?을 참조하세요. 및 Databricks CLI 명령은 다른 명령 그룹에 대해 알아볼 있습니다.
- Databricks SDK에 대한 자세한 내용은 Azure Databricks SDK를 참조하세요.
- Databricks를 사용한 CI/CD에 대해 자세히 알아보려면 Databricks 자산 번들, Databricks Terraform 공급자, 및 Databricks용 Terraform CDKTF를 참조하세요.
- 모든 개발자 도구에 대한 포괄적인 개요는 로컬 개발 도구참조하세요.