ODBC 连接¶
odbc
连接类型提供到 ODBC 数据源(包括 MS SQL Server)的连接。
使用 pip install apache-airflow[odbc]
启用。
配置连接¶
要使用钩子 OdbcHook
,您必须在 Connection.extra
中或作为钩子初始化时的参数指定要使用的驱动程序。
- 主机(必填)
要连接的主机。
- 架构(可选)
指定要在数据库中使用的架构名称。
- 登录名(必填)
指定要连接的用户名。
- 密码(必填)
指定要连接的密码。
- 额外参数(可选)
此处提供的任何键/值参数都将添加到 ODBC 连接字符串中。
此外,还有一些单独处理的特殊可选关键字。
connect_kwargs
connect_kwargs
下的键值对将作为 kwargs 传递给pyodbc.connect
sqlalchemy_scheme
这仅在
get_sqlalchemy_engine()
中调用get_uri
时使用。默认情况下,钩子使用方案mssql+pyodbc
。您可以在此处传递一个字符串值来覆盖它。
驱动程序
要在系统上使用的驱动程序的名称。请注意,仅当在 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 和连接字符串关键字和属性。
用于环境变量等的示例连接 URI
export AIRFLOW_CONN_MSSQL_DEFAULT='mssql-odbc://my_user:[email protected]:1433/my_database?Driver=ODBC+Driver+18+for+SQL+Server&ApplicationIntent=ReadOnly&TrustedConnection=Yes'
如果要将关键字参数传递给
pyodbc.connect
,您可以在connect_kwargs
下提供一个字典。例如,如果
extra
如下所示,则将使用autocommit=False
和ansi=True
调用pyodbc.connect
。{ "Driver": "ODBC Driver 18 for SQL Server", "ApplicationIntent": "ReadOnly", "TrustedConnection": "Yes", "connect_kwargs": { "autocommit": false, "ansi": true } }
有关可以传递给
connect
的 kwargs 的更多详细信息,请参阅 pyodbc 文档