gpt4 book ai didi

impala - impala是否在查询后缓存一些数据

转载 作者:行者123 更新时间:2023-12-04 00:37:34 30 4
gpt4 key购买 nike

我是 Impala 的新手,我在 Impala 上做了一些测试用例。当我第二次调用时,我发现类似的 SQL 快得多。

例如:

  • table1 = 4B 行
  • table2 = 5000 万行

第一次查询:select * from table1 where id in (select id from table2 where xxx < 10000)(20 秒)

第二次查询:select * from table1 where id in (select id from table2 where xxx < 9999)(10 秒)

第三次查询:select * from table1 where id in (select id from table2 where xxx < 100)(1 秒)

我猜 Impala 做了一些特殊的缓存,谁能告诉我它的原因?

谢谢。

最佳答案

Impala 使用操作系统的缓存和额外的 HDFS 缓存。

摘自 Using HDFS Caching with Impala :

“Linux 操作系统缓存 [...] 仅将最近使用的数据保留在内存中。从 HDFS 缓存读取的数据避免了使用 Linux 操作系统缓存中的数据时涉及的校验和和内存到内存复制的开销”

这可以解释您的第一个查询和第二个查询之间的执行时间差异。但是,您的第三个查询比前两个查询快得多的原因可能不是(仅)缓存,而是它只查询大约 1/100 的数据(假设 xxx 均匀分布)这一事实。

关于impala - impala是否在查询后缓存一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39244021/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com