스택 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와 일치합니다. |