【问题标题】:Accessing tables being updated in Athena访问 Athena 中正在更新的表
【发布时间】:2019-04-10 21:12:21
【问题描述】:

发出msck repair table 语句时,在更新期间是否仍可访问该表以进行查询?

我之所以这么问,是因为我正试图为一个相对较大的 S3 配置单元表找出最佳更新计划,该表用于驱动 QuickSight 中的一些报告。发出此命令会破坏同时运行基于此表的 QuickSight 报告的任何人吗?

【问题讨论】:

    标签: amazon-athena


    【解决方案1】:

    是的,当您运行MSCK REPAIR TABLE 时,该表可用于运行查询,这是一个后台进程。但是,在该命令运行时运行的查询将看到不同的分区,因为该命令发现的分区将在找到时添加。

    请注意,运行MSCK REPAIR TABLE 是一个非常低效的过程,有很多分区它会运行很长时间,而且它不是增量的。这对查询性能无关紧要,但如果现在需要很长时间,它只会花费越来越长的时间,并且可能不是一个可行的长期策略。 StackOverflow 上还有其他一些关于它的问题,您可以阅读这些问题以找到使表保持最新的其他策略。

    【讨论】:

    • 您认为使用MSCK REPAIR TABLE 对新存储桶中的所有分区进行初始加载是否合理?在这种情况下,它的性能是否比将PARTITIONALTER TABLE 分别提供时更差?需要明确的是,这将是一次加载。在写入所有数据之前不会创建表,并且只有在那之后才会有效地读取。
    • 是的,可以。如果有大量分区,它可能会超时,但您无需为运行查询所花费的时间付费,因此请务必一次性完成。
    猜你喜欢
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多