airflow.providers.amazon.aws.hooks.redshift_sql

RedshiftSQLHook

针对 Amazon Redshift 执行语句。

模块内容

class airflow.providers.amazon.aws.hooks.redshift_sql.RedshiftSQLHook(*args, aws_conn_id='aws_default', **kwargs)[source]

基类:airflow.providers.common.sql.hooks.sql.DbApiHook

针对 Amazon Redshift 执行语句。

此 Hook 需要 redshift_conn_id 连接。

注意:对于 AWS IAM 认证,请在额外连接参数中使用 iam 并将其设置为 true。将密码字段留空。这将使用 “aws_default” 连接获取临时令牌,除非您在初始化 Hook 时通过 aws_conn_id 进行覆盖。集群标识符是从 host 字段的开头提取的,因此是可选的。但可以在 extra 字段中覆盖它。extras 示例:{"iam":true}

参数:

redshift_conn_id – 对 Amazon Redshift 连接 ID 的引用

注意

get_sqlalchemy_engine() 和 get_uri() 依赖于 sqlalchemy-amazon-redshift

conn_name_attr = 'redshift_conn_id'[source]
default_conn_name = 'redshift_default'[source]
conn_type = 'redshift'[source]
hook_name = 'Amazon Redshift'[source]
supports_autocommit = True[source]
aws_conn_id = 'aws_default'[source]
classmethod get_ui_field_behaviour()[source]

获取自定义字段行为。

property conn[source]
get_iam_token(conn)[source]

获取连接 Redshift 的临时密码。

端口是必需的。如果未提供,则对每个服务使用默认端口。

get_uri()[source]

已覆盖,使用 Redshift 方言作为驱动程序名称。

get_sqlalchemy_engine(engine_kwargs=None)[source]

已覆盖,用于传递 Redshift 特定的参数。

get_table_primary_key(table, schema='public')[source]

获取表的主键。

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

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

返回值:

主键列列表

返回类型:

list[str] | None

get_conn()[source]

获取 redshift_connector.Connection 对象。

get_openlineage_database_info(connection)[source]

返回用于 OpenLineage 的 Redshift 特定信息。

get_openlineage_database_dialect(connection)[source]

返回 Redshift 方言。

get_openlineage_default_schema()[source]

返回当前模式。这通常通过 SEARCH_PATH 参数更改。

此条目有帮助吗?