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