Impala前端代码分析
Table of Contents
1 概述
前端代码使用java。感觉使用java的原因是,本身语法分析不会占用太多时间,毫秒级可以完成,不是性能瓶颈。而且语法分析的代码通常比较复杂,逻辑较多,如果再自己管理内存的话,会影响开发效率。
Impala通过jni调用前端java代码,前后端数据传递采用thrift格式。
前端的代码主要包括以下几个功能:
- 将用户提交的query转换成语法树,这个通过jflex和cup完成(hive使用的是antlr)
- 语法分析
- 生成执行计划
- 在编译中访问元数据