使用 Hive 的 SQL 语句时,过滤和排序数据分别采用哪些语法?请给出具体写法。
考察说明
考察对 Hive 查询中 WHERE 过滤与 ORDER BY 排序基本语法的掌握程度。
回答思路
- 【回答框架 1】Hive 过滤使用 WHERE 子句,在查询表时按条件筛选行,语法与标准 SQL 一致,支持比较运算、逻辑运算和 IN、BETWEEN 等高级条件。
- 【回答框架 2】Hive 排序使用 ORDER BY,默认为升序,可指定 DESC 降序;ORDER BY 在严格模式下要求配合 LIMIT 使用,因其对全局数据排序开销较大。
- 【回答框架 3】Hive 还提供 SORT BY、DISTRIBUTE BY 和 CLUSTER BY:SORT BY 在 reducer 内排序,DISTRIBUTE BY 控制数据分发,CLUSTER BY 兼具两者功能且按相同列排序,适合分桶场景。
- 【回答框架 4】实际使用中应先 WHERE 过滤减少数据量,再排序,且注意数据类型和空值处理,确保排序结果符合预期。
- 【关键点 1】过滤使用 WHERE,排序使用 ORDER BY,语法类似标准 SQL。
- 【关键点 2】ORDER BY 全局排序,严格模式下需 LIMIT。
- 【关键点 3】区分 SORT BY、DISTRIBUTE BY、CLUSTER BY 的局部排序与分发机制。
- 【易错点 1】在严格模式下,ORDER BY 不配 LIMIT 会报错。
- 【易错点 2】SORT BY 不是全局排序,可能造成整体无序。