gpt4 book ai didi

amazon-web-services - AWS Glue 不删除或弃用通过现已删除的 S3 数据生成的表

转载 作者:行者123 更新时间:2023-12-04 08:01:48 26 4
gpt4 key购买 nike

由于用户错误,Glue 爬虫经常运行的 S3 目录中充满了 .csv 文件。当 Glue 遍历 S3 目录时,它为 200,000 多个 csv 文件中的每一个创建了一个表。我运行了一个脚本,该脚本在不久之后删除了 .csv 文件(S3 存储桶启用了版本控制),并使用以下设置重新运行 Glue 爬虫:

Schema updates in the data store    Update the table definition in the data catalog.
Inherit schema from table Update all new and existing partitions with metadata from the table.
Object deletion in the data store Delete tables and partitions from the data catalog.

在 cloudwatch 日志中 - 它正在更新与剩余数据匹配的表,但不会删除从这些 .csv 文件生成的任何表。根据它在 Cloudwatch 上的配置日志 - 它应该能够这样做。

INFO : Crawler configured with Configuration 
{
"Version": 1,
"Grouping": {
"TableGroupingPolicy": "CombineCompatibleSchemas"
}
}
and SchemaChangePolicy
{
"UpdateBehavior": "UPDATE_IN_DATABASE",
"DeleteBehavior": "DELETE_FROM_DATABASE"

我应该包括另一个设置为在 S3 存储桶上爬行的爬虫,但它已经一年多没有运行了,所以我怀疑这可能是一个冲突点。

我对可能的问题感到困惑;就目前而言,我可以编写一个脚本来匹配现有表并删除名称中带有 csv 的表,或者通过让 Glue 重新爬行 S3 来删除并重建数据库,但如果可能的话 - 我宁愿 Glue 删除表识别后它们本身不指向 S3 本身内的任何文件。

最佳答案

我目前正在采用编写脚本的方法来删除 Athena 创建的表。 Athena 查询生成的所有文件都是 49 个字符长,结果文件有五个 _ 字符,元数据有六个 _ 字符,并且通常遵循以结尾的格式_csv 表示生成的查询结果,_csv_metadata 表示查询元数据。

我得到了我数据库中所有表名的列表,过滤它只包括那些长度为 49 个字符,以 _csv_metadata 结尾,并且有六个 _其中的字符。我正在遍历每个字符串并删除它们在数据库中的对应表。对于以 _csv 结尾的结果查询,我将截断 _csv_metadata 字符串的尾随九个字符,从而截断 _metadata

如果我要对此进行改进,我还会查询该表并确保其中没有数据并匹配某些列名定义。

关于amazon-web-services - AWS Glue 不删除或弃用通过现已删除的 S3 数据生成的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59796415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com