首页 > 解决方案 > 使 Glue 在作业后删除源数据

问题描述

AWS Glue 非常适合将数据从原始形式转换为您需要的任何格式,并保持源和目标数据集同步。

但是,我有一个场景,数据从不受信任的外部来源落在“登陆区域”存储桶中,第一个 ETL 步骤需要是数据验证步骤,它只允许有效数据传递到数据湖,而无效数据被移至隔离桶进行人工检查。

无效数据包括:

“着陆区”存储桶不是数据湖的一部分,它只是传入数据的临时死角,因此我需要验证作业从该存储桶中删除文件,一旦它将文件移动到湖和/或隔离桶。

这可以用胶水吗?如果数据从源存储桶中删除,Glue 最终不会在后续更新中将其删除到下游吗?

我是否需要其他工具(例如 StreamSets、NiFi 或带有 AWS Batch 的 Step Functions)来执行此验证步骤,并且仅在数据进入湖中后才使用 Glue?

(我知道我可以在存储桶本身上设置生命周期规则以在一定时间后删除数据,比如 24 小时,但理论上这可以在 Glue 处理数据之前删除数据,例如在 Glue 作业出现问题的情况下)

标签: bigdataetlaws-glue

解决方案


请参阅文档中的purge_s3_path

glueContext.purge_s3_path(s3_path, options={}, transformation_ctx="")

以递归方式从指定的 Amazon S3 路径中删除文件。

另外,请确保您AWSGlueServiceRoles3:DeleteObject权限


推荐阅读