AWS Glue:我真的需要爬虫来获取新内容吗?

AWS Glue: Do I really need a Crawler for new content?

我从 AWS Glue 文档中了解到,爬虫程序将帮助爬取和发现新数据。但是,我注意到一旦我爬取一次,如果新数据进入 S3,例如当我从 Athena 查询数据目录时,实际上已经发现了数据。那么,我可以说每次添加新数据时我都不需要爬虫来爬取,除非有新的模式吗?

事实上,如果我知道文件的架构,我可以手动创建 table 而无需爬虫,对吗?

如果数据按某些键进行分区(放置在子文件夹中,例如 /data/year=2018/month=11/day=2),那么您需要一个爬虫来在 Data Catalog 中注册新添加的分区(即 /day=3)可以通过 Athena 查询。

但是,如果数据未分区或进入已注册的分区,则无需 运行 爬虫。

或者 运行nig 爬虫,您可以通过 运行ning Athena command MSCK REPAIR TABLE <table> or registering them manually.

发现并注册新分区

在 Data Catalog 中创建 table 的最简单方法是 运行 安装爬虫。但是,如果您知道架构并且有耐心编写 CREATE TABLE Athena query or fill all fields via AWS Glue console 那么您也可以这样做。

如果您有架构,则无需使用爬虫,您可能会获得更好的结果(例如,爬虫假设分区列是字符串)。

正如 Yuriy 所说,记得 运行 MSCK REPAIR TABLE 或手动注册新分区。

如果您添加了很多分区,MSCK 可能会超时。如果是,请保持 运行ning 直到它正常完成。