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 识别并存储在数据目录中的表的异常