다음을 통해 공유


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_2가 있는 Python 버전을 설치합니다.

제한 사항

방화벽이 활성화된 스토리지 컨테이너에 레거시 Databricks CLI를 사용하는 것은 지원되지 않습니다. Databricks에서는 Databricks Connect 또는 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 토큰을 사용하여 인증 설정

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의 ~/.databrickscfg 파일 또는 Windows의 %USERPROFILE%\.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의 ~/.databrickscfg 파일 또는 Windows의 %USERPROFILE%\.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 루트에 있는 파일 및 디렉터리를 나열합니다.

연결 프로필

레거시 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 명령 그룹 도움말 표시

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

databricks fs -h

CLI 하위 명령 도움말 표시

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

databricks fs cp -h

별칭 명령 그룹

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

레거시 Databricks CLI는 이미 databricks fs에서 dbfs로 별칭을 지정했습니다. databricks fs lsdbfs ls는 동일합니다.

CLI 출력 구문 분석에 jq 사용

일부 레거시 Databricks CLI 명령은 API 엔드포인트에서 JSON 응답을 출력합니다. 경우에 따라 JSON의 일부를 구문 분석하여 다른 명령으로 파이프하는 것이 유용할 수 있습니다. 예를 들어, 작업 정의를 복사하려면 작업 가져오기 명령의 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"
  }
]

예를 들어 brew install jq와 함께 Homebrew를 사용하여 macOS 또는 choco install jq와 함께 Chocolatey를 사용하여 Windows에 jq를 설치할 수 있습니다. jq에 대한 자세한 내용은 jq 설명서를 참조하세요.

JSON 문자열 매개 변수

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

Linux 또는 macOS

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

'["20180505", "alantest"]'

Windows

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

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

문제 해결

다음 섹션에서는 레거시 Databricks CLI의 일반적인 문제에 대한 문제 해결 팁을 제공합니다.

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

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

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

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

CLI 명령