【问题标题】:Move data from Postgres/MySQL to S3 using Airflow使用 Airflow 将数据从 Postgres/MySQL 移动到 S3
【发布时间】:2017-10-13 14:04:07
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: python amazon-s3 airflow


    【解决方案1】:

    您可以构建自己的运算符“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

    【讨论】:

      【解决方案2】:

      airflow-plugins(由 Astronomer 提供)有一个 MySqlToS3Operator,它将获取 mysql 查询的结果集并将其作为 csv 或 json 放在 s3 上。

      插件可以在这里找到: 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

      【讨论】:

      • 请注意,操作符是天文学家编写维护的插件,需要导入天文钩子
      • @JavierLópezTomás 感谢您的关注。我已经更新了答案以反映这一点。
      • @JavierLópezTomás,你如何导入天文钩子?我搜索了他们的文档并没有找到任何东西。换句话说,是否可以不购买订阅?
      • 确实如此。无论如何,我正在创建 MySQLToS3Operator:github.com/apache/airflow/pull/6670 如果您现在需要它并且不想等到它发布,您可以将操作符代码复制到您的气流安装中(它完全可以使用)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 2020-08-28
      相关资源
      最近更新 更多