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 使用 scheme 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 文档

此条目是否有帮助?