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。

此條目有幫助嗎?