我已经根据S3存储桶的内容创建了一个AWS glue表。这允许我使用AWS Athena查询此S3存储桶中的数据。我已经定义了一个AWS Glue爬虫并运行一次以自动确定数据的模式。一切都很好。
之后,所有新上传的数据都会很好地反映在表格中。 (在雅典娜做一个select count(*) ...
。
为什么我需要定期运行(即:安排)AWS Glue Crawler?毕竟,如上所述,对s3存储桶的更新似乎正确地反映在表中。它是否更新表的统计信息,以便查询计划器可以优化或什么?
需要使用Crawler在Data Catalog中注册新的数据分区。例如,您的数据位于文件夹/数据中,并按日期(/data/year=2018/month=9/day=11/<data-files>
)进行分区。每天文件都会进入一个新文件夹(day=12
,day=13
等)。要使用于查询这些分区的新数据必须在数据目录中注册,这可以通过运行爬虫来完成。替代解决方案是在雅典娜运行'MSCK REPAIR TABLE {table-name}'。
除了爬虫可以检测到模式的变化并采取适当的行动depending on your configuration。