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

Sau*_*uli 2 amazon-s3 amazon-redshift airflow airflow-operator

我想将数据从 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
)
Run Code Online (Sandbox Code Playgroud)

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

Sau*_*uli 7

导入这个的正确方法是

从airflow.operators.redshift_to_s3_operator 导入RedshiftToS3Transfer