【问题标题】:Amazon Athena not returning recent data when partitions are partially loaded分区部分加载时,Amazon Athena 不返回最近的数据
【发布时间】:2019-09-28 13:58:04
【问题描述】:

我定义了一个分区表,它指向一个使用日期分区的 S3 存储桶。我在 S3 存储桶中有过去 3 个月的数据。我已经加载了第一个月的分区。但是,在过去的 2 个月里,我没有使用 msck repair tablealter table 命令将数据加载到分区中。当我尝试查询 table 时,过去 2 个月的数据没有从 S3 加载,只有最近的分区数据显示在查询结果中。这是预期的吗?如果有,为什么?

我尝试为同一个 s3 存储桶创建另一个分区表,但这次我没有加载任何分区。当我查询这张表时,我得到了最新的记录。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-athena


    【解决方案1】:

    是的,这是预期的。

    Athena 使用元数据来识别 S3 中的数据。用于检测 S3 中数据的最重要的元数据是分区。 Athena 在元数据中保留有关所有分区的详细信息。使用此分区信息,它会到达 S3 中的相应文件夹以获取数据。

    1. 如果您将更多文件添加到同一分区:如果已在 athena 元数据中添加分区,则将自动检测所有新文件,因为 athena 使用分区元数据和 s3 位置从 S3 中的文件夹中读取所有文件。
    2. 如果您在新分区中添加文件:如果分区不在 athena 元数据中,则 athana 不知道如何在 S3 中找到相应的文件夹。因此,它不会访问该文件夹中的数据。

    识别新分区的三种方法: 1. 在 S3 存储桶上运行 Glue 爬虫,它将刷新分区元数据。 2.在athana中使用alter table命令添加新分区 3. 如果您的分区的架构与表架构不同,请使用 msck repair table

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      相关资源
      最近更新 更多