다음을 통해 공유


Databricks SQL CLI

참고 항목

이 문서에서는 있는 그대로 제공되며, 고객 기술 지원 채널을 통해 Databricks에서 지원하지 않는 Databricks SQL CLI를 설명합니다. 질문 및 기능 요청은 GitHub에 있는 databricks/databricks-sql-cli 리포지토리의 문제 페이지를 통해 전달될 수 있습니다.

Databricks SQL 명령줄 인터페이스(Databricks SQL CLI)를 사용하면 Databricks SQL 편집기 또는 Azure Databricks Notebook과 같은 위치 대신 터미널 또는 Windows 명령 프롬프트에서 기존 Databricks SQL 웨어하우스에 대한 SQL 쿼리를 실행할 수 있습니다. 명령줄에서 제안 및 구문 강조 표시와 같은 생산성 기능을 구현합니다.

요구 사항

  • 하나 이상의 Databricks SQL 웨어하우스. 아직 없는 경우 웨어하우스를 만듭니다.
  • Python 3.7 이상. Python이 설치되어 있는지 확인하려면 터미널 또는 명령 프롬프트에서 python --version 명령을 실행합니다. (일부 시스템에서는 대신 python3를 입력해야 할 수 있습니다.) 아직 설치되어 있지 않은 경우 Python을 설치합니다.
  • pip(Python용 패키지 설치 프로그램). 최신 버전의 Python은 기본적으로 pip를 설치합니다. pip가 설치되어 있는지 확인하려면 터미널 또는 명령 프롬프트에서 pip --version 명령을 실행합니다. (일부 시스템에서는 대신 pip3를 입력해야 할 수 있습니다.) 아직 설치되어 있지 않은 경우 pip를 설치합니다.
  • (선택 사항) venv와 같은 Python 가상 환경을 만들고 관리하기 위한 유틸리티입니다. 가상 환경은 올바른 버전의 Python과 Databricks SQL CLI를 함께 사용하는 데 도움이 됩니다. 가상 환경 설정 및 사용은 이 문서의 범위를 벗어납니다. 자세한 내용은 가상 환경 만들기를 참조하세요.

Databricks SQL CLI 설치

요구 사항을 충족한 후 PyPI(Python 패키징 인덱스)에서 Databricks SQL CLI 패키지를 설치합니다. 다음 명령 중 하나를 사용하여 실행 pip 하여 PyPI에서 Databricks SQL CLI 패키지를 설치하는 데 사용할 pip 수 있습니다.

pip install databricks-sql-cli

# Or...

python -m pip install databricks-sql-cli

이전에 설치된 Databricks SQL CLI 버전을 업그레이드하려면 다음 명령 중 하나를 사용하여 실행 pip 합니다.

pip install databricks-sql-cli --upgrade

# Or...

python -m pip install databricks-sql-cli --upgrade

설치된 버전의 Databricks SQL CLI를 확인하려면 다음 명령 중 하나를 사용하여 실행 pip 합니다.

pip show databricks-sql-cli

# Or...

python -m pip show databricks-sql-cli

인증

인증하려면 Databricks SQL CLI에 웨어하우스의 연결 세부 정보를 제공해야 합니다. 특히 서버 호스트 이름HTTP 경로 값이 필요합니다. 또한 적절한 인증 자격 증명을 사용하여 Databricks SQL CLI를 제품화해야 합니다.

Databricks SQL CLI는 Databricks 개인용 액세스 토큰 인증을 지원합니다. Microsoft Entra ID(이전의 Azure Active Directory) 토큰은 지원되지 않습니다.

Azure Databricks 개인용 액세스 토큰 인증을 사용하려면 다음과 같이 개인 액세스 토큰을 만듭니다.

  1. Azure Databricks 작업 영역의 위쪽 표시줄에서 Azure Databricks 사용자 이름을 클릭한 다음 드롭다운에서 설정을 선택합니다.
  2. 개발자를 클릭합니다.
  3. 액세스 토큰 옆에 있는 관리를 클릭합니다.
  4. 새 토큰 생성을 클릭합니다.
  5. (선택 사항) 나중에 이 토큰을 식별할 수 있도록 하는 설명을 입력하고 토큰의 기본 수명을 90일로 변경합니다. 수명이 없는 토큰을 만들려면(권장하지 않음) 수명(일) 상자를 비워 둡니다(공백).
  6. 생성을 클릭합니다.
  7. 표시된 토큰을 안전한 위치에 복사한 다음 완료를 클릭합니다.

참고 항목

복사한 토큰을 안전한 위치에 저장합니다. 복사한 토큰을 다른 사용자와 공유하지 마세요. 복사한 토큰을 분실하면 정확히 동일한 토큰을 다시 생성할 수 없습니다. 대신 이 프로시저를 반복하여 새 토큰을 만들어야 합니다. 복사한 토큰이 손실되었거나 토큰이 손상되었다고 생각되는 경우 Databricks는 액세스 토큰 페이지의 토큰 옆에 있는 휴지통(해지) 아이콘을 클릭하여 작업 영역에서 해당 토큰 을 즉시 삭제하는 것이 좋습니다.

작업 영역에서 토큰을 만들거나 사용할 수 없는 경우 작업 영역 관리자가 토큰을 사용하지 않도록 설정했거나 토큰을 만들거나 사용할 수 있는 권한을 부여하지 않았기 때문일 수 있습니다. 작업 영역 관리자 또는 다음을 참조하세요.

다음과 같은 여러 가지 방법으로 Databricks SQL CLI에 이 인증 정보를 제공할 수 있습니다.

  • 기본 위치의 dbsqlclirc 설정 파일에서(또는 Databricks SQL CLI로 명령을 실행할 때마다 --clirc 옵션을 통해 대체 설정 파일 지정). 설정 파일을 참조하세요.
  • DBSQLCLI_HOST_NAME, DBSQLCLI_HTTP_PATHDBSQLCLI_ACCESS_TOKEN 환경 변수 설정. 환경 변수를 참조하세요.
  • Databricks SQL CLI를 사용하여 명령을 실행할 때마다 --hostname, --http-path--access-token 옵션 지정. 명령 옵션을 참조하세요.

참고 항목

이전 환경 변수를 설정하거나 이전 명령 옵션 또는 둘 다를 지정하더라도 dbsqlclirc 설정 파일이 있어야 합니다.

Databricks SQL CLI를 실행할 때마다 다음 순서대로 인증 세부 정보를 찾고 첫 번째 세부 정보 집합을 찾으면 중지됩니다.

  1. --hostname, --http-path--access-token 옵션.
  2. DBSQLCLI_HOST_NAME, DBSQLCLI_HTTP_PATHDBSQLCLI_ACCESS_TOKEN 환경 변수.
  3. 기본 위치의 dbsqlclirc 설정 파일(또는 --clirc 옵션으로 지정된 대체 설정 파일).

설정 파일

dbsqlclirc 설정 파일을 사용하여 Databricks SQL 웨어하우스에 대한 인증 세부 정보를 Databricks SQL CLI에 제공하려면 다음과 같이 Databricks SQL CLI를 처음으로 실행합니다.

dbsqlcli

Databricks SQL CLI는 Unix, Linux 및 macOS의 경우 ~/.dbsqlcli/dbsqlclirc, Windows의 경우 %HOMEDRIVE%%HOMEPATH%\.dbsqlcli\dbsqlclirc 또는 %USERPROFILE%\.dbsqlcli\dbsqlclirc에 자동으로 설정 파일을 만듭니다. 이 파일을 사용자 지정하려면 다음을 수행합니다.

  1. 텍스트 편집기를 사용하여 dbsqlclirc 파일을 열고 편집합니다.

  2. 다음 섹션으로 스크롤합니다.

    # [credentials]
    # host_name = ""
    # http_path = ""
    # access_token = ""
    
  3. # 문자 4개를 제거하고 다음을 수행합니다.

    1. host_name 옆에 요구 사항에 있는 웨어하우스의 서버 호스트 이름 값을 ""자 사이로 입력합니다.
    2. http_path 옆에 요구 사항에 있는 웨어하우스의 HTTP 경로 값을 ""자 사이로 입력합니다.
    3. access_token 옆에 요구 사항에 있는 개인용 액세스 토큰 값을 ""자 사이로 입력합니다.

    예시:

    [credentials]
    host_name = "adb-12345678901234567.8.azuredatabricks.net"
    http_path = "/sql/1.0/warehouses/1abc2d3456e7f890a"
    access_token = "dapi12345678901234567890123456789012"
    
  4. dbsqlclirc 파일을 저장합니다.

또는 기본 위치에서 dbsqlclirc 파일을 사용하는 대신 --clirc 명령 옵션과 대체 파일 경로를 추가하여 다른 위치에 파일을 지정할 수 있습니다. 대체 파일의 내용은 이전 구문을 준수해야 합니다.

환경 변수

DBSQLCLI_HOST_NAME, DBSQLCLI_HTTP_PATHDBSQLCLI_ACCESS_TOKEN 환경 변수를 사용하여 Databricks SQL 웨어하우스에 대한 인증 세부 정보를 Databricks SQL CLI에 제공하려면 다음을 수행합니다.

Unix, Linux 및 macOS

현재 터미널 세션에 대해서만 환경 변수를 설정하려면 다음 명령을 실행합니다. 모든 터미널 세션에 대한 환경 변수를 설정하려면 셸의 시작 파일에 다음 명령을 입력한 다음, 터미널을 다시 시작합니다. 다음 명령에서 다음 항목의 값을 바꿉니다.

  • DBSQLCLI_HOST_NAME을 요구 사항에 있는 웨어하우스의 서버 호스트 이름 값으로 바꿉니다.
  • DBSQLCLI_HTTP_PATH를 요구 사항에 있는 웨어하우스의 HTTP 경로 값으로 바꿉니다.
  • DBSQLCLI_ACCESS_TOKEN을 요구 사항에 있는 개인용 액세스 토큰 값으로.
export DBSQLCLI_HOST_NAME="adb-12345678901234567.8.azuredatabricks.net"
export DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
export DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"

Windows

현재 명령 프롬프트 세션에 대해서만 환경 변수를 설정하려면 값을 다음과 같이 바꾸고 다음 명령을 실행합니다.

  • DBSQLCLI_HOST_NAME을 요구 사항에 있는 웨어하우스의 서버 호스트 이름 값으로 바꿉니다.
  • DBSQLCLI_HTTP_PATH를 요구 사항에 있는 웨어하우스의 HTTP 경로 값으로 바꿉니다.
  • DBSQLCLI_ACCESS_TOKEN을 요구 사항에 있는 개인용 액세스 토큰 값으로.
set DBSQLCLI_HOST_NAME="adb-12345678901234567.8.azuredatabricks.net"
set DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
set DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"

모든 명령 프롬프트 세션에 대한 환경 변수를 설정하려면 값을 다음과 같이 바꾸고 다음 명령을 실행한 다음, 명령 프롬프트를 다시 시작합니다.

  • DBSQLCLI_HOST_NAME을 요구 사항에 있는 웨어하우스의 서버 호스트 이름 값으로 바꿉니다.
  • DBSQLCLI_HTTP_PATH를 요구 사항에 있는 웨어하우스의 HTTP 경로 값으로 바꿉니다.
  • DBSQLCLI_ACCESS_TOKEN을 요구 사항에 있는 개인용 액세스 토큰 값으로.
setx DBSQLCLI_HOST_NAME "adb-12345678901234567.8.azuredatabricks.net"
setx DBSQLCLI_HTTP_PATH "/sql/1.0/warehouses/1abc2d3456e7f890a"
setx DBSQLCLI_ACCESS_TOKEN "dapi12345678901234567890123456789012"

명령 옵션

--hostname, --http-path--access-token 옵션을 사용하여 Databricks SQL 웨어하우스에 대한 인증 세부 정보를 Databricks SQL CLI에 제공하려면 다음을 수행합니다.

Databricks SQL CLI를 사용하여 명령을 실행할 때마다 다음을 수행합니다.

  • 요구 사항에 있는 --hostname 옵션 및 웨어하우스의 서버 호스트 이름 값을 지정합니다.
  • 요구 사항에 있는 --http-path 옵션 및 웨어하우스의 HTTP 경로 값을 지정합니다.
  • 요구 사항에 있는 --access-token 옵션 및 개인 액세스 토큰 값을 지정합니다.

예시:

dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" \
--hostname "adb-12345678901234567.8.azuredatabricks.net" \
--http-path "/sql/1.0/warehouses/1abc2d3456e7f890a" \
--access-token "dapi12345678901234567890123456789012"

쿼리 원본

Databricks SQL CLI를 사용하면 다음과 같은 방법으로 쿼리를 실행할 수 있습니다.

  • 쿼리 문자열에서.
  • 파일에서.
  • REPL(read-evaluate-print loop) 방법으로. 이 방법은 입력할 때 제안을 제공합니다.

쿼리 문자열

쿼리를 문자열로 실행하려면 -e 옵션 뒤에 문자열로 표시된 쿼리를 사용합니다. 예시:

dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2"

출력

_c0,carat,cut,color,clarity,depth,table,price,x,y,z
1,0.23,Ideal,E,SI2,61.5,55,326,3.95,3.98,2.43
2,0.21,Premium,E,SI1,59.8,61,326,3.89,3.84,2.31

출력 형식을 전환하려면 ASCII 테이블 형식에 해당하는 ascii 같은 값과 함께 --table-format 옵션을 사용합니다. 예를 들면 다음과 같습니다.

dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" --table-format ascii

출력

+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut     | color | clarity | depth | table | price | x    | y    | z    |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1   | 0.23  | Ideal   | E     | SI2     | 61.5  | 55    | 326   | 3.95 | 3.98 | 2.43 |
| 2   | 0.21  | Premium | E     | SI1     | 59.8  | 61    | 326   | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+

사용 가능한 출력 형식 값 목록은 dbsqlclirc 파일의 table_format 설정에 대한 설명을 참조하세요.

파일

SQL이 포함된 파일을 실행하려면 -e 옵션 뒤에 .sql 파일 경로를 사용합니다. 예시:

dbsqlcli -e my-query.sql

예제 my-query.sql 파일의 내용:

SELECT * FROM default.diamonds LIMIT 2;

출력

_c0,carat,cut,color,clarity,depth,table,price,x,y,z
1,0.23,Ideal,E,SI2,61.5,55,326,3.95,3.98,2.43
2,0.21,Premium,E,SI1,59.8,61,326,3.89,3.84,2.31

출력 형식을 전환하려면 ASCII 테이블 형식에 해당하는 ascii 같은 값과 함께 --table-format 옵션을 사용합니다. 예를 들면 다음과 같습니다.

dbsqlcli -e my-query.sql --table-format ascii

출력

+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut     | color | clarity | depth | table | price | x    | y    | z    |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1   | 0.23  | Ideal   | E     | SI2     | 61.5  | 55    | 326   | 3.95 | 3.98 | 2.43 |
| 2   | 0.21  | Premium | E     | SI1     | 59.8  | 61    | 326   | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+

사용 가능한 출력 형식 값 목록은 dbsqlclirc 파일의 table_format 설정에 대한 설명을 참조하세요.

REPL

기본 데이터베이스로 범위가 지정된 REPL(read-evaluate-print loop) 모드를 입력하려면 다음 명령을 실행합니다.

dbsqlcli

다음 명령을 실행하여 특정 데이터베이스로 범위가 지정된 REPL 모드를 입력할 수도 있습니다.

dbsqlcli <database-name>

예시:

dbsqlcli default

REPL 모드를 종료하려면 다음 명령을 실행합니다.

exit

REPL 모드에서는 다음 문자와 키를 사용할 수 있습니다.

  • 세미콜론(;)을 사용하여 줄을 종료합니다.
  • F3 키를 사용하여 여러 줄 모드를 전환합니다.
  • 제안이 아직 표시되지 않는 경우 스페이스바를 사용하여 삽입 지점에 제안을 표시합니다.
  • 위쪽 및 아래쪽 화살표를 사용하여 제안을 탐색합니다.
  • 오른쪽 화살표를 사용하여 강조 표시된 제안을 완료합니다.

예시:

dbsqlcli default

hostname:default> SELECT * FROM diamonds LIMIT 2;

+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut     | color | clarity | depth | table | price | x    | y    | z    |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1   | 0.23  | Ideal   | E     | SI2     | 61.5  | 55    | 326   | 3.95 | 3.98 | 2.43 |
| 2   | 0.21  | Premium | E     | SI1     | 59.8  | 61    | 326   | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+

2 rows in set
Time: 0.703s

hostname:default> exit

로깅

Databricks SQL CLI는 기본적으로 해당 메시지를 파일에 ~/.dbsqlcli/app.log 기록합니다. 이 파일 이름 또는 위치를 변경하려면 설정 파일에서 log_file 설정 dbsqlclirc 값을 변경합니다.

기본적으로 메시지는 로그 수준 및 아래에 기록 INFO 됩니다. 이 로그 수준을 변경하려면 설정 파일에서 log_level 설정 dbsqlclirc 값을 변경합니다. 사용 가능한 로그 수준 값은 , ERROR, INFOWARNING및 를 포함CRITICAL하며 DEBUG 해당 순서로 평가됩니다. NONE 로깅을 사용하지 않도록 설정합니다.

추가 리소스