weixin_37664892 2023-04-28 13:20 采纳率: 33.3%
浏览 18
已结题

Impala-jdbc查询有时候很慢。

impala-jdbc 查询impala数据,发现有时候很慢,经调查发现是DESCRIBE Table耗时4m多。

img

使用的是springboot+mybatis访问Impala,jdbc驱动是com.cloudera.impala.jdbc41.Driver,
有知道是什么原因吗?

  • 写回答

1条回答 默认 最新

  • Py小郑 新星创作者: python技术领域 2023-04-28 15:33
    关注

    DESCRIBE TABLE命令是Impala用来获取表的元数据信息,例如列名、数据类型、注释等等。这个命令在第一次执行时会从Impala的元数据服务中获取相应的信息,然后将这些信息缓存起来,以供后续使用。

    由于DESCRIBE TABLE需要从Impala的元数据服务中获取大量的信息,因此可能会比较耗时。但是在第一次执行DESCRIBE TABLE时,Impala会将获取到的信息缓存起来,以供后续使用。因此,如果您发现DESCRIBE TABLE命令的执行速度很慢,可能是由于缓存失效导致的。

    为了解决这个问题,您可以尝试在Impala中手动刷新元数据缓存,具体操作如下:

    打开Impala的shell终端,执行如下命令:

    img


    等待Impala刷新元数据缓存,这可能需要一些时间,具体时间取决于您的数据量和集群的负载情况。

    重新执行您的查询,查看是否有改善。

    另外,如果您的表结构不经常变化,也可以考虑使用Impala的CDH插件,将表结构信息缓存到本地,以减少DESCRIBE TABLE的执行时间。

    最后,如果问题仍然存在,您可以考虑使用其他的工具或框架来访问Impala,例如Apache Kylin等。这些工具通常会提供更好的性能和更高效的查询方式。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月12日
  • 已采纳回答 5月4日
  • 创建了问题 4月28日