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 = 多行字符串[source]
显示值
"""
          """
airflow.providers.amazon.aws.hooks.athena.query_params_to_string(params)[source]
class airflow.providers.amazon.aws.hooks.athena.AthenaHook(*args, log_query=True, **kwargs)[source]

Bases: 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')[source]
FAILURE_STATES = ('FAILED', 'CANCELLED')[source]
SUCCESS_STATES = ('SUCCEEDED',)[source]
TERMINAL_STATES = ('SUCCEEDED', 'FAILED', 'CANCELLED')[source]
log_query = True[source]
run_query(query, query_context, result_configuration, client_request_token=None, workgroup='primary')[source]

在 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)[source]

获取单次查询执行的相关信息。

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

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

check_query_status(query_execution_id, use_cache=False)[source]

获取已提交查询的状态。

参数:

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

返回:

有效的查询状态之一,若响应格式不正确则返回 None

返回类型:

str | None

get_state_change_reason(query_execution_id, use_cache=False)[source]

获取状态变化的原因(例如错误信息)。返回 None 或原因字符串。

参数:

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

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

获取已提交查询的结果。

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

  • next_token_id (str | None) – 指定分页起始位置的 token。

  • 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) – 用于指定分页起始位置的 token。

返回:

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。

此条目是否有帮助?