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)[源代码]

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

通过 sqlalchemy-drill 与 Apache Drill 交互。

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

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

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

建立与 Drillbit 的连接。

get_uri()[源代码]

返回连接 URI。

例如: drill://127.0.0.1:8047/dfs

abstract set_autocommit(conn, autocommit)[源代码]

在连接上设置 autocommit 标志。

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

将元组集合插入到表中。

行分块插入,每个块(大小为 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,则 fast_executemany 参数将设置在 executemany 使用的游标上,如果驱动程序支持,这将带来更好的性能。

  • autocommit – 在执行查询之前将连接的 autocommit 设置为什么。

这个条目有帮助吗?