【发布时间】:2019-10-21 13:57:57
【问题描述】:
我的 s3 存储桶上有几张桌子。这些表在内存大小和文件数量上都很大,它们存储在 JSON 中(我知道不是最理想的)并且有很多分区。
现在我想启用 AWS Glue 数据目录和 AWS Glue Crawlers,但是我对遍历所有数据的爬虫程序的价格感到害怕。
架构不会经常更改,因此无需遍历 S3 上的所有文件。
默认情况下,爬虫会遍历所有文件吗?是否可以配置一个更智能的采样策略,只查看部分文件而不是所有文件?
【问题讨论】:
-
您是使用 Glue Crawler 进行“模式更改检测”还是仅用于新添加数据集的“新分区检测”?如果是在第一次使用爬虫进行“模式检测”后对新添加的数据集进行“新分区检测”,您可以使用 Athena Boto3 API 添加分区,而无需运行爬虫。
-
这是一个不错的技巧,我以前用过。但是架构更改经常发生。
-
那么这会很棘手,因为您需要注意在爬虫期间考虑所有模式更改,否则爬虫将无法检测到所有模式更改,从而使 Glue 数据目录变得混乱。如果您希望进行选择性爬网,如@Eman 所述,您可以使用排除路径(不幸的是,Glue 不提供包含路径:()但是这样做时,您必须包含所有可能具有架构更改的路径..e.g.架构更改发生在 2019 年 10 月 10,15,20 日,那么它必须包含在爬虫路径中,并且爬虫每次都必须爬过这些数据集。继续...1/2
-
老实说,它使爬虫的目的无效,因为您必须明确知道架构更改。 ... 2/2
-
理想情况下,我会想象爬虫会遍历 5% 的随机选择的文件。这将以相对较高的概率覆盖所有更改,同时显着降低扫描成本。
标签: amazon-web-services amazon-s3 aws-glue aws-glue-data-catalog