我在 AWS 中设置了 ETL 管道,如下所示
input_rawdata -> s3 -> lambda -> 触发 spark etl 脚本(通过 aws 胶水)-> 输出(s3,parquet 文件)
我的问题是假设以上是数据的初始加载,我如何设置以运行每天(或每小时)添加新行或更新现有记录的增量批次
a.) 我如何继续附加到相同的 s3 parquet 文件。以便后续的 presto db 查询产生最新数据。
b.) 如何处理重复记录获取查询的最新时间戳。
在 spark 脚本中,我是否需要创建源为 s3 的 Hive 外部表并在 presto db 中使用?
感谢您的任何投入。
最佳答案
Apache Hudi 将是一个很好的工具:https://hudi.incubator.apache.org/
您可以对数据以 Parquet 格式存储在 S3 中的表进行更新插入,并且 Presto 与之兼容。
例如,EMR 5.28 已经安装了 Hudi,您可以使用 Hive、Spark 和 Presto 查询 Hudi 数据集。
关于amazon-web-services - 使用 s3 作为数据湖的 AWS 中的 ETL 管道如何处理增量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46066745/