airflow.providers.amazon.aws.hooks.redshift_data

模块内容

QueryExecutionOutput

描述查询执行的输出。

RedshiftDataHook

与 Amazon Redshift Data API 交互。

属性

FINISHED_STATE

FAILED_STATE

ABORTED_STATE

FAILURE_STATES

RUNNING_STATES

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 数据查询失败的错误。

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

基类:ValueError

引发 redshift 数据查询被中止的错误。

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) – 启用数据库访问的密钥的名称或 ARN

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

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

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

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

  • workgroup_name (str | None) – Redshift Serverless 工作组的名称。与 cluster_identifier 互斥。指定此参数以查询 Redshift Serverless。更多信息请参考 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)[source]
check_query_is_finished(statement_id)[source]

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

parse_statement_response(resp)[source]

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

返回表主键。

RedshiftSQLHook.get_table_primary_key() 复制

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

  • database (str) – 数据库的名称

  • schema (str | None) – 目标架构的名称,默认为 public

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

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

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

  • secret_arn (str | None) – 启用数据库访问的密钥的名称或 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)[source]

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

参数

statement_id (str) – 语句的 UUID

async check_query_is_finished_async(statement_id)[source]

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

它获取 statement_id,异步连接到 redshift 数据以通过 statement_id 获取查询状态,并返回查询状态。

参数

statement_id (str) – 语句的 UUID

此条目是否有帮助?