ODBC 連線

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

使用 pip install apache-airflow[odbc] 啟用。

系統先決條件

此連線類型使用 pyodbc,它有一些系統相依性,如 pyodbc wiki 上所述。

您也必須安裝驅動程式

設定連線

若要使用 hook OdbcHook,您必須在 Connection.extra 中或在 hook 初始化時指定您想要使用的驅動程式。

主機 (必填)

要連線的主機。

結構描述 (選填)

指定要在資料庫中使用的結構描述名稱。

登入 (必填)

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

密碼 (必填)

指定要連線的密碼。

額外 (選填)

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

此外,還有一些特殊的選填關鍵字會被個別處理。

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

  • sqlalchemy_scheme
    • 僅當在 get_sqlalchemy_engine() 中調用 get_uri 時才會使用。預設情況下,hook 使用結構描述 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 和連線字串關鍵字與屬性

用於環境變數等的範例連線 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,將使用 autocommit=Falseansi=True 呼叫 pyodbc.connect

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

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

此條目是否對您有幫助?