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 웨어하우스
인증
Azure Databricks에 대한 SQLAlchemy 언어는 Azure Databricks 개인용 액세스 토큰 인증을 지원합니다.
Azure Databricks 개인용 액세스 토큰을 만들려면 다음을 수행합니다.
- Azure Databricks 작업 영역의 위쪽 표시줄에서 Azure Databricks 사용자 이름을 클릭한 다음 드롭다운에서 설정 선택합니다.
- 개발자를 클릭합니다.
- 액세스 토큰 옆에 있는 관리를 클릭합니다.
- 새 토큰 생성을 클릭합니다.
- (선택 사항) 나중에 이 토큰을 식별할 수 있도록 하는 설명을 입력하고 토큰의 기본 수명을 90일로 변경합니다. 수명이 없는 토큰을 만들려면(권장하지 않음) 수명(일) 상자를 비워 둡니다(공백).
- 생성을 클릭합니다.
- 표시된 토큰을 안전한 위치에 복사한 다음 완료를 클릭합니다.
참고 항목
복사한 토큰을 안전한 위치에 저장합니다. 복사한 토큰을 다른 사용자와 공유하지 마세요. 복사한 토큰을 분실하면 정확히 동일한 토큰을 다시 생성할 수 없습니다. 대신 이 프로시저를 반복하여 새 토큰을 만들어야 합니다. 복사한 토큰이 손실되었거나 토큰이 손상되었다고 생각되는 경우 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 참조
- GitHub에서 README.sqlalchemy.md 파일을 참조하세요.
- GitHub의 sqlalchemy 소스 코드 디렉터리도 참조하세요.
추가 리소스
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기