【发布时间】:2019-11-18 18:01:45
【问题描述】:
我正在使用 Airflow 设计一些 ETL 数据管道。数据转换是通过预置 AWS EMR Spark 集群并发送它的一些作业来完成的。作业从 S3 读取数据,对其进行处理,然后使用日期作为分区将它们写回 S3。
对于我的最后一步,我需要使用 SQL 脚本将 S3 数据加载到数据仓库,这些脚本使用 Python 脚本提交给 Redshift,但是我找不到一种干净的方法来检索需要加载的数据,即。在 Spark 转换期间生成了哪些日期分区(只能在作业执行期间知道,而不是事先知道)。
请注意,所有内容都是通过 Python 脚本使用 boto3 库进行编排的,该库从无法从外部访问的公司 VM 中运行。
从 EMR 获取此信息的最佳方式是什么?
现在我正在考虑不同的解决方案: - 将信息写入日志文件。通过 Python 脚本使用 SSH 从 Spark 主节点获取数据 - 将信息写入 S3 文件 - 将信息写入数据库(RDS?)
我正在努力确定这些解决方案的优缺点。我还想知道什么是通知数据转换已经结束并且可以获取元数据的最佳方式。
提前致谢
【问题讨论】:
标签: amazon-web-services apache-spark metadata airflow amazon-emr