airflow.providers.odbc.hooks.odbc

此模块包含 ODBC Hook。

OdbcHook

使用 pyodbc 与 odbc 数据源交互。

模块内容

class airflow.providers.odbc.hooks.odbc.OdbcHook(*args, database=None, driver=None, dsn=None, connect_kwargs=None, sqlalchemy_scheme=None, **kwargs)[source]

基类: airflow.providers.common.sql.hooks.sql.DbApiHook

使用 pyodbc 与 odbc 数据源交互。

除了作为构造函数参数提供之外,还可以通过以下方式配置驱动:
  • 在使用 SQL 操作符实例化 Hook 时,在 hook_params 字典中设置 driver 参数。

  • 在连接的 extra 中设置 driver,并在 airflow 配置的 providers.odbc 部分中将 allow_driver_in_extra 设置为 True。

  • local_settings.py 文件中修补(patch)OdbcHook.default_driver

参阅 ODBC 连接 获取完整文档。

参数::
  • args – 传递给 DbApiHook

  • database (str | None) – 要使用的数据库 – 覆盖连接的 schema

  • driver (str | None) – 驱动名称或驱动路径。详见上文

  • dsn (str | None) – 要使用的 DSN 名称。覆盖连接 extra 中提供的 DSN

  • connect_kwargs (dict | None) – 传递给 pyodbc.connect 的关键字参数

  • sqlalchemy_scheme (str | None) – SQLAlchemy 连接方案。默认为 mssql+pyodbc 仅用于 get_sqlalchemy_engineget_sqlalchemy_connection 方法。

  • kwargs – 传递给 DbApiHook

DEFAULT_SQLALCHEMY_SCHEME = 'mssql+pyodbc'[source]
conn_name_attr = 'odbc_conn_id'[source]
default_conn_name = 'odbc_default'[source]
conn_type = 'odbc'[source]
hook_name ='ODBC'[source]
supports_autocommit = True[source]
supports_executemany = True[source]
default_driver: str | None = None[source]
property database: str | None[source]

如果在 init 中提供数据库,则使用该数据库;否则,使用 Connection 对象的 schema

property sqlalchemy_scheme: str[source]

SQLAlchemy 方案可以来自构造函数、连接 extra 或默认值。

property driver: str | None[source]

如果给定 init 参数,则使用该驱动;否则尝试在连接 extra 中查找。

property dsn: str | None[source]

如果给定 init 参数,则使用该 DSN;否则尝试在连接 extra 中查找。

property odbc_connection_string[source]

ODBC 连接字符串。

我们构建连接字符串而不是使用 pyodbc.connect 参数,因为例如,没有参数代表 ApplicationIntent=ReadOnly。在 Connection.extra 中提供的任何键值对都将添加到连接字符串中。

property connect_kwargs: dict[source]

传递给 pyodbc.connect 的有效 kwargs。

kwargs 从连接 extra、connect_kwargs 和 hook 的 init 参数合并而来。传递给 hook 的值优先于来自连接的值。

如果提供了 attrs_before,则根据 pyodbc 的要求,键和值将被转换为 int。

get_sqlalchemy_engine(engine_kwargs=None)[source]

获取一个 sqlalchemy_engine 对象。

参数::

engine_kwargs – 用于 create_engine() 的 Kwargs。

返回::

创建的引擎。

get_conn()[source]

返回 pyodbc 连接对象。

get_uri()[source]

get_sqlalchemy_engine() 中调用的 URI。

get_sqlalchemy_connection(connect_kwargs=None, engine_kwargs=None)[source]

SQLAlchemy 连接对象。

此条目是否有帮助?