Share via


Azure Databricks에서 SQLAlchemy 사용

Azure Databricks는 Azure Databricks에 대한 SQLAlchemy언어(SQLAlchemy가 다양한 유형의 데이터베이스 API 구현 및 데이터베이스와 통신하는 데 사용하는 시스템)를 제공합니다. SQLAlchemy는 Python SQL 도구 키트 및 ORM(개체 관계형 매퍼)입니다. SQLAlchemy는 간단하고 Pythonic do기본 언어로 조정된 효율적이고 고성능의 데이터베이스 액세스를 위해 설계된 잘 알려진 엔터프라이즈 수준 지속성 패턴 제품군을 제공합니다. 기능 및 철학을 참조 하세요.

Azure Databricks에 대한 SQLAlchemy 언어는 Python용 Databricks SQL 커넥트or에 포함되어 있습니다. 이 문서에서는 Python 버전 3.0.0 이상용 Databricks SQL 커넥트or가 필요한 Azure Databricks 버전 2.0에 대한 SQLAlchemy 언어를 다룹니다.

요구 사항

  • Python >=3.8 및 <=3.11을 실행하는 개발 머신입니다.
  • Databricks는 Python에 포함된 venv에서 제공하는 환경과 같은 Python 가상 환경을 사용하는 것이 좋습니다. 가상 환경은 올바른 버전의 Python과 Python용 Databricks SQL 커넥트or를 함께 사용하는 데 도움이 됩니다. 가상 환경 설정 및 사용은 이 문서의 범위를 벗어납니다. 자세한 내용은 가상 환경 만들기를 참조 하세요.
  • 기존 클러스터 또는 SQL 웨어하우스.

시작하기

  • 실행 pip install "databricks-sql-connector[sqlalchemy]" 하거나 python -m pip install "databricks-sql-connector[sqlalchemy]"실행하여 개발 머신에 Python 라이브러리 버전 3.0.0 이상용 Databricks SQL 커넥트or를 설치합니다. 버전 정보는 databricks-sql-connector 릴리스 기록을 참조 하세요.

  • 사용하려는 클러스터 또는 SQL 웨어하우스에 대해 다음 정보를 수집합니다.

    클러스터

    • 클러스터의 서버 호스트 이름. 클러스터의 고급 옵션 > JDBC/ODBC 탭의 서버 호스트 이름 값으로 확인할 수 있습니다.
    • 클러스터의 HTTP 경로. 클러스터의 고급 옵션 > JDBC/ODBC 탭의 HTTP 경로 값으로 확인할 수 있습니다.

    SQL 웨어하우스

    • SQL 웨어하우스의 서버 호스트 이름. SQL 웨어하우스의 연결 세부 정보 탭의 서버 호스트 이름 값으로 확인할 수 있습니다.
    • SQL 웨어하우스의 HTTP 경로. SQL 웨어하우스의 연결 세부 정보 탭의 HTTP 경로 값으로 확인할 수 있습니다.

인증

Azure Databricks에 대한 SQLAlchemy 언어는 Azure Databricks 개인용 액세스 토큰 인증을 지원합니다.

Azure Databricks 개인용 액세스 토큰을 만들려면 다음을 수행합니다.

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

참고 항목

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

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

SQLAlchemy 방언을 인증하려면 다음 코드 조각을 사용합니다. 이 코드 조각에서는 다음 환경 변수를 설정한다고 가정합니다.

  • DATABRICKS_TOKEN- Azure Databricks 개인용 액세스 토큰으로 설정합니다.
  • DATABRICKS_SERVER_HOSTNAME클러스터 또는 SQL 웨어하우스의 서버 호스트 이름 값으로 설정합니다.
  • DATABRICKS_HTTP_PATH클러스터 또는 SQL 웨어하우스에 대한 HTTP 경로 값으로 설정합니다.
  • DATABRICKS_CATALOG, Unity 카탈로그의 대상 카탈로그로 설정합니다.
  • DATABRICKS_SCHEMA- Unity 카탈로그의 대상 스키마(데이터베이스라고도 함)로 설정합니다.

환경 변수를 설정하려면 운영 체제 설명서를 참조하세요.

import os
from sqlalchemy import create_engine

access_token    = os.getenv("DATABRICKS_TOKEN")
server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME")
http_path       = os.getenv("DATABRICKS_HTTP_PATH")
catalog         = os.getenv("DATABRICKS_CATALOG")
schema          = os.getenv("DATABRICKS_SCHEMA")

engine = create_engine(
  url = f"databricks://token:{access_token}@{server_hostname}?" +
        f"http_path={http_path}&catalog={catalog}&schema={schema}"
)

# ...

이전 변수를 engine 사용하여 Azure Databricks 컴퓨팅 리소스를 통해 지정된 카탈로그 및 스키마에 연결합니다. 연결 예제는 GitHub의 다음 섹션 및 sqlalchemy.py 파일을 참조하세요.

예시

GitHub에서 sqlalchemy.py 파일을 참조하세요.

DBAPI 참조

추가 리소스