airflow.providers.apache.druid.hooks.druid

IngestionType

Druid 摄取类型。可以是原生批量摄取或基于 SQL 的摄取。

DruidHook

连接到 Druid overlord 进行摄取。

DruidDbApiHook

与 Druid broker 交互。

模块内容

class airflow.providers.apache.druid.hooks.druid.IngestionType[源码]

基类: enum.Enum

Druid 摄取类型。可以是原生批量摄取或基于 SQL 的摄取。

https://druid.apache.org/docs/latest/ingestion/index.html

BATCH = 1[源码]
MSQ = 2[源码]
class airflow.providers.apache.druid.hooks.druid.DruidHook(druid_ingest_conn_id='druid_ingest_default', timeout=1, max_ingestion_time=None, verify_ssl=True)[源码]

基类: airflow.hooks.base.BaseHook

连接到 Druid overlord 进行摄取。

要连接到使用 druid-basic-security 扩展保护的 Druid 集群,请将用户名和密码添加到 druid 摄取连接中。

参数:
  • druid_ingest_conn_id (str) – 连接到接受索引作业的 Druid overlord 机器的连接 ID

  • timeout (int) – 轮询 Druid 作业状态的时间间隔。必须大于或等于 1

  • max_ingestion_time (int | None) – 在假定作业失败之前的最大摄取时间

  • verify_ssl (bool) – 是否使用 SSL 加密来提交索引作业。如果设置为 False,则检查连接信息以获取要使用的 CA 捆绑包路径。默认为 True

druid_ingest_conn_id = 'druid_ingest_default'[源码]
timeout = 1[源码]
max_ingestion_time = None[源码]
header[源码]
verify_ssl = True[源码]
status_endpoint = 'druid/indexer/v1/task'[源码]
property conn: airflow.models.Connection[源码]
property get_connection_type: str[源码]
get_conn_url(ingestion_type=IngestionType.BATCH)[源码]

获取 Druid 连接 URL。

get_status_url(ingestion_type)[源码]

返回 Druid 状态 URL。

get_auth()[源码]

返回连接选项卡中的用户名和密码,作为 requests.auth.HTTPBasicAuth 对象。

如果这些详细信息尚未设置,则返回 None。

get_verify()[源码]
submit_indexing_job(json_index_spec, ingestion_type=IngestionType.BATCH)[源码]

提交 Druid 摄取作业。

class airflow.providers.apache.druid.hooks.druid.DruidDbApiHook(context=None, *args, **kwargs)[源码]

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

与 Druid broker 交互。

此 Hook 仅用于用户查询 Druid broker。对于摄取,请使用 druidHook。

参数:

context (dict | None) – 传递给 SQL 端点的可选查询上下文参数。示例:{"sqlFinalizeOuterSketches": True} 参见:https://druid.apache.org/docs/latest/querying/sql-query-context/

conn_name_attr = 'druid_broker_conn_id'[源码]
default_conn_name = 'druid_broker_default'[源码]
conn_type = 'druid'[源码]
hook_name = 'Druid'[源码]
supports_autocommit = False[源码]
context[源码]
get_conn()[源码]

建立与 druid broker 的连接。

get_uri()[源码]

获取 druid broker 的连接 URI。

例如: druid://localhost:8082/druid/v2/sql/

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,由 executemany 使用的光标将设置 fast_executemany 参数,如果驱动程序支持,这将带来更好的性能。

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

此条目有用吗?