使用 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 查询结果发送到数据框
当我们使用 Glue 将数据从 DocumentDb 转储到 Redshift 时,从 Redshift 获取字符串而不是数组