airflow.providers.amazon.aws.hooks.redshift_data

属性

FINISHED_STATE

FAILED_STATE

ABORTED_STATE

FAILURE_STATES

RUNNING_STATES

异常

RedshiftDataQueryFailedError

引发 Redshift Data 查询失败的错误。

RedshiftDataQueryAbortedError

引发 Redshift Data 查询中止的错误。

QueryExecutionOutput

描述查询执行的输出。

RedshiftDataHook

与 Amazon Redshift Data API 交互。

模块内容

airflow.providers.amazon.aws.hooks.redshift_data.FINISHED_STATE = 'FINISHED'[源码]
airflow.providers.amazon.aws.hooks.redshift_data.FAILED_STATE = 'FAILED'[源码]
airflow.providers.amazon.aws.hooks.redshift_data.ABORTED_STATE = 'ABORTED'[源码]
airflow.providers.amazon.aws.hooks.redshift_data.FAILURE_STATES[源码]
airflow.providers.amazon.aws.hooks.redshift_data.RUNNING_STATES[源码]
class airflow.providers.amazon.aws.hooks.redshift_data.QueryExecutionOutput[源码]

描述查询执行的输出。

statement_id: str[源码]
session_id: str | None[源码]
exception airflow.providers.amazon.aws.hooks.redshift_data.RedshiftDataQueryFailedError[源码]

基类: ValueError

引发 Redshift Data 查询失败的错误。

exception airflow.providers.amazon.aws.hooks.redshift_data.RedshiftDataQueryAbortedError[源码]

基类: ValueError

引发 Redshift Data 查询中止的错误。

class airflow.providers.amazon.aws.hooks.redshift_data.RedshiftDataHook(*args, **kwargs)[源码]

基类: airflow.providers.amazon.aws.hooks.base_aws.AwsGenericHook[mypy_boto3_redshift_data.RedshiftDataAPIServiceClient]

与 Amazon Redshift Data API 交互。

提供围绕 boto3.client("redshift-data") 的轻量级封装。

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

execute_query(sql, database=None, cluster_identifier=None, db_user=None, parameters=None, secret_arn=None, statement_name=None, with_event=False, wait_for_completion=True, poll_interval=10, workgroup_name=None, session_id=None, session_keep_alive_seconds=None)[源码]

对 Amazon Redshift 执行语句。

参数:
  • sql (str | list[str]) – 要运行的 SQL 语句或 SQL 语句列表

  • database (str | None) – 数据库名称

  • cluster_identifier (str | None) – 集群唯一标识符

  • db_user (str | None) – 数据库用户名

  • parameters (collections.abc.Iterable | None) – SQL 语句的参数

  • secret_arn (str | None) – 启用数据库访问的 Secret 名称或 ARN

  • statement_name (str | None) – SQL 语句名称

  • with_event (bool) – 是否向 EventBridge 发送事件

  • wait_for_completion (bool) – 是否等待结果

  • poll_interval (int) – 检查查询状态的频率(单位:秒)

  • workgroup_name (str | None) – Redshift 无服务器工作组名称。与 cluster_identifier 参数互斥。指定此参数以查询 Redshift 无服务器。更多信息请参阅 https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-serverless.html

  • session_id (str | None) – 查询会话标识符

  • session_keep_alive_seconds (int | None) – 查询完成后保持会话活动的持续时间(单位:秒)。会话保持活动的最长时间为 24 小时

返回 statement_id:

str,语句的 UUID

返回类型:

QueryExecutionOutput

wait_for_results(statement_id, poll_interval)[源码]
check_query_is_finished(statement_id)[源码]

检查查询是否完成,如果失败则引发异常。

parse_statement_response(resp)[源码]

解析 describe_statement 的响应。

get_table_primary_key(table, database, schema='public', cluster_identifier=None, workgroup_name=None, db_user=None, secret_arn=None, statement_name=None, with_event=False, wait_for_completion=True, poll_interval=10)[源码]

返回表主键。

复制自 RedshiftSQLHook.get_table_primary_key()

参数:
  • table (str) – 目标表名称

  • database (str) – 数据库名称

  • schema (str | None) – 目标模式名称,默认为 public

  • cluster_identifier (str | None) – 集群唯一标识符

  • workgroup_name (str | None) – Redshift 无服务器工作组名称。与 cluster_identifier 参数互斥。指定此参数以查询 Redshift 无服务器。更多信息请参阅 https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-serverless.html

  • db_user (str | None) – 数据库用户名

  • secret_arn (str | None) – 启用数据库访问的 Secret 名称或 ARN

  • statement_name (str | None) – SQL 语句名称

  • with_event (bool) – 指示是否向 EventBridge 发送事件

  • wait_for_completion (bool) – 指示是否等待结果,如果为 True 则等待,如果为 False 则不等待

  • poll_interval (int) – 检查查询状态的频率(单位:秒)

返回值:

主键列列表

返回类型:

list[str] | None

async is_still_running(statement_id)[源码]

检查查询是否仍在运行的异步函数。

参数:

statement_id (str) – 语句的 UUID

async check_query_is_finished_async(statement_id)[源码]

检查语句是否完成的异步函数。

它接受 statement_id,异步连接到 Redshift Data 以根据 statement_id 获取查询状态并返回查询状态。

参数:

statement_id (str) – 语句的 UUID

此条目是否有帮助?