다음을 통해 공유


Azure Databricks와 함께 SQLAlchemy 사용

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

Azure Databricks에서 SQLAlchemy 기능을 사용하려면 Azure Databricks에 대한 SQLAlchemy 언어를 설치해야 합니다. 이 문서에서는 Python용 Databricks SQL Connector 버전 4.0.0 이상을 기반으로 하는 Azure Databricks 버전 1.0 및 2.0에 대한 SQLAlchemy 방언에 대해 설명합니다.

요구 사항

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

Get 시작됨

  • SQLAlchemy v1용 databricks-sqlalchemy를 설치하려면 pip install databricks-sqlalchemy~=1.0을 사용하고, SQLAlchemy v2용은 pip install databricks-sqlalchemy을 사용하여 설치합니다. 버전 정보에 대해서는 databricks-sqlalchemy 릴리스 기록을 참조하세요.

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

    클러스터

    • 클러스터의 서버 호스트 이름. 클러스터에 대한 JDBC/ODBC 탭의 고급 옵션 서버 호스트 이름 값에서 이 값을 수 있습니다.
    • 클러스터의 HTTP 경로. 클러스터에 대한 JDBC/ODBC 탭에 고급 옵션의 HTTP 경로 값에서 이 값을 수 있습니다.

    SQL 웨어하우스

    • SQL 웨어하우스의 서버 호스트 이름. SQL 웨어하우스의 get 탭에서 서버 호스트 이름 값을 통해 이 작업을 할 수 있습니다.
    • SQL 웨어하우스의 HTTP 경로. SQL 웨어하우스에 대한 get 탭의 HTTP 경로 값에서 이 값을 수 있습니다.

인증

Azure Databricks 개인용 액세스 토큰 인증을 지원하는 Azure Databricks용 SQLAlchemy 언어.

Azure Databricks 개인용 액세스 토큰을 만들려면 작업 영역 사용자를 위한 Azure Databricks 개인용 액세스 토큰의 단계를 따릅니다.

SQLAlchemy 언어를 인증하려면 다음 코드 조각을 사용합니다. 다음과 같은 환경 변수가 set 있다는 것을 이 코드 조각은 가정합니다.

  • DATABRICKS_TOKEN및 set Azure Databricks 개인용 액세스 토큰에.
  • 클러스터 또는 SQL 웨어하우스의 DATABRICKS_SERVER_HOSTNAME에 set을 추가합니다.
  • DATABRICKS_HTTP_PATH, set에서 까지 클러스터 또는 SQL 웨어하우스에 대한 HTTP 경로 값.
  • Unity DATABRICKS_CATALOG에서 set와 catalog을 Catalog로 대상으로.
  • DATABRICKS_SCHEMA, set을 Unity schema의 대상 Catalog(데이터베이스라고도 함)으로 이동합니다.

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

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 컴퓨팅 리소스를 통해 지정된 catalog 및 schema에 연결합니다.

SQLAlchemy v1

연결 예제는 이 example.py 참조하세요.

SQLAlchemy v2

연결 예제는 GitHub의 다음 섹션 및 sqlalchemy_example.py 파일을 참조하세요.

DBAPI 참고자료

추가 리소스