前几天,ApacheImpala社区发布了性能优化的一个topics,干货慢慢,我第一次见到的完整Impala整体的侧重优化和架构设计权衡的Slide。

去年底,ApacheImpala已经成为Apache顶级项目,我还写文章介绍过,做为企业级SQL on Hadoop解决方案,已经大规模商业应用,随着CDH的发展,家喻户晓,Hadoop生态圈的贡献不可限量,性能也很优秀,曾经很长一段时间很多朋友咨询过Impala的生产环境问题,它拥有完整的权限、审计、高性能。

  • 1、SparkSQL、Hive不支持即席查询。
  • 2、支持更新和删除数据。
  • 3、支持横向扩展高性能OLAP分析
  • 4、兼容Hadoop生态,低门槛

如上,那么可以尝试ApacheImpala,完美发挥性能,需大内存,Impalad节点128G~256G。

Outline一览,全是能讲清楚Apache Impala的好东西,可以看到Impala在分布式聚合和分布式扫描统计方面一些独特的实现,它是一个真正的分布式SQL查询引擎,完美兼容HDFS,调度查询灵活。

  • Impala项目的历史原因和动机
  • Impala架构设计
  • 侧重于性能优化概述
    • 查询计划概述
    • 查询优化
    • 元数据和统计信息
  • Back-end
    • Partitioning and sorting for Selective scans
    • Code-generation using LLVM
    • Streaming Aggregation
    • Runtime filters
    • Handling cache misses for Joins and Aggs

由于内容太多,摘录部分,精彩slide片段,获取完整内容,点击[阅读原文]。

impala-1

impala-logical-vivew

multi-storage-select

query-optimization-join

scanner-query

llvm-codegen

codegen-order-top

straming-agg

runtime-filters

impala-roadmap

介绍了一些核心的优化思路和代码实现,非常值得,通过实战系统研究优化成果,探索高性能Impala使用方式。

Slide地址:https://github.com/jikelab/labs/tree/master/slide