分布式执行与资源隔离

共 24 题
#

1. 分布式聚合(部分聚合+最终聚合)的两阶段下推

A COUNT/SUM/AVG 等可分解聚合可先本地部分聚合再汇总,大幅减少网络传输;COUNT DISTINCT 等不可分解聚合需保留中间状态或近似 ✓ 正确答案
B 所有聚合函数都可直接两阶段合并
C 两阶段聚合只减少计算,不减少网络
D 部分聚合必须在协调器执行
#

2. 分布式 Join,Broadcast Join 与 Shuffle Hash Join 选型

A 小表 join 大表用 Broadcast(只传小表)更省,大表 join 大表用 Shuffle Hash Join,优化器按表大小与倾斜选型 ✓ 正确答案
B 大表 join 大表用 Broadcast 最优
C 任何 join 都用 Shuffle 最优
D Broadcast 无法用于 Hash Join
#

3. 分布式 Sort/Merge 与数据倾斜处理

A 分布式排序采用分区+局部排序+全局归并,数据倾斜会让某节点成为瓶颈,可用 range 分区或加盐打散缓解 ✓ 正确答案
B 分布式排序只需单节点完成
C 倾斜不影响排序性能
D 哈希分区总能保证全局有序且无倾斜
#

4. 分布式窗口函数的分区与排序下推

A 窗口函数无需分区,任意节点可算
B 排序对窗口函数无关紧要
C 窗口函数不能分布式执行
D 需按 PARTITION BY 分区键重分布使同分区数据同节点,再节点内排序计算;分区键与分布键一致时可避免重分布 ✓ 正确答案
#

5. 数据重分布(Exchange)的网络开销优化

A 重分布无法优化
B 网络压缩会增加更多开销
C 可通过分布键对齐避免不必要 shuffle、广播小表、压缩/批量传输、下推与裁剪来减少跨节点数据量 ✓ 正确答案
D 数据量越大反而越省
#

6. 数据倾斜(热点 Key)对分布式聚合/Join 的危害

A 倾斜不影响性能
B 倾斜只影响单机,不影响分布式
C 热点 key 使数据集中在少数节点,这些节点成为瓶颈,导致查询被拖慢、内存溢出或 spill,呈木桶效应 ✓ 正确答案
D 倾斜让所有节点负载一致
#

7. 倾斜 Join 的单独处理(skew join)优化

A skew join 对所有 join 都启用
B skew join 与普通 join 完全相同
C skew join 会消除所有数据
D skew join 识别倾斜 key,将其加盐拆分复制到多节点并行处理,非倾斜部分走普通 join,从而缓解单个热点节点过载 ✓ 正确答案
#

8. MPP 的资源队列(Resource Queue)与并发控制

A 资源队列不限制并发
B 资源队列限制并发查询数并分配 CPU/内存配额,超额查询排队等待,实现资源隔离与并发控制 ✓ 正确答案
C 所有查询共享无限资源
D 资源队列只能限内存,不能限并发
#

9. 分布式 Limit/TopN 的局部+全局合并

A 必须把所有数据传到协调器再取前 N
B TopN 只能在单节点执行
C 局部 TopN 无法与全局合并
D 各节点先算局部 TopN 再上传,协调器做全局合并,早期丢弃大量数据以减少传输 ✓ 正确答案
#

10. 分布式 Union/Subquery 的去重与执行

A Union 无需去重
B Union All 无需去重可直接并行拼接;Union 需重分布后本地去重实现全局唯一,可下推的子查询先在各节点执行 ✓ 正确答案
C 去重只能在协调器完成
D 子查询不能下推
#

11. 加盐(salt)打散倾斜 Key 的重分布技巧

A 加盐会丢失数据
B 加盐只适用于单节点
C 给倾斜 key 拼随机盐值分散到多节点并行处理,再按原 key 汇总还原;join 侧需复制匹配,聚合需可分解 ✓ 正确答案
D 加盐后无需再合并
#

12. 广播小表避免 Shuffle 的阈值判断

A 任何表都广播
B 阈值判断与表大小无关
C 广播永远优于 shuffle
D 优化器按小表大小与广播阈值比较,小表够小则广播避免 shuffle,否则用 shuffle,防止广播过大内存爆炸 ✓ 正确答案
#

13. 动态分区裁剪(Dynamic Partition Pruning)

A 它只裁剪常量分区
B 动态裁剪与静态裁剪完全相同
C 它根据运行时得到的 join key 集合动态裁剪扫描分区,常配合 join 先处理小表再过滤大表,减少扫描量 ✓ 正确答案
D 动态裁剪不减少 IO
#

14. 多租户资源池(Resource Group)隔离

A 为不同租户划分 CPU/内存/并发配额,实现隔离与公平,防止一个租户耗尽另一个租户的资源 ✓ 正确答案
B 所有租户共享一个无限资源池
C 资源池只能系统管理员使用
D 资源池无法限制并发
#

15. 分布式执行的算子并行度与调度

A 并行度固定为 1
B 调度与并行度无关
C 并行度越高性能越好,无上限
D 并行度由节点数、分片数与并行参数决定,调度器分配算子到节点并管理资源,需平衡并行充分与资源竞争 ✓ 正确答案
#

16. 运行时统计反馈驱动的自适应重分布

A 执行计划完全固定,无法调整
B 运行时统计与执行无关
C 自适应只影响单节点
D 根据运行时采集的节点数据量、倾斜等统计信息动态调整重分布策略与并行度,应对统计不准与倾斜 ✓ 正确答案
#

17. 分布式执行计划的可视化与瓶颈定位

A 可视化展示各算子的耗时、数据量、节点分布与重分布,可据此定位重分布、倾斜、spill 等瓶颈 ✓ 正确答案
B 执行计划无法可视化
C 所有算子耗时相同
D 瓶颈只发生在单节点
#

18. 重分布网络的压缩与批量发送

A 通过压缩减少传输字节、批量发送减少发包次数,降低重分布网络开销,但需权衡 CPU 与缓冲成本 ✓ 正确答案
B 重分布数据不能压缩
C 批量发送会让网络更慢
D 压缩只用于存储,不用于网络
#

19. 查询级的 CPU/内存配额与隔离

A 为单个查询设置内存/CPU 配额,超限则 spill 或拒绝,配合资源池防止单个查询拖垮系统 ✓ 正确答案
B 单查询可无限使用资源
C 配额只针对存储
D 查询级隔离无法实现
#

20. 数据库大查询排队与优先级调度如何设计,如何防止长查询拖垮并发?

A 大查询应无限并发执行
B 通过并发上限让大查询排队、按优先级调度、设置资源配额与超时,防止长查询耗尽资源拖垮并发 ✓ 正确答案
C 优先级调度只影响读
D 长查询不需要任何限制
#

21. 查询超时与取消的传播,客户端超时如何传递到数据库层并中止执行,statement_timeout 与锁等待超时的协同,取消对长事务的影响?

A 客户端超时不会影响数据库
B statement_timeout 只影响锁等待
C 客户端超时经驱动发取消信号中止语句;statement_timeout 管整体执行、lock_timeout 管锁等待,取消对未提交长事务可能导致回滚并释放锁 ✓ 正确答案
D 取消长事务没有任何影响
#

22. MPP 的水平扩展与数据再平衡

A 加节点后无需任何处理
B 再平衡瞬间完成
C 水平扩展加节点后需做数据再平衡使各节点均衡,否则新节点闲置、旧节点过载,再平衡是重操作需低峰期执行 ✓ 正确答案
D 再平衡只影响新节点
#

23. MPP 的弹性(按需扩缩)能力差异

A 传统 MPP 扩容需数据再平衡,弹性较重;云原生 MPP 存算分离可独立快速伸缩计算节点,无需重分布 ✓ 正确答案
B 所有 MPP 弹性能力相同
C 云原生 MPP 无法扩容
D 弹性与数据分布无关
#

24. MPP 的向量化执行与批处理

A 向量化一次处理一批数据并配合 SIMD 批量运算,配合列式存储大幅降低逐行开销,提升吞吐 ✓ 正确答案
B 向量化按行处理,效率低
C 向量化只影响存储
D 批处理与列式无关