airflow.providers.amazon.aws.hooks.athena

本模块包含 AWS Athena hook。

属性

MULTI_LINE_QUERY_LOG_PREFIX

AthenaHook

与 Amazon Athena 交互。

函数

query_params_to_string(params)

模块内容

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')[源代码]
log_query = True[源代码]
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)[源代码]

获取已提交的 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)[源代码]

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

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

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

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

返回:

最终状态之一。

返回类型:

str | None

get_output_location(query_execution_id)[源代码]

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

参数:

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

stop_query(query_execution_id)[源代码]

取消已提交的查询。

参数:

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

此条目有帮助吗?