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

时间:2019-08-28 09:54:42

标签: amazon-s3 amazon-redshift airflow airflow-operator

我想将数据从Redshift db卸载到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 个答案:

答案 0 :(得分:2)

正确的导入方法是

从airflow.operators.redshift_to_s3_operator导入RedshiftToS3Transfer