使用 Airflow 将数据从 Postgres/MySQL 移动到 S3

Move data from Postgres/MySQL to S3 using Airflow

我们正在尝试从 Pentaho Kettle 迁移到 Apache AIrflow 以执行 ETL 并将所有数据处理集中在一个工具下。

我们每天使用Kettle从Postgres/Mysql数据库中读取数据,并将数据移动到S3 -> Redshift。

最简单的方法是什么?我没有看到可以直接执行此操作的操作员;所以我应该使用 MySQL/Postgres 运算符将数据放入本地文件,并使用 S3 运算符将数据移动到 S3 吗?

谢谢

您可以构建自己的运算符 'mysql_to_s3' 并将其作为插件添加到 Airflow。

有一个操作员可以将数据从 Mysql 存档到 gcs:

mysql_to_gcs.py

您可以使用 s3_hook 代替 def _upload_to_gcs 上的所有代码稍作更改:s3_hook.py.

关于自定义插件的文档:

Airflow plugins: Blog article

Airflow plugins: Official documentation

airflow-plugins(天文学家)有一个 MySqlToS3Operator,它将获取 mysql 查询的结果集并将其作为 csv 或 json.

插件可以在这里找到: https://github.com/airflow-plugins/mysql_plugin/blob/master/operators/mysql_to_s3_operator.py

从那里您可以使用 s3_to_redshift 运算符将数据从 S3 加载到 redshift 中:https://airflow.readthedocs.io/en/latest/_modules/airflow/operators/s3_to_redshift_operator.html