airflow.providers.apache.drill.hooks.drill¶
类¶
通过 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"}
。- 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 – 在执行查询之前,连接的自动提交设置应为何值。