databricks/databricks-sdk-py

Databricks SDK for Python (Beta)

Databricks SDK for Python (베타)

무엇인가요 – 모든 공개 Databricks REST API를 래핑하는 Python 클라이언트 라이브러리입니다. Python 코드에서 Databricks 워크스페이스, 클러스터, 작업, 유니티 카탈로그 및 기타 Lakehouse 리소스를 프로그래밍 방식으로 관리할 수 있습니다.

왜 중요한가요 – Databricks는 Spark 기반 머신러닝 워크로드도 호스팅하는 널리 사용되는 클라우드 데이터 레이크/웨어하우스 플랫폼입니다. SDK는 원시 HTTP 호출을 추상화하고, 지능적인 재시도, 페이지네이션 처리, 통합 인증을 추가하여 Databricks와 상호작용하는 자동화, CI/CD 파이프라인, 또는 커스텀 도구를 구축하는 것을 훨씬 쉽게 만듭니다.

시작하기

pip install databricks-sdk
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()          # .databrickscfg, 환경 변수, 또는 기본값에서 호스트/토큰을 가져옴
for c in w.clusters.list():
    print(c.cluster_name)

이 SDK는 Python 3.7~3.11과 호환됩니다. Databricks Runtime 13.1 이상에서는 라이브러리가 사전 설치되어 있습니다. 그렇지 않은 경우 노트북 내에서 %pip install --upgrade databricks-sdk를 실행하고 Python 프로세스를 재시작하세요.

주요 기능 (README에 설명됨)

  • 완전한 API 커버리지 – 모든 공개 Databricks REST 엔드포인트가 Python 메서드로 노출됩니다.
  • 강력한 HTTP 클라이언트 – 일시적인 실패에 대한 자동 재시도 및 백오프.
  • 페이지네이션 응답 – 반복자 헬퍼가 페이지네이션 세부 정보를 숨깁니다.
  • 장시간 실행 작업 처리 – 작업, 클러스터 등이 원하는 상태에 도달할 때까지 기다리는 헬퍼 제공.
  • 통합 인증 – 다음을 지원합니다:
    • Databricks 개인 액세스 토큰 (PAT) 인증
    • 워크로드 아이덴티티 페더레이션 (OIDC) 토큰
    • Azure 네이티브 흐름 (클라이언트 시크릿, Azure CLI, 관리된 서비스 아이덴티티)
    • GCP 네이티브 흐름 (서비스 계정 JSON, 기본 애플리케이션 자격 증명)
    • 자동으로 클라우드 공급자 (AWS, Azure, GCP)를 감지하고 적절한 방법을 선택합니다.
  • 구성 소스 – 자격 증명은 함수 인수, 환경 변수, 또는 ~/.databrickscfg 프로필 파일을 통해 제공할 수 있습니다. SDK는 정의된 순서로 이 위치들을 검색하고 첫 번째 유효한 세트에서 중지합니다.
  • 통합 호스트 지원 – account_id와 workspace_id가 존재할 경우, 하나의 호스트가 계정 수준과 워크스페이스 수준 API를 모두 제공할 수 있습니다. 이로써 동일한 프로필로 WorkspaceClient와 AccountClient 객체를 생성할 수 있습니다.
  • 사용자 에이전트 할당 – 클라이언트는 Databricks가 SDK 사용량을 추적할 수 있도록 식별 가능한 헤더를 추가합니다.
  • 에러 처리 및 로깅 – 일관된 예외 유형과 선택적 로깅 훅.

리포지토리에 포함된 예제 사용 사례

  • Flask 웹 서버에서의 OAuth 흐름 (examples/flask_app_with_oauth.py).
  • 작업 시작 및 완료 대기 (examples/starting_job_and_waiting.py).
  • 로컬 브라우저 OAuth 로그인 (examples/local_browser_oauth.py).
  • Unity Catalog 마이그레이션 및 IP 접근 목록 분석과 같은 실제 프로젝트는 이 SDK에 의존합니다.

더 알아보기

라이선스 – 상류 Databricks 리포지토리와 동일한 라이선스 하에 오픈소스 (자세한 내용은 LICENSE 참조).

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트