ODBC 連線¶
odbc 連線型別提供與 ODBC 資料來源(包括 MS SQL Server)的連線。
透過 pip install apache-airflow[odbc] 啟用。
系統先決條件¶
此連線型別使用 pyodbc,它有一些系統依賴項,如 pyodbc wiki 中所述。
您還必須安裝一個驅動程式
配置連線¶
要使用 OdbcHook hook(鉤子),您必須在 Connection.extra 中或在 hook 初始化時作為引數指定要使用的驅動程式。
- 主機 (必需)
要連線到的主機。
- Schema(模式) (可選)
指定在資料庫中使用的 schema 名稱。
- 登入(必需)
指定用於連線的使用者名稱。
- 密碼(必需)
指定用於連線的密碼。
- Extra (可選)
此處提供的任何鍵/值引數都將新增到 ODBC 連線字串中。
此外,還有一些特殊的可選關鍵字會被單獨處理。
connect_kwargsconnect_kwargs下的鍵值對將作為 kwargs 傳遞給pyodbc.connect。
sqlalchemy_scheme這僅在
get_sqlalchemy_engine()中呼叫get_uri時使用。預設情況下,hook 使用 schememssql+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 中編輯連線的使用者,以防止他們惡意使用此功能。例如,考慮以下用於
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=False和ansi=True。{ "Driver": "ODBC Driver 18 for SQL Server", "ApplicationIntent": "ReadOnly", "TrustedConnection": "Yes", "connect_kwargs": { "autocommit": false, "ansi": true } }
更多關於可以傳遞給
connect的 kwargs 的詳細資訊,請參閱 pyodbc 文件。