다음을 통해 공유


작업 만들기 및 관리 자동화

이 문서에서는 개발자 도구를 시작하여 작업 만들기 및 관리를 자동화하는 방법을 보여줍니다. 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, 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 작업 검색

작업 영역에서 개별 작업에 대한 정보를 인쇄하려면 다음 명령을 실행합니다.

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

  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를 사용하여 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 CLIDatabricks 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에서 직접 작업을 삭제합니다.

다음 단계