数据仓库重点概念
Hive的工作流程
1、执行查询:从Hive的CLI或Web UI发出查询命令给驱动程序(任何JDBC,ODBC数据库驱动)执行。
2、获取计划:驱动程序请求查询编译器解析查询、检查语法、生成查询计划或者查询所需要的资源。
3、获取元数据:编译器向元数据存储数据库发送元数据请求。
4、发送元数据:作为响应,元数据存储数据库向编译器发送元数据。
5、发送计划:编译器检查需要的资源,并将查询计划发送给驱动程序。至此,查询解析完成。
6、执行计划:驱动程序向执行引擎发送执行计划。
7、执行作业:执行计划的处理是一个MapReduce作业,执行引擎想namenode上的JobTracker进程发送作业,JobTracker把作业分配给datanode上的TaskTracker进程。此时,查询执行MapReduce作业。
7.1、操作元数据:执行作业的同时,执行引擎可能会执行元数据操作,比如DDL语句等。
8、取回结果:执行引擎从datanode接收结果。
9、发送结果:执行引擎向驱动程序发送合成的结果值。
10、发送结果:驱动程序向Hive接口(CLI或Web UI)发送结果。
Hive将SQL解析成MapReduce过程
1、Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化成抽象语法树AST Tree。
2、遍历AST Tree,抽象出查询的基本组成单元Query Block。
3、遍历Query Block&