数据岗位面试题更新 2026-08-05

请说明在 Apache Kudu 中创建一张表的具体步骤,并列举几种常见的表结构设计。

数据系统设计技术原理技术选型Apache Kudu

考察说明

考查对 Kudu 建表语法和典型表结构设计的掌握程度。

回答思路

  1. 【回答框架 1】Kudu 建表主要使用 CREATE TABLE 语句,需指定表名、列定义(含类型和是否可空)以及主键,主键至少一列且不可变,同时可设置分区方式,如哈希分区或范围分区,并指定分区列和数量。
  2. 【回答框架 2】常见表结构包括:按时间戳或 ID 进行哈希分区的日志表,适合写入密集和范围查询;按日期列进行范围分区的业务表,便于按时间段管理数据;组合分区表则先哈希再范围分区,用于大规模数据且需要灵活裁剪。
  3. 【回答框架 3】建表时还需考虑列式存储的排序特征,将频繁过滤的列作为主键前缀,以提高扫描效率;同时合理设置副本因子和存储属性,但默认值通常满足多数场景。
  4. 【回答框架 4】对于已有表,可通过 ALTER TABLE 增加或删除列、修改属性和重新分区,但主键不可修改,因此在设计阶段应尽量确定主键结构。
  5. 【回答框架 5】实际应用中应结合查询模式和写入吞吐,通过测试验证分区策略和主键设计,避免因分区不当导致数据倾斜或扫描效率下降。
  6. 【关键点 1】创建表需定义主键、分区方式和列类型,常用 SQL 语句为 CREATE TABLE。
  7. 【关键点 2】常见表结构包括哈希分区、范围分区和组合分区,分别适用于不同访问模式。
  8. 【关键点 3】主键设计直接影响数据分布和查询性能,应选择稳定且选择性高的列。
  9. 【关键点 4】列式存储下,主键前缀影响扫描裁剪,合理设计可提升查询效率。
  10. 【关键点 5】分区参数需结合数据量和负载进行调整,必要时进行压测验证。
  11. 【易错点 1】主键设计不当可能导致数据倾斜或无法高效裁剪,需避免使用高基数但波动大的列。
  12. 【易错点 2】分区数量设置过高或过低都会影响性能,需根据集群规模和并发调整。
  13. 【易错点 3】修改主键或分区方式在 Kudu 中不支持,前期规划不正确会造成重建表成本。