AWS Athena 上的偏移量

Posted

技术标签:

【中文标题】AWS Athena 上的偏移量【英文标题】:OFFSET on AWS Athena 【发布时间】:2017-12-20 05:13:58 【问题描述】:

我想使用 LIMITOFFSET 子句在 AWS Athena 上运行查询。我认为the latter is not 支持前者。有没有办法使用其他方法来模拟此功能?

【问题讨论】:

【参考方案1】:

使用OFFSET 进行分页效率非常低,尤其是对于像 Presto 这样经常需要执行全表或分区扫描的分析数据库。此外,查询之间的结果不一定一致,因此在页面之间导航时可能会出现重复或丢失的结果。

在像 mysql 或 PostgreSQL 这样的 OLTP 数据库中,最好对索引使用范围查询,您可以在其中跟踪上一页上看到的最后一个值。

在像 Presto 这样的OLAP 数据库中,最好缓存结果集并使用缓存的数据执行分页。您不希望每次用户点击转到不同的页面时都运行数十亿或数万亿行的昂贵查询。

有关问题和索引方法的详细说明,请参阅这些文章:

http://use-the-index-luke.com/no-offset http://use-the-index-luke.com/sql/partial-results/fetch-next-page

【讨论】:

请注意,自 311 以来,Trino 中提供了 OFFSET 语法。请参阅 trino.io/docs/current/release/…

以上是关于AWS Athena 上的偏移量的主要内容,如果未能解决你的问题,请参考以下文章

UIWindow addSubview 上的偏移量

风暴批处理后向kafka提交偏移量

pytz 时区的 STD 偏移量

时区分钟偏移量的 TimeZoneInfo

查找给定城市的 UTC 偏移量

UIRefreshControl 导致不正确的 TableView 偏移量