共用方式為


搭配 Azure Databricks 使用 SQLAlchemy

Azure Databricks 為 Azure Databricks 提供 SQLAlchemy方言 (SQLAlchemy 用來與各種類型的資料庫 API 實作和資料庫通訊的系統)。 SQLAlchemy 是 Python SQL 工具組和物件關聯式對應 (ORM)。 SQLAlchemy 提供一套知名的企業級持續性模式,專為高效且高效能的資料庫存取而設計,並改編成簡單的 Pythonic 網域語言。 請參閱功能和理念

必須安裝 Azure Databricks 的 SQLAlchemy 方言,才能搭配 Azure Databricks 使用 SQLAlchemy 功能。 本文涵蓋 Azure Databricks 1.0 版和 2.0 版的 SQLAlchemy 方言,該方言將以適用於 Python 4.0.0 版或更新版本的 Databricks SQL Connector 為基礎。

需求

  • 執行 Python >=3.8 和 <=3.11 的開發機器。
  • Databricks 建議您使用 Python 虛擬環境,例如 Python 隨附的 venv 所提供的環境。 虛擬環境可協助您確保同時使用正確的 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 倉儲,收集下列資訊:

    Cluster

    • 叢集的伺服器主機名稱。 您可以從叢集的 [進階選項] > [JDBC/ODBC] 索引卷標中的 [伺服器主機名] 值 get 此專案。
    • 叢集的 HTTP 路徑。 您可以從叢集的 [進階選項] > [JDBC/ODBC] 索引卷標的 [HTTP 路徑] 值 get 此值。

    SQL 倉儲

驗證

適用於 Azure Databricks 的 SQLAlchemy 方言支援 Azure Databricks 個人存取權杖驗證

若要建立 Azure Databricks 個人存取令牌,請遵循適用於工作區使用者的 Azure Databricks 個人存取令牌中的步驟。

若要驗證 SQLAlchemy 方言,請使用下列程式碼片段。 此程式碼片段假設您已設定 set 下列環境變數:

  • DATABRICKS_TOKEN,set 至 Azure Databricks 個人存取令牌。
  • 請將 DATABRICKS_SERVER_HOSTNAMEset 指定給叢集或 SQL 倉儲的 伺服器主機名 值。
  • DATABRICKS_HTTP_PATH, set 到 叢集或 SQL 倉儲的 HTTP 路徑 值。
  • DATABRICKS_CATALOG,set 在 Unity Catalog中的目標 catalog。
  • DATABRICKS_SCHEMA,set 到 Unity Catalog中的目標 schema(也稱為資料庫)。

若要 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 參考

其他資源