使用 Airflow 将数据从 Redshift 卸载到 S3

Posted

技术标签:

【中文标题】使用 Airflow 将数据从 Redshift 卸载到 S3【英文标题】:Unload data from Redshift to S3 using Airflow 【发布时间】:2019-08-28 09:54:42 【问题描述】:

我想将数据从 Redshift 数据库卸载到 S3 存储桶,稍后将用于复制到另一个数据库。我的 DAG 如下所示:

from airflow.operators import RedshiftToS3Transfer
from datetime import datetime, timedelta
from airflow import DAG

default_args = 
  'owner': 'me',
  'start_date': datetime.today(),
  'max_active_runs': 1,


dag = DAG(dag_id='redshift_S3',
  default_args=default_args,
  schedule_interval="@once",
  catchup=False
)

unload_to_S3 = RedshiftToS3Transfer(
  task_id='unload_to_S3',
  schema='schema_name',
  table='table_name',
  s3_bucket='bucket_name',
  s3_key='s3_key',
  redshift_conn_id='redshift',
  aws_conn_id='my_s3_conn',
  dag=dag
)

但我收到错误消息“DAG 损坏:无法从‘airflow.operators’(未知位置)导入名称‘RedshiftToS3Transfer’”。有关如何导入 RedshiftToS3Transfer 的任何想法都会有所帮助。

【问题讨论】:

您好,如果您要回答自己的问题,请将其作为答案而不是对问题的更新。这清楚地表明这个问题已经得到解答。 【参考方案1】:

正确的导入方式是

从气流.operators.redshift_to_s3_operator 导入 RedshiftToS3Transfer

【讨论】:

以上是关于使用 Airflow 将数据从 Redshift 卸载到 S3的主要内容,如果未能解决你的问题,请参考以下文章

使用来自 python 的 Airflow 触发 SQL 时出现模板错误?

在 docker 容器超时中从 s3 复制到 Redshift

使用 Airflow 将 Bigquery 查询结果发送到数据框

将数据从 redshift 传输到 postgresql

当我们使用 Glue 将数据从 DocumentDb 转储到 Redshift 时,从 Redshift 获取字符串而不是数组

将数据从本地迁移到 AWS redshift