Выгрузить данные из Redshift на S3 с помощью Airflow
Я хотел бы выгрузить данные из базы данных 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
)
Но я получаю сообщение об ошибке "Broken DAG: невозможно импортировать имя" RedshiftToS3Transfer "из" airflow.operators "(неизвестное местоположение)". Любая идея о том, как импортировать RedshiftToS3Transfer, будет полезна.
1 ответ
Решение
Правильный способ импортировать это
из airflow.operators.redshift_to_s3_operator import RedshiftToS3Transfer