다음을 통해 공유


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 웨어하우스.

시작

  • 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 웨어하우스 설정에서, 연결 세부 정보 탭에 있는 서버 호스트 이름 값을 통해 이를 얻을 수 있습니다.
    • SQL 웨어하우스의 HTTP 경로. SQL 웨어하우스에 대한 연결 세부 정보 탭의 HTTP 경로 값에서 가져올 수 있습니다.

인증

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

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

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

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

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

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 컴퓨팅 리소스를 통해 지정된 카탈로그 및 스키마에 연결합니다.

SQLAlchemy v1

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

SQLAlchemy v2

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

DBAPI 참고자료

추가 리소스