Glue Crawler 跳过特定的 S3 文件夹

Posted

技术标签:

【中文标题】Glue Crawler 跳过特定的 S3 文件夹【英文标题】:Glue Crawler Skips a Particular S3 Folder 【发布时间】:2021-02-17 06:13:21 【问题描述】:

我的 S3 存储桶按此层次结构组织,存储 parquet 文件:<folder-name>/year=<yyyy>/month=<mm>/day=<dd>/<filename>.parquet

手动固定

对于特定日期(即单个镶木地板文件),我会进行一些手动修复

下载 parquet 文件并将其读取为 pandas DataFrame 更新了一些值,而列保持不变 用相同的文件名将 pandas DataFrame 保存回 parquet 文件 已将其上传回相同的 S3 存储桶子文件夹

PS:我好像在 S3 上删除了 parquet 文件一次,导致子文件夹为空。

然后,我重新运行 Glue 爬虫,指向 <folder-name>/。不幸的是,雅典娜表中缺少该特定日期的数据。

爬虫运行完成后,通知如下

Crawler <my-table-name> completed and made the following changes: 0 tables created, 0 tables updated. See the tables created in database <my-databse-name>.

我的 Glue 爬虫中是否有任何错误配置?谢谢

胶水爬行器配置

数据存储中的架构更新:更新数据目录中的表定义。 从表中继承架构:使用表中的元数据更新所有新的和现有的分区。 数据存储中的对象删除:从数据目录中删除表和分区。

CloudWatch 中的爬虫日志

BENCHMARK : Running Start Crawl for Crawler <my-table-name>
BENCHMARK : Classification complete, writing results to database <my-database-name>
INFO : Crawler configured with Configuration

    "Version": 1,
    "CrawlerOutput": 
        "Partitions": 
            "AddOrUpdateBehavior": "InheritFromTable"
        
    ,
    "Grouping": 
        "TableGroupingPolicy": "CombineCompatibleSchemas"
    

 and SchemaChangePolicy 

    "UpdateBehavior": "UPDATE_IN_DATABASE",
    "DeleteBehavior": "DELETE_FROM_DATABASE"

. Note that values in the Configuration override values in the SchemaChangePolicy for S3 Targets.

BENCHMARK : Finished writing to Catalog
BENCHMARK : Crawler has finished running and is in state READY

【问题讨论】:

你的爬虫日志在云手表中说了什么。可能还值得检查用于该修改文件的 kms 密钥是否与其余文件相同,并且爬虫角色有权访问该 kms 密钥 @Emerson,我在帖子中添加了云观察日志,以及手动修复部分。我已经检查了这个胶水爬虫的 IAM 角色,它具有 S3 存储桶的权限。而且我没有为这个胶水爬虫设置加密(即kms密钥??) 能否检查s3中的文件是否设置了kms密钥。如果你没有明确设置,可能会有存储桶默认值 【参考方案1】:

如果您正在读取或写入 S3 存储桶,存储桶名称应具有 aws-glue* 前缀,以便 Glue 访问存储桶。假设您使用的是预配置的“AWSGlueServiceRole”IAM 角色。您可以尝试在文件夹名称中添加前缀 aws-glue

【讨论】:

以上是关于Glue Crawler 跳过特定的 S3 文件夹的主要内容,如果未能解决你的问题,请参考以下文章

AWS Athena 从 S3 的 GLUE Crawler 输入 csv 创建的表中返回零记录

AWS Glue Crawler 为每个分区添加表?

AWS Glue Crawler无法提取CSV标头

通过 AWS Glue Crawler 识别并存储在数据目录中的表的异常

AWS Glue Crawler 将 json 文件分类为 UNKNOWN

使用CloudFormation上的JdbcTargets指定Glue :: Crawler