Module Contents



Executes an COPY command to load files from s3 to Redshift


class*, schema: str, table: str, s3_bucket: str, s3_key: str, redshift_conn_id: str = 'redshift_default', aws_conn_id: str = 'aws_default', verify: Optional[Union[bool, str]] = None, column_list: Optional[List[str]] = None, copy_options: Optional[List] = None, autocommit: bool = False, method: str = 'APPEND', upsert_keys: Optional[List[str]] = None, **kwargs)[source]

Bases: airflow.models.BaseOperator

Executes an COPY command to load files from s3 to Redshift

See also

For more information on how to use this operator, take a look at the guide: S3 To Redshift Transfer Operator

  • schema (str) -- reference to a specific schema in redshift database

  • table (str) -- reference to a specific table in redshift database

  • s3_bucket (str) -- reference to a specific S3 bucket

  • s3_key (str) -- reference to a specific S3 key

  • redshift_conn_id (str) -- reference to a specific redshift database

  • aws_conn_id (str) -- reference to a specific S3 connection If the AWS connection contains 'aws_iam_role' in extras the operator will use AWS STS credentials with a token

  • verify (bool or str) --

    Whether or not to verify SSL certificates for S3 connection. By default SSL certificates are verified. You can provide the following values:

    • False: do not validate SSL certificates. SSL will still be used

      (unless use_ssl is False), but SSL certificates will not be verified.

    • path/to/cert/bundle.pem: A filename of the CA cert bundle to uses.

      You can specify this argument if you want to use a different CA cert bundle than the one used by botocore.

  • column_list (List[str]) -- list of column names to load

  • copy_options (list) -- reference to a list of COPY options

  • method (str) -- Action to be performed on execution. Available APPEND, UPSERT and REPLACE.

  • upsert_keys (List[str]) -- List of fields to use as key on upsert action

template_fields :Sequence[str] = ['s3_bucket', 's3_key', 'schema', 'table', 'column_list', 'copy_options'][source]
template_ext :Sequence[str] = [][source]
ui_color = #99e699[source]
execute(self, context: airflow.utils.context.Context) None[source]

This is the main method to derive when creating an operator. Context is the same dictionary used as when rendering jinja templates.

Refer to get_template_context for more context.

Was this entry helpful?