AWS Glue非常适合将数据从原始格式转换为所需的任何格式,并使源数据集和目标数据集保持同步。
但是,我有一个场景,数据从不受信任的外部来源进入“着陆区”存储区,并且ETL的第一步需要是数据验证步骤,该步骤仅允许有效数据传递到数据湖,而非-将有效数据移至隔离区进行手动检查。
无效数据包括:
“着陆区”存储区不是数据湖的一部分,它只是传入数据的临时死点,因此,一旦将文件移到湖中后,我需要验证工作才能从该存储区中删除文件和/或隔离区。
胶水有可能吗?如果数据已从源存储桶中删除,那么Glue最终不会在后续更新中将其从下游删除吗?
此验证步骤是否需要其他工具(例如StreamSets,NiFi或带有AWS Batch的Step Functions),并且仅在数据进入湖中时才使用Glue?
(我知道我可以在存储桶本身上设置生命周期规则,以在一定时间(例如24小时)后删除数据,但是从理论上讲,这可以在Glue处理数据之前删除数据,例如,如果Glue有问题工作)
答案 0 :(得分:0)
boto3随附了您的粘合环境。在通过胶水处理完数据后,最好使用boto3 s3客户端/资源删除登录文件
答案 1 :(得分:0)
请参阅 docs 中的 purge_s3_path:
glueContext.purge_s3_path(s3_path, options={}, transformation_ctx="")
<块引用>
从指定的 Amazon S3 路径中递归删除文件。
另外,请确保您的 AWSGlueServiceRole
具有 s3:DeleteObject
权限