ODBC 连接

odbc 连接类型提供到 ODBC 数据源(包括 MS SQL Server)的连接。

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

系统先决条件

此连接类型使用 pyodbc,它有一些系统依赖项,如 pyodbc wiki 中所述。

您还必须安装驱动程序

配置连接

要使用钩子 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 中编辑连接的用户不会恶意使用它。

注意

您负责在系统上安装 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:[email protected]: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 文档

此条目有帮助吗?