airflow.providers.apache.pinot.hooks.pinot¶
类¶
此 Hook 是对 pinot-admin.sh 脚本的封装。 |
|
与 Pinot Broker 查询 API 交互。 |
模块内容¶
- class airflow.providers.apache.pinot.hooks.pinot.PinotAdminHook(conn_id='pinot_admin_default', cmd_path='pinot-admin.sh', pinot_admin_system_exit=False)[源代码]¶
基类:
airflow.hooks.base.BaseHook
此 Hook 是对 pinot-admin.sh 脚本的封装。
目前,仅实现了其子命令的一小部分,这是将离线数据摄取到 Apache Pinot 所必需的(即 AddSchema、AddTable、CreateSegment 和 UploadSegment)。它们的命令选项基于 Pinot v0.1.0。
不幸的是,截至 v0.1.0,pinot-admin.sh 始终以状态码 0 退出。为了解决此问题,用户可以使用 pinot_admin_system_exit 标志。如果其值设置为 false,则此 hook 根据输出消息而不是状态码来评估结果。Pinot 的此行为预计将在下一版本中得到改进,其中包括以下 PR:https://github.com/apache/incubator-pinot/pull/4110
- 参数:
- create_segment(generator_config_file=None, data_dir=None, segment_format=None, out_dir=None, overwrite=None, table_name=None, segment_name=None, time_column_name=None, schema_file=None, reader_config_file=None, enable_star_tree_index=None, star_tree_index_spec_file=None, hll_size=None, hll_columns=None, hll_suffix=None, num_threads=None, post_creation_verification=None, retry=None)[源代码]¶
通过运行 CreateSegment 命令创建 Pinot Segment。
- class airflow.providers.apache.pinot.hooks.pinot.PinotDbApiHook(*args, schema=None, log_sql=True, **kwargs)[源代码]¶
基类:
airflow.providers.common.sql.hooks.sql.DbApiHook
与 Pinot Broker 查询 API 交互。
此 hook 使用标准 SQL 端点,因为 PQL 端点即将废弃。 https://docs.pinot.apache.org/users/api/querying-pinot-using-standard-sql
- get_uri()[源代码]¶
获取 Pinot Broker 的连接 URI。
例如: http://localhost:9000/query/sql
- get_records(sql, parameters=None, **kwargs)[源代码]¶
执行 SQL 并返回一组记录。
- 参数:
parameters (collections.abc.Iterable | collections.abc.Mapping[str, Any] | None) – 用于渲染 SQL 查询的参数。
- get_first(sql, parameters=None)[源代码]¶
执行 SQL 并返回第一个结果行。
- 参数:
parameters (collections.abc.Iterable | collections.abc.Mapping[str, Any] | None) – 用于渲染 SQL 查询的参数。
- abstract insert_rows(table, rows, target_fields=None, commit_every=1000, replace=False, **kwargs)[源代码]¶
将一组元组插入到表中。
行按块插入,每个块(大小为
commit_every
)在新事务中完成。- 参数:
table (str) – 目标表的名称
rows (str) – 要插入到表中的行
target_fields (str | None) – 要填充表中的列名称
commit_every (int) – 单个事务中插入的最大行数。设置为 0 以在单个事务中插入所有行。
replace (bool) – 是替换而不是插入
executemany – 如果为 True,则所有行将按照 commit_every 参数定义的块一次性插入。这仅适用于所有行具有相同数量的列名的情况,但能带来更好的性能。
fast_executemany – 如果为 True,则用于 executemany 的游标将设置 fast_executemany 参数,这可以带来更好的性能,如果驱动程序支持的话。
autocommit – 在执行查询之前,连接的 autocommit 设置为何。