다음을 통해 공유


작업 만들기 및 관리 자동화

이 문서에서는 개발자 도구를 시작하여 작업 만들기 및 관리를 자동화하는 방법을 보여줍니다. 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, deleteget같은 작업을 사용하여 작업 및 작업 실행을 관리할 수 있습니다. CLI는 Databricks REST API를 래핑하므로 대부분의 CLI 명령은 REST API 요청에 매핑됩니다. 예를 들어 databricks jobs getGET/api/2.2/jobs/get로 매핑됩니다.

작업 명령 그룹, 개별 명령 또는 하위 명령에 대한 자세한 사용 및 구문 정보를 출력하려면 h 플래그를 사용합니다.

  • databricks jobs -h
  • databricks jobs <command-name> -h
  • databricks 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환경 변수를 내보내는 클러스터를 일시적으로 만듭니다. 작업이 실행되면 클러스터가 종료됩니다.

  1. 다음 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"
          }
        }
      ]
    }
    
  2. <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 CLIDatabricks SDK사용하는 것이 좋습니다.

다음 예제에서는 Databricks REST API에 단일 작업에 대한 세부 정보를 검색하도록 요청합니다. DATABRICKS_HOSTDATABRICKS_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 표현을 볼 수 있습니다.

  1. Azure Databricks 작업 영역의 사이드바에서 작업 및 파이프라인을 클릭하고 작업을 선택합니다.

  2. 지금 실행 단추의 왼쪽에 있는 케밥을 클릭한 다음 코드로 보기를 클릭합니다.

    코드 메뉴 항목으로 보기

  3. YAML, Python 또는 JSON을 클릭하여 해당 언어의 코드로 작업을 봅니다.

정리하기

방금 만든 작업을 삭제하려면 Databricks CLI에서 databricks jobs delete <job-id> 실행하거나 Databricks 작업 영역 UI에서 직접 작업을 삭제합니다.

다음 단계