airflow.providers.amazon.aws.transfers.redshift_to_s3

将数据从 AWS Redshift 传输到 S3 桶中。

RedshiftToS3Operator

执行 UNLOAD 命令到 S3,生成包含标头的 CSV 文件。

模块内容

class airflow.providers.amazon.aws.transfers.redshift_to_s3.RedshiftToS3Operator(*, s3_bucket, s3_key, schema=None, table=None, select_query=None, redshift_conn_id='redshift_default', aws_conn_id=NOTSET, verify=None, unload_options=None, autocommit=False, include_header=False, parameters=None, table_as_file_name=True, redshift_data_api_kwargs=None, **kwargs)[源码]

基类: airflow.models.BaseOperator

执行 UNLOAD 命令到 S3,生成包含标头的 CSV 文件。

另请参阅

有关如何使用此操作符的更多信息,请参阅指南: Amazon Redshift 到 Amazon S3 传输操作符

参数:
  • s3_bucket (str) – 对特定 S3 桶的引用

  • s3_key (str) – 对特定 S3 键的引用。如果 table_as_file_name 设置为 False,则此参数必须包含所需的文件名

  • schema (str | None) – 对 Redshift 数据库中特定 schema 的引用,在提供了 table 参数且未提供 select_query 参数时使用。卸载临时表时请勿提供此参数

  • table (str | None) – 对 Redshift 数据库中特定表的引用,在提供了 schema 参数且未提供 select_query 参数时使用

  • select_query (str | None) – 用于从 Redshift 数据库获取数据的自定义 select 查询,优先于默认查询 SELECT * FROM ``schema`.``table``

  • redshift_conn_id (str) – 对特定 Redshift 数据库的引用

  • aws_conn_id (str | None | airflow.utils.types.ArgNotSet) – 对特定 S3 连接的引用。如果 AWS 连接在 extras 中包含“aws_iam_role”,操作符将使用带有 token 的 AWS STS 凭证 https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-authorization.html#copy-credentials

  • verify (bool | str | None) –

    是否验证 S3 连接的 SSL 证书。默认情况下,SSL 证书会被验证。您可以提供以下值:

    • False: 不验证 SSL 证书。SSL 仍然会使用

      (除非 use_ssl 设置为 False),但 SSL 证书不会被验证。

    • path/to/cert/bundle.pem: 要使用的 CA 证书捆绑文件的文件名。

      如果您想使用与 botocore 使用的不同的 CA 证书捆绑包,可以指定此参数。

  • unload_options (list | None) – 对 UNLOAD 选项列表的引用

  • autocommit (bool) – 如果设置为 True,将自动提交 UNLOAD 语句。否则,它将在 Redshift 连接关闭前提交。

  • include_header (bool) – 如果设置为 True,则 S3 文件包含标题列。

  • parameters (collections.abc.Iterable | collections.abc.Mapping | None) – (可选)用于渲染 SQL 查询的参数。

  • table_as_file_name (bool) – 如果设置为 True,则 S3 文件将以表名命名。在提供了 table 参数时适用。

  • redshift_data_api_kwargs (dict | None) – 如果使用 Redshift Data API 而不是基于 SQL 的连接,则为 hook 的 execute_query 方法的参数字典。不能包含以下任何 kwargs: {'sql', 'parameters'}

template_fields: collections.abc.Sequence[str] = ('s3_bucket', 's3_key', 'schema', 'table', 'unload_options', 'select_query', 'redshift_conn_id',...[源码]
template_ext: collections.abc.Sequence[str] = ('.sql',)[源码]
template_fields_renderers[源码]
ui_color = '#ededed'[源码]
s3_bucket[源码]
s3_key[源码]
schema = None[源码]
table = None[源码]
redshift_conn_id = 'redshift_default'[源码]
verify = None[源码]
unload_options = [][源码]
autocommit = False[源码]
include_header = False[源码]
parameters = None[源码]
table_as_file_name = True[源码]
redshift_data_api_kwargs[源码]
select_query = None[源码]
property default_select_query: str | None[源码]
property use_redshift_data[源码]
execute(context)[源码]

创建操作符时派生。

上下文与渲染 jinja 模板时使用的字典相同。

有关更多上下文信息,请参阅 get_template_context。

get_openlineage_facets_on_complete(task_instance)[源码]

实现 on_complete,因为我们可能会查询表详情。

此条目有帮助吗?