airflow.providers.amazon.aws.hooks.athena

此模块包含 AWS Athena Hook。

模块内容

AthenaHook

与 Amazon Athena 交互。

函数

query_params_to_string(params)

属性

MULTI_LINE_QUERY_LOG_PREFIX

airflow.providers.amazon.aws.hooks.athena.MULTI_LINE_QUERY_LOG_PREFIX = Multiline-String[来源]
显示值
"""
                """
airflow.providers.amazon.aws.hooks.athena.query_params_to_string(params)[来源]
class airflow.providers.amazon.aws.hooks.athena.AthenaHook(*args, log_query=True, **kwargs)[来源]

基类: airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook

与 Amazon Athena 交互。

提供围绕 boto3.client("athena") 的厚包装器。

参数

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

可以指定其他参数(例如 aws_conn_id),并将传递给底层的 AwsBaseHook。

INTERMEDIATE_STATES = ('QUEUED', 'RUNNING')[来源]
FAILURE_STATES = ('FAILED', 'CANCELLED')[来源]
SUCCESS_STATES = ('SUCCEEDED',)[来源]
TERMINAL_STATES = ('SUCCEEDED', 'FAILED', 'CANCELLED')[来源]
run_query(query, query_context, result_configuration, client_request_token=None, workgroup='primary')[来源]

使用提供的配置在 Athena 上运行 Trino/Presto 查询。

参数
  • query (str) – 要运行的 Trino/Presto 查询。

  • query_context (dict[str, str]) – 需要运行查询的上下文。

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

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

  • workgroup (str) – Athena 工作组名称,如果未指定,则为 'primary'

返回

提交的查询执行 ID。

返回类型

str

get_query_info(query_execution_id, use_cache=False)[来源]

获取有关单个查询执行的信息。

参数
  • query_execution_id (str) – 提交的 Athena 查询的 ID

  • use_cache (bool) – 如果为 True,则使用执行信息缓存

check_query_status(query_execution_id, use_cache=False)[来源]

获取提交的查询的状态。

参数

query_execution_id (str) – 提交的 Athena 查询的 ID

返回

如果响应格式不正确,则为有效查询状态之一或 None

返回类型

str | None

get_state_change_reason(query_execution_id, use_cache=False)[来源]

获取状态更改的原因(例如,错误消息)。返回 None 或原因字符串。

参数

query_execution_id (str) – 提交的 Athena 查询的 ID

get_query_results(query_execution_id, next_token_id=None, max_results=1000)[来源]

获取提交的查询结果。

参数
  • query_execution_id (str) – 提交的 Athena 查询的 ID

  • next_token_id (str | None) – 指定从哪里开始分页的令牌。

  • max_results (int) – 此请求中要返回的最大结果数(行)。

返回

如果查询处于中间、失败或已取消状态,则为 None。否则,为查询输出的字典。

返回类型

dict | None

get_query_results_paginator(query_execution_id, max_items=None, page_size=None, starting_token=None)[source]

获取已提交的 Athena 查询结果。

参数
  • query_execution_id (str) – 提交的 Athena 查询的 ID

  • max_items (int | None) – 要返回的总项目数。

  • page_size (int | None) – 每个页面的大小。

  • starting_token (str | None) – 指定从何处开始分页的令牌。

返回

如果查询处于中间状态、失败状态或已取消状态,则返回 None。否则,返回一个分页器,用于迭代结果页面。

返回类型

botocore.paginate.PageIterator | None

在返回的分页器上调用 :meth`.build_full_result()` 以一次获取所有结果。

poll_query_status(query_execution_id, max_polling_attempts=None, sleep_time=None)[source]

轮询已提交查询的状态,直到其达到最终状态。

参数
  • query_execution_id (str) – 已提交的 Athena 查询的 ID

  • max_polling_attempts (int | None) – 函数退出前轮询查询状态的次数

  • sleep_time (int | None) – 两次连续查询状态检查之间等待的时间(以秒为单位)。

返回

最终状态之一

返回类型

str | None

get_output_location(query_execution_id)[source]

获取 S3 URI 格式的查询结果的输出位置。

参数

query_execution_id (str) – 提交的 Athena 查询的 ID

stop_query(query_execution_id)[source]

取消已提交的查询。

参数

query_execution_id (str) – 提交的 Athena 查询的 ID

此条目是否有帮助?