airflow.providers.apache.drill.hooks.drill

DrillHook

通过 sqlalchemy-drill 与 Apache Drill 交互。

模块内容

class airflow.providers.apache.drill.hooks.drill.DrillHook(*args, schema=None, log_sql=True, **kwargs)[source]

继承自: airflow.providers.common.sql.hooks.sql.DbApiHook

通过 sqlalchemy-drill 与 Apache Drill 交互。

您可以在连接的 extras 字段中指定 sqlalchemy-drill 用于与 Drill 通信的 SQLAlchemy 方言和驱动程序,例如,对于通过 Drill REST API 进行通信,可以设置为 {"dialect_driver": "drill+sadrill"}。有关支持的方言和驱动程序的描述,请参阅 sqlalchemy-drill 文档。

您可以使用 extras 字段指定 sqlalchemy-drill 连接的默认 storage_plugin,例如 {"storage_plugin": "dfs"}

conn_name_attr = 'drill_conn_id'[source]
default_conn_name = 'drill_default'[source]
conn_type = 'drill'[source]
hook_name = 'Drill'[source]
supports_autocommit = False[source]
get_conn()[source]

建立与 Drillbit 的连接。

get_uri()[source]

返回连接 URI。

例如: drill://localhost:8047/dfs

abstract set_autocommit(conn, autocommit)[source]

在连接上设置自动提交标志。

abstract insert_rows(table, rows, target_fields=None, commit_every=1000, replace=False, **kwargs)[source]

将一组元组插入到表中。

行以块为单位插入,每个块(大小为 commit_every)在一个新的事务中完成。

参数:
  • table (str) – 目标表的名称

  • rows (collections.abc.Iterable[tuple[str]]) – 要插入到表中的行

  • target_fields (collections.abc.Iterable[str] | None) – 要填充到表中的列名

  • commit_every (int) – 在一个事务中插入的最大行数。设置为 0 表示在一个事务中插入所有行。

  • replace (bool) – 是否替换而不是插入

  • executemany – 如果为 True,所有行将按照 commit_every 参数定义的块一次性插入。这仅适用于所有行具有相同数量列名的情况,但能带来更好的性能。

  • fast_executemany – 如果为 True,用于 executemany 的游标将设置 fast_executemany 参数,如果驱动程序支持,这将带来更好的性能。

  • autocommit – 在执行查询之前,连接的自动提交设置应为何值。

此条目是否有帮助?