ODBC 連線

odbc 連線型別提供與 ODBC 資料來源(包括 MS SQL Server)的連線。

透過 pip install apache-airflow[odbc] 啟用。

系統先決條件

此連線型別使用 pyodbc,它有一些系統依賴項,如 pyodbc wiki 中所述。

您還必須安裝一個驅動程式

配置連線

要使用 OdbcHook hook(鉤子),您必須在 Connection.extra 中或在 hook 初始化時作為引數指定要使用的驅動程式。

主機 (必需)

要連線到的主機。

Schema(模式) (可選)

指定在資料庫中使用的 schema 名稱。

登入(必需)

指定用於連線的使用者名稱。

密碼(必需)

指定用於連線的密碼。

Extra (可選)

此處提供的任何鍵/值引數都將新增到 ODBC 連線字串中。

此外,還有一些特殊的可選關鍵字會被單獨處理。

  • connect_kwargs
    • connect_kwargs 下的鍵值對將作為 kwargs 傳遞給 pyodbc.connect

  • sqlalchemy_scheme
    • 這僅在 get_sqlalchemy_engine() 中呼叫 get_uri 時使用。預設情況下,hook 使用 scheme mssql+pyodbc。您可以在此處傳遞一個字串值來覆蓋此設定。

  • driver
    • 您系統上使用的驅動程式名稱。請注意,只有在 airflow 配置部分的 providers.odbc 中將 allow_driver_in_extra 設定為 True 時,才會考慮此項(預設不考慮)。注意:如果從環境變數設定此配置,請使用 AIRFLOW__PROVIDERS_ODBC__ALLOW_DRIVER_IN_EXTRA=true

注意

如果將 allow_driver_extra 設定為 True,則允許使用者透過 Airflow 連線的 extra 欄位設定驅動程式。預設情況下,這是不允許的。如果啟用此功能,您應確保信任那些可以在 UI 中編輯連線的使用者,以防止他們惡意使用此功能。

注意

您負責在您的系統上安裝 ODBC 驅動程式。

以下示例演示了 Microsoft ODBC 驅動程式 的用法。

例如,考慮以下用於 extra 的值

{
  "Driver": "ODBC Driver 18 for SQL Server",
  "ApplicationIntent": "ReadOnly",
  "TrustedConnection": "Yes"
}

這將生成包含這些引數的連線字串

DRIVER={ODBC Driver 18 for SQL Server};ApplicationIntent=ReadOnly;TrustedConnection=Yes;

更多資訊請參閱 DSN and Connection String Keywords and Attributes

用於環境變數等的連線 URI 示例

export AIRFLOW_CONN_MSSQL_DEFAULT='mssql-odbc://my_user:XXXXXXXXXXXX@1.1.1.1:1433/my_database?Driver=ODBC+Driver+18+for+SQL+Server&ApplicationIntent=ReadOnly&TrustedConnection=Yes'

如果您想向 pyodbc.connect 傳遞關鍵字引數,可以在 connect_kwargs 下提供一個字典。

例如,如果 extra 如下所示,呼叫 pyodbc.connect 時將使用 autocommit=Falseansi=True

{
  "Driver": "ODBC Driver 18 for SQL Server",
  "ApplicationIntent": "ReadOnly",
  "TrustedConnection": "Yes",
  "connect_kwargs": {
    "autocommit": false,
    "ansi": true
  }
}

更多關於可以傳遞給 connect 的 kwargs 的詳細資訊,請參閱 pyodbc 文件

此條目有幫助嗎?