amazon-s3 - 定期安排 AWS Glue 爬网程序有什么用。运行一次似乎就足够了

标签 amazon-s3 amazon-athena aws-glue

我创建了一个 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=12day=13 等)。为了使新数据可用于查询这些分区,必须在数据目录中注册,这可以通过运行爬虫来完成。替代解决方案是运行 'MSCK REPAIR TABLE {table-name}'在雅典娜。

除此之外,爬虫可以检测模式的变化并采取适当的行动 depending on your configuration .

关于amazon-s3 - 定期安排 AWS Glue 爬网程序有什么用。运行一次似乎就足够了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52262558/

相关文章:

java - 通过 java sdk 在客户端使用联合用户凭据(或 IAM 用户)在单个调用中列出 amazon s3 存储桶上可用的所有对象/文件

amazon-web-services - 是否可以使用 AWS Athena 查询压缩文件?

aws-glue - AWS Glue for Mongodb 到 S3 中的 Parquet 文件

python - 来自 pyspark 的雪花无密码登录

aws-cloudformation - 在 userdata 脚本中使用 boto3 时出现 MissingServiceIdError

hadoop - 使用 distcp 命令复制到 s3 位置

android - Retrofit - 使用预签名 URL 将图像上传到 S3

java - Hadoop S3A 文件系统,中止对象上传?

amazon-web-services - athena 查询返回列名称作为结果集

mysql - SQL 查询附加日期(月/日)值为零