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

Sha*_*hak 5 etl amazon-s3 amazon-web-services amazon-data-pipeline aws-glue

我在 AWS 中设置了 ETL 管道,如下所示

input_rawdata -> s3 -> lambda -> 触发spark etl脚本(通过awsglue)->输出(s3,parquet文件)

我的问题是假设上面是数据的初始加载,我如何设置运行每天(或每小时)添加新行或更新现有记录的增量批次

a.) 如何继续附加到相同的 s3 parquet 文件。以便后续 presto db 查询产生最新数据。

b.) 如何处理重复记录获取查询的最新时间戳。

在spark脚本中,我是否需要创建源为s3的Hive外部表并在presto db中使用?

感谢您的任何意见。

Ash*_*han 1

首先,不要尝试追加到 s3 中存在的文件,而是创建具有多个记录的文件。

要查询 s3 进行分析,您可以使用AWS Athena来描述数据,其中其数据目录与 Hive 元存储兼容。

要删除重复项,您可以通过 Athena 编写类似 SQL 的查询来查询唯一记录集。