(1) 分支
- SQLContext
- 仅支持 SQL 语法解析起
- HiveContext
- 支持 SQL 和 HiveSQL 语法解析器
- 默认为 HiveSQL 语法解析器
执行顺序:词法/语法解析 > 绑定 > 优化 > 执行
(2) 组成
- Core
- 负责处理数据的输入输出(获取数据、查询结果输出为 DataFrame 等)
- Catalyst
- 负责处理整个查询过程(包括解析、绑定、优化等)
- Hive
- 负责对 Hive 数据进行处理
- Hive-ThriftServer
- 用于访问 Hive
(3) 行式存储、列式存储
行式存储(TP 事务型业务) | 列式存储(AP 数据分析和统计业务、批处理) | |
---|---|---|
优点 | 数据被保存在一起;Insert/Update 方便 | 查询时只有涉及到的列被读取;任何列都能作为索引 |
缺点 | 查询时会读取所有数据 | 查询时,被选择的列要重新组装;Insert/Update 不便 |