Databricks CLI(레거시)

Important

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

Databricks는 레거시 Databricks CLI 버전 0.18 이하 대신 Databricks CLI 버전 0.205 이상을 사용하는 것이 좋습니다. Databricks CLI 버전 0.18 이하는 Databricks에서 지원되지 않습니다. Databricks CLI 버전 0.205 이상에 대한 자세한 내용은 Databricks CLI란?을 참조하세요.

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

레거시 Databricks CLI는 실험적 상태입니다. Databricks는 현재 레거시 Databricks CLI에 대한 새로운 기능 작업을 계획하지 않습니다.

레거시 Databricks CLI는 Databricks 지원 채널을 통해 지원되지 않습니다. 피드백을 제공하고, 질문하고, 문제를 보고하려면 GitHub의 Databricks 리포지토리에 대한 명령줄 인터페이스의 문제 탭을 사용합니다.

레거시 Databricks 명령줄 인터페이스(레거시 Databricks CLI라고도 함)는 터미널, 명령 프롬프트 또는 자동화 스크립트에서 Azure Databricks 플랫폼을 자동화하는 사용하기 쉬운 인터페이스를 제공하는 유틸리티입니다.

요구 사항

  • Python 3 - 3.6 이상
  • Python 2 - 2.7.9 이상

Important

macOS에서 기본 Python 2 설치는 TLSv1_2 프로토콜을 구현하지 않으며, 이 Python 설치를 사용하여 레거시 Databricks CLI를 실행하면 오류가 AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2'발생합니다. Homebrew를 사용하여 .가 있는 ssl.PROTOCOL_TLSv1_2Python 버전을 설치합니다.

제한 사항

방화벽 사용 스토리지 컨테이너와 함께 레거시 Databricks CLI를 사용하는 것은 지원되지 않습니다. Databricks는 Databricks 커넥트 또는 az storage를 사용하는 것이 좋습니다.

CLI 설정

이 섹션에서는 레거시 Databricks CLI를 설정하는 방법을 설명합니다.

CLI 설치 또는 업데이트

이 섹션에서는 레거시 Databricks CLI를 실행하도록 개발 머신을 설치하거나 업데이트하는 방법을 설명합니다.

CLI 설치

Python 설치에 적절한 버전을 pip 사용하여 실행 pip install databricks-cli 합니다.

pip install databricks-cli

CLI 업데이트

Python 설치에 적절한 버전을 pip 사용하여 실행 pip install databricks-cli --upgrade 합니다.

pip install databricks-cli --upgrade

현재 설치된 레거시 Databricks CLI의 버전을 나열하려면 다음을 실행 databricks --version합니다.

databricks --version

인증 설정

레거시 Databricks CLI 명령을 실행하려면 먼저 레거시 Databricks CLI와 Azure Databricks 간에 인증을 설정해야 합니다. 이 섹션에서는 레거시 Databricks CLI에 대한 인증을 설정하는 방법을 설명합니다.

레거시 Databricks CLI를 사용하여 인증하려면 Databricks 개인용 액세스 토큰 또는 Microsoft Entra ID(이전의 Azure Active Directory) 토큰을 사용할 수 있습니다.

참고 항목

보안 모범 사례로, 자동화된 도구, 시스템, 스크립트 및 앱을 사용하여 인증하는 경우 Databricks는 작업 영역 사용자 대신 서비스 주체에 속한 개인용 액세스 토큰을 사용하는 것이 좋습니다. 서비스 주체에 대한 토큰을 만들려면 서비스 주체에 대한 토큰 관리를 참조하세요.

Microsoft Entra ID(이전의 Azure Active Directory) 토큰을 사용하여 인증 설정

Microsoft Entra ID 토큰 을 사용하여 레거시 Databricks CLI를 구성하려면 Microsoft Entra ID(이전의 Azure Active Directory) 토큰 을 생성하고 환경 변수 DATABRICKS_AAD_TOKEN에 저장합니다.

다음 명령을 실행합니다.

databricks configure --aad-token

이 명령은 프롬프트를 실행합니다.

Databricks Host (should begin with https://):

작업 영역별 URL을 형식 https://adb-<workspace-id>.<random-number>.azuredatabricks.net으로 입력합니다. 작업 영역별 URL을 얻으려면 작업 영역별 URL을 참조하세요.

프롬프트를 완료하면 액세스 자격 증명이 Linux 또는 macOS %USERPROFILE%\.databrickscfg 또는 Windows의 파일에 ~/.databrickscfg 저장됩니다. 파일에는 기본 프로필 항목이 포함됩니다.

[DEFAULT]
host = <workspace-URL>
token = <Azure-AD-token>

.databrickscfg 파일이 이미 있는 경우 이 파일의 DEFAULT 구성 프로필을 새 데이터로 덮어씁니다. 다른 이름으로 구성 프로필을 만들려면 연결 프로필을 참조하세요.

Databricks 개인용 액세스 토큰을 사용하여 인증 설정

개인용 액세스 토큰을 사용하도록 레거시 Databricks CLI를 구성하려면 다음 명령을 실행합니다.

databricks configure --token

명령은 프롬프트를 실행하여 시작합니다.

Databricks Host (should begin with https://):

작업 영역별 URL을 형식 https://adb-<workspace-id>.<random-number>.azuredatabricks.net으로 입력합니다. 작업 영역별 URL을 얻으려면 작업 영역별 URL을 참조하세요.

명령은 개인용 액세스 토큰을 입력하라는 프롬프트를 실행하여 계속합니다.

Token:

프롬프트를 완료하면 액세스 자격 증명이 Linux 또는 macOS %USERPROFILE%\.databrickscfg 또는 Windows의 파일에 ~/.databrickscfg 저장됩니다. 파일에는 기본 프로필 항목이 포함됩니다.

[DEFAULT]
host = <workspace-URL>
token = <personal-access-token>

.databrickscfg 파일이 이미 있는 경우 이 파일의 DEFAULT 구성 프로필을 새 데이터로 덮어씁니다. 다른 이름으로 구성 프로필을 만들려면 연결 프로필을 참조하세요.

CLI 0.8.1 이상의 경우, 환경 변수 DATABRICKS_CONFIG_FILE을 설정하여 이 파일의 경로를 변경할 수 있습니다.

Linux 또는 macos
export DATABRICKS_CONFIG_FILE=<path-to-file>
Windows
setx DATABRICKS_CONFIG_FILE "<path-to-file>" /M

Important

CLI 0.17.2부터 CLI는 .netrc 파일에서 작동하지 않습니다. 다른 용도로 사용자 환경에 .netrc 파일을 가질 수 있지만 CLI는 해당 .netrc 파일을 사용하지 않습니다.

CLI 0.8.0 이상은 다음과 같은 Azure Databricks 환경 변수를 지원합니다.

  • DATABRICKS_HOST
  • DATABRICKS_TOKEN

환경 변수 설정은 구성 파일의 설정보다 우선적으로 적용됩니다.

인증 설정 테스트

인증을 올바르게 설정했는지 여부를 검사 위해 다음과 같은 명령을 실행할 수 있습니다.

databricks fs ls dbfs:/

성공하면 이 명령은 프로필과 연결된 DEFAULT 작업 영역의 DBFS 루트에 있는 파일 및 디렉터리를 나열합니다.

커넥트ion 프로필

레거시 Databricks CLI 구성은 여러 연결 프로필을 지원합니다. 동일한 레거시 Databricks CLI 설치를 사용하여 여러 Azure Databricks 작업 영역에서 API를 호출할 수 있습니다.

연결 프로필을 추가하려면 프로필의 고유한 이름을 지정합니다.

databricks configure [--token | --aad-token] --profile <profile-name>

파일에는 .databrickscfg 해당 프로필 항목이 포함됩니다.

[<profile-name>]
host = <workspace-URL>
token = <token>

연결 프로필을 사용하려면 다음을 수행합니다.

databricks <group> <command> --profile <profile-name>

--profile <profile-name>을 지정하지 않으면 기본 스키마가 사용됩니다. 기본 프로필을 찾을 수 없는 경우 기본 프로필로 CLI를 구성하라는 메시지가 표시됩니다.

연결 프로필 테스트

연결 프로필을 올바르게 설정했는지 여부를 검사 위해 연결 프로필 이름 중 하나를 사용하여 다음과 같은 명령을 실행할 수 있습니다.

databricks fs ls dbfs:/ --profile <profile-name>

성공하면 이 명령은 지정된 연결 프로필에 대한 작업 영역 의 DBFS 루트에 있는 파일 및 디렉터리를 나열합니다. 테스트하려는 각 연결 프로필에 대해 이 명령을 실행합니다.

사용 가능한 프로필을 보려면 파일을 참조하세요 .databrickscfg .

CLI 사용

이 섹션에서는 레거시 Databricks CLI 도움말을 얻고, 레거시 Databricks CLI 출력을 구문 분석하고, 각 명령 그룹에서 명령을 호출하는 방법을 보여 줍니다.

CLI 명령 그룹 도움말 표시

또는 -h 옵션을 사용하여 --help 명령 그룹에 대한 하위 명령을 나열합니다. 예를 들어 DBFS CLI 하위 명령을 나열하려면 다음을 수행합니다.

databricks fs -h

CLI 하위 명령 도움말 표시

또는 -h 옵션을 사용하여 하위 명령에 대한 도움말을 --help 나열합니다. 예를 들어 DBFS 복사 파일 하위 명령에 대한 도움말을 나열하려면 다음을 수행합니다.

databricks fs cp -h

별칭 명령 그룹

때로는 레거시 Databricks CLI와 같이 databricks workspace ls 명령 그룹의 이름으로 각 레거시 Databricks CLI 호출을 접두사로 지정하는 것이 불편할 수 있습니다. 레거시 Databricks CLI를 더 쉽게 사용할 수 있도록 명령 그룹을 더 짧은 명령에 별칭으로 지정할 수 있습니다. 예를 들어 Bourne에서 다시 셸로 dw ls 단축 databricks workspace ls 하려면 적절한 bash 프로필에 추가할 alias dw="databricks workspace" 수 있습니다. 일반적으로 이 파일은 ~/.bash_profile에 있습니다.

레거시 Databricks CLI는 이미 databricks fsdbfsdatabricks fs ls 에 별칭을 지정하며 dbfs ls 동일합니다.

CLI 출력 구문 분석에 사용 jq

일부 레거시 Databricks CLI 명령은 API 엔드포인트에서 JSON 응답을 출력합니다. 경우에 따라 JSON의 일부를 구문 분석하여 다른 명령으로 파이프하는 것이 유용할 수 있습니다. 예를 들어 작업 정의를 복사하려면 get job 명령의 필드를 가져와 settings 서 작업 만들기 명령의 인수로 사용해야 합니다. 이 경우 jq 유틸리티를 사용하는 것이 좋습니다.

예를 들어 다음 명령은 ID가 233인 작업의 설정을 출력합니다.

databricks jobs list --output JSON | jq '.jobs[] | select(.job_id == 233) | .settings'

출력

{
  "name": "Quickstart",
  "new_cluster": {
    "spark_version": "7.5.x-scala2.12",
    "spark_env_vars": {
      "PYSPARK_PYTHON": "/databricks/python3/bin/python3"
    },
    "num_workers": 8,
    ...
  },
  "email_notifications": {},
  "timeout_seconds": 0,
  "notebook_task": {
    "notebook_path": "/Quickstart"
  },
  "max_concurrent_runs": 1
}

또 다른 예로, 다음 명령은 작업 영역에서 사용 가능한 모든 클러스터의 이름과 ID만 출력합니다.

databricks clusters list --output JSON | jq '[ .clusters[] | { name: .cluster_name, id: .cluster_id } ]'

출력

[
  {
    "name": "My Cluster 1",
    "id": "1234-567890-grip123"
  },
  {
    "name": "My Cluster 2",
    "id": "2345-678901-patch234"
  }
]

예를 들어 Homebrew를 사용하거나 Windows에서 Chocolatey를 brew install jqchoco install jq사용하여 macOS에 설치 jq 할 수 있습니다. 자세한 jq내용은 jq Manual을 참조하세요.

JSON 문자열 매개 변수

문자열 매개 변수는 운영 체제에 따라 다르게 처리됩니다.

Linux 또는 macos

JSON 문자열 매개 변수를 작은따옴표로 묶어야 합니다. 예시:

'["20180505", "alantest"]'

Windows

JSON 문자열 매개 변수를 큰따옴표로 묶어야 하며, 문자열 내의 따옴표 문자 앞에는 \가 와야 합니다. 예시:

"[\"20180505\", \"alantest\"]"

문제 해결

다음 섹션에서는 레거시 Databricks CLI와 관련된 일반적인 문제를 해결하기 위한 팁을 제공합니다.

EOF 사용 databricks configure 이 작동하지 않음

Databricks CLI 0.12.0 이상의 경우 스크립트에서 파일 끝(EOF) 시퀀스를 사용하여 명령에 매개 변수를 databricks configure 전달하는 것은 작동하지 않습니다. 예를 들어 다음 스크립트는 Databricks CLI가 매개 변수를 무시하도록 하고 오류 메시지가 throw되지 않습니다.

# Do not do this.
databricksUrl=<per-workspace-url>
databricksToken=<personal-access-token-or-Azure-AD-token>

databricks configure --token << EOF
$databricksUrl
$databricksToken
EOF

이 문제를 해결하려면 다음 중 하나를 수행합니다.

  • 인증 설정에 설명된 대로 다른 프로그래밍 방식 구성 옵션 중 하나를 사용합니다.
  • 인증 설정에 설명된 host 대로 파일에 값과 token 값을 .databrickscfg 수동으로 추가합니다.
  • Databricks CLI 설치를 0.11.0 이하로 다운그레이드하고 스크립트를 다시 실행합니다.

CLI 명령