다음을 통해 공유


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 설정 Set

이 섹션에서는 레거시 Databricks CLI를 set 방법에 대해 설명합니다.

CLI 설치 또는 update

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

CLI 설치

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

pip install databricks-cli

Update CLI

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

pip install databricks-cli --upgrade

현재 설치된 레거시 Databricks CLI 버전에 대해 list 작업을 수행하려면, databricks --version명령을 실행합니다.

databricks --version

인증 Set

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

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

참고 항목

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

Microsoft Entra ID 토큰을 사용하여 Set 인증

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

다음 명령을 실행합니다.

databricks configure --aad-token

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

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

작업 영역별 URL을 https://adb-<workspace-id>.<random-number>.azuredatabricks.net 형식으로 입력합니다. 각 작업영역의 URL에 대해서는 get을 참고하십시오. 작업 영역별 URL를 참조하세요.

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

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

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

Set Databricks 개인용 액세스 토큰을 사용한 인증

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

databricks configure --token

프롬프트를 실행하여 명령이 시작됩니다.

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

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

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

Token:

프롬프트를 완료하면, 액세스 credentials은 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

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

인증 설정 테스트

인증을 올바르게 수행했는지 확인하려면 set과 같은 명령을 실행할 수 있습니다.

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를 구성하라는 메시지가 표시됩니다.

연결 프로필 테스트

연결 프로필을 올바르게 set 확인하려면 연결 프로필 이름 중 하나를 사용하여 다음과 같은 명령을 실행할 수 있습니다.

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

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

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

CLI 사용

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

CLI 명령 그룹 도움말 표시

--help 또는 -h 옵션을 사용하여 명령 그룹에 대한 하위 명령을 list. 예를 들어 DBFS CLI 하위 명령을 실행하려면 list을 입력하세요.

databricks fs -h

CLI 하위 명령 도움말 표시

--help 또는 -h 옵션을 사용하여 하위 명령에 대한 도움말을 list. 예를 들어, DBFS 복사 파일 하위 명령에 대한 도움말을 표시하려면 list를 사용하십시오.

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의 일부를 구문 분석하여 다른 명령으로 파이프하는 것이 유용할 수 있습니다. 예를 들어 작업 정의를 복사하려면 get 작업 명령의 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"
  }
]

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

JSON 문자열 parameters

문자열 parameters 운영 체제에 따라 다르게 처리됩니다.

Linux 또는 macOS

JSON 문자열 parameters은 작은따옴표로 묶어야 합니다. 예시:

'["20180505", "alantest"]'

Windows

JSON 문자열 parameters는 큰따옴표로 묶어야 하며, 문자열 내의 따옴표 문자는 \앞에 있어야 합니다. 예시:

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

문제 해결

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

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

Databricks CLI 0.12.0 이상의 경우 스크립트에서 파일 끝(EOF) 시퀀스를 사용하여 databricks configure 명령에 parameters 전달해도 작동하지 않습니다. 예를 들어, 다음 스크립트는 Databricks CLI가 parameters을 무시하게 하며, 오류 메시지가 발생하지 않습니다.

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

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

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

CLI 명령