Q1正确率 34%高难度
数据倾斜怎么处理?
先通过监控或日志定位倾斜阶段和具体 Key。如果是 Join 倾斜,大表关联小表直接开 MapJoin,若是双大表则对倾斜 Key 加随机前缀加盐打散分批关联;如果是 GroupBy 聚合倾斜,采用两阶段聚合先局部再全局;针对极少数空值或异常热点,先过滤单独处理再 Union,需权衡计算与存储代价。
解析
考点:分布式计算调优。识别倾斜 key 后可加盐打散、map 端预聚合、广播小表或单独处理热点 key。常见失分:只回答“加大并行度”。
数仓建模、Hive/Spark 调优、实时链路,偏工程的数据岗题库。
先通过监控或日志定位倾斜阶段和具体 Key。如果是 Join 倾斜,大表关联小表直接开 MapJoin,若是双大表则对倾斜 Key 加随机前缀加盐打散分批关联;如果是 GroupBy 聚合倾斜,采用两阶段聚合先局部再全局;针对极少数空值或异常热点,先过滤单独处理再 Union,需权衡计算与存储代价。
考点:分布式计算调优。识别倾斜 key 后可加盐打散、map 端预聚合、广播小表或单独处理热点 key。常见失分:只回答“加大并行度”。
主要分为三类:一是事务事实表,记录单次事件最细粒度数据且不可更改,如支付明细;二是周期快照事实表,按固定周期采样记录状态存量,如每日账户余额;三是累积快照事实表,用于跟踪具有明确生命周期的业务流程多阶段更新,如下单到收货各节点。选型关键看业务过程连续性与更新频次。
考点:数仓建模基础。事务事实表、周期快照事实表、累积快照事实表三类及其适用场景与粒度定义。常见失分:说不清粒度选择理由。