在我的公司,我们让 Pentaho Kettle 每天都在做我们的 ETL 工作(一台机器足以处理我们拥有的所有数据),这意味着:
- 从不同的,主要是关系数据库、电子表格和 API 读取数据
- 应用转换,并将数据插入 Redshift
- 对外部 SAAS 工具进行 API 调用
我们计划用更高级的工具重做它,这将使我们能够:
- 比每天一次更频繁地更新 dw
- 更容易获取数据并将数据推送到我们使用的 SAAS API(在 Pentaho 中处理和组合 JSON 很痛苦)
- 启用在工作流中触发其他工作负载(例如 python 脚本)
- 同步在 EC2 机器上运行的机器学习管道
- 准备好在一年内实现 5 倍的数据规模(其中 1 台机器可能还不够)
我想到的是 Luigi 或 Airflow 作为工作流管理器,并使用 python 执行基于代码的 ETL?由于我们的整个基础设施都在 AWS 云上,我看到 AWS Glue 现在也作为一个选项出现(我不知道它是否仅用于 etl,或者也可以用于我们计划包含的其他流程)
还有其他解决方案吗?有没有人有使用这些的经验(特别是他们如何使用 redshift、s3,可能在未来的 spark/kinesis 工作负载中触发)?
如果是,有哪些可以使用的库,以及一个开始和学习的好地方?