SQL面试题更新 2026-08-03

请说明在 Apache Kylin 中执行数据查询的 SQL 用法?

考察说明

考查对 Kylin 查询接口及 SQL 语法的基本掌握。

回答思路

  1. 【回答框架 1】Kylin 提供标准 SQL 接口,用户可通过 JDBC、REST API 或 Web UI 提交查询,底层将 SQL 转换为对预构建 Cube 的扫描,以加速大规模数据查询。
  2. 【回答框架 2】SQL 语法大多兼容 Hive 或标准 SQL,支持 SELECT、WHERE、GROUP BY、ORDER BY 等常用操作,但对 UDF、复杂 JOIN 等支持受限,需基于已建模的维度与度量进行查询。
  3. 【回答框架 3】使用 Kylin 查询时,表名和字段需对应 Cube 模型中的定义,禁止查询未建模的原始列,否则将无法命中 Cube 并可能查询失败;可通过访问 Kylin 的查询下压配置或查看查询日志确认是否命中 Cube。
  4. 【回答框架 4】执行查询时,可通过 Kylin 提供的 EXPLAIN 命令查看执行计划,判断查询是否操作了预聚合的 Cube,并以此优化 SQL 写法,确保查询能充分利用预计算加速。
  5. 【回答框架 5】针对 Kylin 查询,常见优化包括尽量使用精确匹配、减少非必要维度组合、避免高基数维度,并在需要明细查询时另行设计,因为 Kylin 核心擅长聚合查询而非明细数据。
  6. 【关键点 1】支持标准 SQL 子集,提供 JDBC、REST 与 UI 查询入口。
  7. 【关键点 2】查询必须针对已建模的 Cube,字段需对应维度和度量。
  8. 【关键点 3】使用 EXPLAIN 可验证查询是否命中 Cube。
  9. 【关键点 4】优化查询时注意维度基数与粒度,可结合 Cuboid 剪枝策略。
  10. 【易错点 1】误以为所有 Hive SQL 均支持,实际 UDF 和复杂 JOIN 受限。
  11. 【易错点 2】忽略命中 Cube 的前提,查询未建模字段可能导致全量扫描或失败。
  12. 【易错点 3】未考虑高基数维度对查询性能的影响,导致预计算失效。