airflow.providers.amazon.aws.operators.athena

模块内容

AthenaOperator

一个将 Trino/Presto 查询提交到 Amazon Athena 的操作符。

class airflow.providers.amazon.aws.operators.athena.AthenaOperator(*, query, database, output_location=None, client_request_token=None, workgroup='primary', query_execution_context=None, result_configuration=None, sleep_time=30, max_polling_attempts=None, log_query=True, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), catalog='AwsDataCatalog', **kwargs)[源代码]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.athena.AthenaHook]

一个将 Trino/Presto 查询提交到 Amazon Athena 的操作符。

注意

如果任务在运行时被终止,它将取消已启动的 Athena 查询,除非在可延期模式下运行。

另请参阅

有关如何使用此操作符的更多信息,请查看指南: 在 Amazon Athena 中运行查询

参数
  • query (str) – 要在 Amazon Athena 上运行的 Trino/Presto 查询。(已模板化)

  • database (str) – 要选择的数据库。(已模板化)

  • catalog (str) – 要选择的目录。(已模板化)

  • output_location (str | None) – 用于写入查询结果的 s3 路径。(已模板化) 要运行查询,您必须使用以下方式之一指定查询结果位置:使用此设置(客户端)为单个查询指定,或在工作组中使用 WorkGroupConfiguration。如果两者均未设置,Athena 将发出错误,指出未提供输出位置

  • client_request_token (str | None) – 用户创建的唯一令牌,以避免多次执行同一查询

  • workgroup (str) – 在其中运行查询的 Athena 工作组。(已模板化)

  • query_execution_context (dict[str, str] | None) – 需要运行查询的上下文

  • result_configuration (dict[str, Any] | None) – 包含存储结果路径和与加密相关的配置的字典

  • sleep_time (int) – 两次连续调用之间等待以检查 Athena 上的查询状态的时间(以秒为单位)

  • max_polling_attempts (int | None) – 在函数退出之前轮询查询状态的次数。要限制任务执行时间,请使用 execution_timeout。

  • log_query (bool) – 是否在执行时记录 athena 查询和其他执行参数。默认为 True

  • aws_conn_id – 用于 AWS 凭据的 Airflow 连接。如果此项为 None 或为空,则使用默认的 boto3 行为。如果在分布式方式下运行 Airflow 且 aws_conn_id 为 None 或为空,则将使用默认的 boto3 配置(并且必须在每个工作节点上维护)。

  • region_name – AWS region_name。如果未指定,则使用默认的 boto3 行为。

  • verify – 是否验证 SSL 证书。请参阅: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – botocore 客户端的配置字典(键值对)。请参阅: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

aws_hook_class[源代码]
ui_color = '#44b5e2'[源代码]
template_fields: collections.abc.Sequence[str][源代码]
template_ext: collections.abc.Sequence[str] = ('.sql',)[源代码]
template_fields_renderers[源代码]
execute(context)[源代码]

在 Amazon Athena 上运行 Trino/Presto 查询。

execute_complete(context, event=None)[源代码]
on_kill()[源代码]

取消提交的 Amazon Athena 查询。

get_openlineage_facets_on_complete(_)[源代码]

通过解析 SQL 查询并使用 Athena API 对其进行丰富,来检索 OpenLineage 数据。

除了 CTAS 查询之外,查询和计算结果也存储在 S3 位置。因此,此位置附加了额外的输出。我们没有使用结果保存的完整路径(用户的前缀 + 一些 UUID),而是仅使用用户提供的路径创建一个数据集。这应该更容易在不同的进程中匹配此数据集。

get_openlineage_dataset(database, table)[源代码]

此条目是否有帮助?