AWS Glue无法检测分区并在AWS Glue目录中创建10000+个表

iam*_*lam 6 amazon-s3 amazon-web-services aws-glue

我正在使用AWS Glue创建元数据表。

AWS胶履带数据存储路径:s3:// bucket-name /

S3中的存储桶结构就像

??? bucket-name        
?   ??? pt=2011-10-11-01     
?   ?   ??? file1                    
|   |   ??? file2                                        
?   ??? pt=2011-10-11-02               
?   ?   ??? file1          
?   ??? pt=2011-10-10-01           
?   ?   ??? file1           
?   ??? pt=2011-10-11-10              
?   ?   ??? file1  
Run Code Online (Sandbox Code Playgroud)

为此aws爬行器创建4个表。

我的问题是为什么aws胶履带不检测分区?

小智 7

要强制 Glue 将多个模式合并在一起,请确保在创建爬虫时选中此选项 - 为每个 S3 路径创建一个模式。

爬虫创建步骤的屏幕截图,启用此设置

这里有一个详细的解释——直接引用,来自 AWS 文档(参考

默认情况下,当爬网程序为存储在 Amazon S3 中的数据定义表时,它会同时考虑数据兼容性和架构相似性。考虑的数据兼容性因素包括数据是否具有相同的格式(例如,JSON)、相同的压缩类型(例如,GZIP)、Amazon S3 路径的结构以及其他数据属性。架构相似度是衡量不同 Amazon S3 对象的架构相似程度的指标。

您可以将爬虫配置为在可能的情况下将 CompatibleSchemas 合并到公共表定义中。使用此选项,爬网程序仍会考虑数据兼容性,但在评估指定包含路径中的 Amazon S3 对象时会忽略特定架构的相似性。

如果您在控制台上配置爬网程序,要组合架构,请选择爬网程序选项为每个 S3 路径创建单个架构。


iam*_*lam 1

答案是:

在合并模式之前,AWS 胶水爬虫首先查找模式的相似性索引。如果相似度指数超过 70%,则合并,否则创建一个新表。