amazon-web-services - 使用 s3 作为数据湖的 AWS 中的 ETL 管道如何处理增量更新

标签 amazon-web-services amazon-s3 etl amazon-data-pipeline aws-glue

我在 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/

相关文章:

javascript - S3 listObjects递归 Node

node.js - 如何使用 Node.js 和 Axios 将文件上传到 AWS 中的预签名 URL?

amazon-s3 - 有没有办法将 php 文件设置为亚马逊 s3 上的索引文件?

sql-server - 无法初始化链接服务器的 OLE DB 提供程序 Microsoft.ACE.OLEDB.12.0 的数据源对象(空)

c# - SSIS 电子邮件日志文件和错误处理

git - 如何在同一台机器上使用和克隆 github 和 aws (CodeCommit) 存储库?

amazon-web-services - AWS 代入角色,凭证持续一个多小时

amazon-web-services - AWS ALB - 您必须从至少两个可用区中指定子网

php - Amazon S3 删除标记

hadoop - 在 talend 大数据中创建与 hadoop 的连接时出现问题