Stack CLI(레거시)

Important

이 설명서는 사용 중지되었으며 업데이트되지 않을 수 있습니다.

이 정보는 레거시 Databricks CLI 버전 0.18 이하에 적용됩니다. Databricks는 최신 Databricks CLI 버전 0.205 이상을 대신 사용하는 것이 좋습니다. Databricks CLI란?을 참조하세요. Databricks CLI 버전을 찾으려면 다음을 실행 databricks -v합니다.

Databricks CLI 버전 0.18 이하에서 Databricks CLI 버전 0.205 이상으로 마이그레이션하려면 Databricks CLI 마이그레이션을 참조하세요.

Databricks CLI 버전 0.205 이상은 스택 CLI를 지원하지 않습니다. Databricks는 Databricks Terraform 공급자대신 사용하는 것이 좋습니다.

참고 항목

스택 CLI에는 Databricks CLI 0.8.3 이상이 필요합니다.

스택 CLI는 작업, Notebook 및 DBFS 파일과 같은 Azure Databricks 리소스 스택을 관리하는 방법을 제공합니다. Notebook 및 DBFS 파일을 로컬로 저장하고, Notebook을 실행하는 작업의 구성과 함께 로컬 파일에서 Azure Databricks 작업 영역의 경로로의 매핑을 정의하는 스택 구성 JSON 템플릿을 만들 수 있습니다.

스택 구성 JSON 템플릿과 함께 스택 CLI를 사용하여 스택을 배포하고 관리할 수 있습니다.

Databricks 스택 CLI 하위 명령을 databricks stack에 추가하여 실행합니다.

databricks stack --help
Usage: databricks stack [OPTIONS] COMMAND [ARGS]...

  [Beta] Utility to deploy and download Databricks resource stacks.

Options:
  -v, --version   [VERSION]
  --debug         Debug Mode. Shows full stack trace on error.
  --profile TEXT  CLI connection profile to use. The default profile is
                  "DEFAULT".
  -h, --help      Show this message and exit.

Commands:
  deploy    Deploy a stack of resources given a JSON configuration of the stack
    Usage: databricks stack deploy [OPTIONS] CONFIG_PATH
    Options:
       -o, --overwrite  Include to overwrite existing workspace notebooks and DBFS
                        files  [default: False]
  download  Download workspace notebooks of a stack to the local filesystem
            given a JSON stack configuration template.
    Usage: databricks stack download [OPTIONS] CONFIG_PATH
    Options:
       -o, --overwrite  Include to overwrite existing workspace notebooks in the
                        local filesystem   [default: False]

작업 영역에 스택 배포

이 하위 명령은 스택을 배포합니다. 스택 설정을 참조하여 스택을 설정하는 방법을 알아봅니다.

databricks stack deploy ./config.json

스택 구성 JSON 템플릿config.json의 예제를 제공합니다.

스택 Notebook 변경 내용 다운로드

이 하위 명령은 스택의 Notebook을 다운로드합니다.

databricks stack download ./config.json

예제

스택 설정

예제 스택의 파일 구조

tree
.
├── notebooks
|   ├── common
|   |   └── notebook.scala
|   └── config
|       ├── environment.scala
|       └── setup.sql
├── lib
|   └── library.jar
└── config.json

이 예제 스택에는 notebooks/config 폴더의 구성 Notebook과 함께 notebooks/common/notebook.scala의 기본 Notebook이 포함되어 있습니다. lib/library.jar에 스택의 JAR 라이브러리 종속성이 있습니다. config.json은 스택의 스택 구성 JSON 템플릿입니다. 스택 배포를 위해 스택 CLI에 전달되는 것입니다.

스택 구성 JSON 템플릿

스택 구성 템플릿은 스택 구성을 설명합니다.

cat config.json
{
  "name": "example-stack",
  "resources": [
  {
    "id": "example-workspace-notebook",
    "service": "workspace",
    "properties": {
      "source_path": "notebooks/common/notebook.scala",
      "path": "/Users/example@example.com/dev/notebook",
      "object_type": "NOTEBOOK"
    }
  },
  {
    "id": "example-workspace-config-dir",
    "service": "workspace",
    "properties": {
      "source_path": "notebooks/config",
      "path": "/Users/example@example.com/dev/config",
      "object_type": "DIRECTORY"
    }
  },
  {
    "id": "example-dbfs-library",
    "service": "dbfs",
    "properties": {
      "source_path": "lib/library.jar",
      "path": "dbfs:/tmp/lib/library.jar",
      "is_dir": false
    }
  },
    {
      "id": "example-job",
      "service": "jobs",
      "properties": {
        "name": "Example Stack CLI Job",
        "new_cluster": {
          "spark_version": "7.3.x-scala2.12",
          "node_type_id": "Standard_DS3_v2",
          "num_workers": 3
        },
        "timeout_seconds": 7200,
        "max_retries": 1,
        "notebook_task": {
          "notebook_path": "/Users/example@example.com/dev/notebook"
        },
        "libraries": [
          {
            "jar": "dbfs:/tmp/lib/library.jar"
          }
        ]
      }
    }
  ]
}

각 작업, 작업 영역 Notebook, 작업 영역 디렉터리, DBFS 파일 또는 DBFS 디렉터리가 ResourceConfig로 정의됩니다. 작업 영역 또는 DBFS 자산을 나타내는 각 ResourceConfig 자산에는 로컬(source_path)에 있는 파일 또는 디렉터리에서 작업 영역 또는 DBFS(path)에 있는 위치로의 매핑이 포함됩니다.

스택 구성 템플릿 스키마는 스택 구성 템플릿에 대한 스키마를 간략하게 설명합니다.

스택 배포

databricks stack deploy <configuration-file> 명령을 사용하여 스택을 배포합니다.

databricks stack deploy ./config.json

스택 배포 중에 DBFS 및 작업 영역 자산이 Azure Databricks 작업 영역에 업로드되고 작업이 만들어집니다.

스택 배포 시 배포에 대한 StackStatus JSON 파일은 이름이 있는 스택 구성 템플릿과 동일한 디렉터리에 저장되며 .json 확장명 바로 앞에 deployed가 즉시 추가됩니다(예: ./config.deployed.json). 이 파일은 Stack CLI에서 작업 영역에서 배포된 과거 리소스를 추적하는 데 사용됩니다.

스택 상태 스키마는 스택 구성의 스키마를 간략하게 설명합니다.

Important

스택 상태 파일을 편집하거나 이동하지 마세요. 스택 상태 파일에 대한 오류가 발생하면 파일을 삭제하고 배포를 다시 시도하세요.

./config.deployed.json
{
  "cli_version": "0.8.3",
  "deployed_output": [
    {
      "id": "example-workspace-notebook",
      "databricks_id": {
        "path": "/Users/example@example.com/dev/notebook"
      },
      "service": "workspace"
    },
    {
      "id": "example-workspace-config-dir",
      "databricks_id": {
        "path": "/Users/example@example.com/dev/config"
      },
      "service": "workspace"
    },
    {
      "id": "example-dbfs-library",
      "databricks_id": {
        "path": "dbfs:/tmp/lib/library.jar"
      },
      "service": "dbfs"
    },
    {
      "id": "example-job",
      "databricks_id": {
        "job_id": 123456
      },
      "service": "jobs"
    }
  ],
  "name": "example-stack"
}

데이터 구조체

이 섹션의 내용:

스택 구성 템플릿 스키마

StackConfig

스택 구성 템플릿의 외부 필드가 있습니다. 모든 필드는 필수입니다.

필드 이름 Type Description
name STRING 스택의 이름입니다.
리소스 ResourceConfig 목록 Azure Databricks의 자산입니다. 리소스는 작업 영역, 작업 및 dbfs의 세 가지 서비스(REST API 네임스페이스)와 관련이 있습니다.

ResourceConfig

ResourceConfig에 대한 필드입니다. 모든 필드는 필수입니다.

필드 이름 Type 설명
id STRING 리소스에 대한 고유 ID입니다. ResourceConfig의 고유성이 적용됩니다.
서비스 ResourceService 리소스가 작동하는 REST API 서비스입니다. 다음 jobs,
workspace 또는 dbfs입니다.
속성 ResourceProperties 이 필드의 필드는 ResourceConfig 서비스에 따라 다릅니다.

ResourceProperties

ResourceService별 리소스의 속성입니다. 필드는 Azure Databricks REST API에서 사용되거나 사용되지 않는 필드로 분류됩니다. 나열된 모든 필드가 필요합니다.

서비스 Stack CLI에 사용되는 REST API의 필드 Stack CLI에서만 사용되는 필드
작업 영역 path: STRING- Notebook 또는 디렉터리 원격 작업 영역 경로입니다. (예: /Users/example@example.com/notebook)

object_type: 작업 영역 API- Notebook 개체 형식입니다. NOTEBOOK 또는 DIRECTORY만 될 수 있습니다.
source_path: STRING- 작업 영역 Notebook 또는 디렉터리 로컬 원본 경로입니다. 스택 구성 템플릿 파일에 대한 상대 경로 또는 파일 시스템의 절대 경로입니다.
jobs 설정 또는 new_settings 구조체의 모든 필드입니다. 설정 또는 new_settings 구조체에 필요하지 않지만 스택 CLI에 필요한 유일한 필드는 다음과 같습니다.

name: STRING- 배포할 작업의 이름입니다. 중복 작업을 너무 많이 만들지 않기 위해 Stack CLI는 스택 배포 작업에 고유한 이름을 적용합니다.
없음
dbfs path: STRING- 원격 DBFS 경로와 일치합니다. dbfs:/로 시작해야 합니다. (예: dbfs:/this/is/a/sample/path)

is_dir: BOOL- DBFS 경로가 디렉터리인지 파일인지 여부입니다.
source_path: STRING- DBFS 파일 또는 디렉터리 로컬 원본 경로입니다. 스택 구성 템플릿 파일에 대한 상대 경로 또는 파일 시스템의 절대 경로입니다.

ResourceService

각 리소스는 Databricks REST API와 일치하는 특정 서비스에 속합니다. 이러한 서비스는 Stack CLI에서 지원됩니다.

서비스 설명
작업 영역 작업 영역 Notebook 또는 디렉터리입니다.
jobs Azure Databricks 작업입니다.
dbfs DBFS 파일 또는 디렉터리입니다.

스택 상태 스키마

StackStatus

스택 상태 파일은 CLI를 사용하여 스택을 배포한 후에 만들어집니다. 최상위 필드는 다음과 같습니다.

필드 이름 Type Description
name STRING 스택의 이름입니다. 이 필드는 StackConfig와 동일한 필드입니다.
cli_version STRING 스택을 배포하는 데 사용되는 Databricks CLI의 버전입니다.
deployed_resources ResourceStatus 목록 배포된 각 리소스의 상태입니다. StackConfig에 정의된 각 리소스에 대해 해당 ResourceStatus가 여기에 생성됩니다.

ResourceStatus

필드 이름 Type 설명
id STRING 리소스에 대한 스택 고유 ID입니다.
서비스 ResourceService 리소스가 작동하는 REST API 서비스입니다. 다음 jobs,
workspace 또는 dbfs입니다.
databricks_id DatabricksId 배포된 리소스의 실제 ID입니다. 실제 스키마는 리소스의 유형(서비스)에 따라 달라집니다.

DatabricksId

필드가 서비스에 따라 달라지는 JSON 개체입니다.

서비스 JSON의 필드 Type 설명
작업 영역 경로 STRING Azure Databricks 작업 영역에서 Notebook 또는 디렉터리의 절대 경로입니다. 명명은 작업 영역 API일치합니다.
jobs job_id STRING Azure Databricks 작업 영역에 표시된 작업 ID입니다. 이미 배포된 작업을 업데이트하는 데 사용할 수 있습니다.
dbfs 경로 STRING Azure Databricks 작업 영역에서 Notebook 또는 디렉터리의 절대 경로입니다. 명명은 DBFS API일치합니다.