# 1. Iceberg 通过 manifest list、manifest file 与 data file 三层结构实现 schema 与 partition 演进 A 数据直接存于 manifest 中 B 不支持快照 C 每次写入都重写全部数据文件 D schema/partition 演进只需更新元数据,无需重写 data file ✓ 正确答案
# 2. Iceberg 在 v2+ 支持 row-level delete(positional delete / equality delete) A v2 不支持删除 B 两种删除都直接改写原文件 C positional delete 记录行号,equality delete 记录等值/主键值 ✓ 正确答案 D positional delete 按主键匹配
# 3. Delta Lake 基于 _delta_log JSON/Checkpoint 记录事务日志 A _delta_log 用 JSON 记录事务,checkpoint 合并状态以加速读取 ✓ 正确答案 B 事务日志只存增量,无需 checkpoint C 无事务日志,直接改文件 D 不支持版本回放
# 4. Delta Lake 通过 OPTIMIZE + Z-ORDER 优化查询性能 A OPTIMIZE 增加文件数量 B Z-ORDER 只针对单列 C OPTIMIZE 合并小文件,Z-ORDER 按多列排序使数据聚集以提升剪枝效果 ✓ 正确答案 D 两者都不影响查询性能
# 5. Delta Lake Change Data Feed 通过 enableChangeDataFeed 输出 row-level 变更 A CDF 只能输出全量快照 B 需通过 enableChangeDataFeed 开启,输出 row-level 变更供下游消费 ✓ 正确答案 C 开启后无法捕获 UPDATE D CDF 不依赖版本区间
# 6. Hudi 通过 MOR(Merge On Read)与 COW(Copy On Write)两种表类型适配读写负载 A COW 写快读慢 B COW 写入立即重写文件,读快;MOR 先写 log 读时合并,写快 ✓ 正确答案 C MOR 读快写慢 D 两者读写性能完全相同
# 7. Hudi 主键索引支持 bloom_filter、simple、global_bloom A bloom_filter 在文件级用 bloom filter 剪枝,global_bloom 扩展到全局 ✓ 正确答案 B simple 索引开销最小且效率最高 C 所有索引都无维护成本 D 索引与 upsert 无关
# 8. Iceberg 强 schema/partition 演进,Delta Lake 强 Unity 生态,Hudi 强增量计算 A 三者完全相同 B Iceberg 强 schema/partition 演进,Delta 强 Unity 生态,Hudi 强增量计算 ✓ 正确答案 C Hudi 强 schema 演进 D Delta 强增量计算
# 9. Trino(原 PrestoDB)通过 connector 接入 Hive、Iceberg、Delta、Kafka、MySQL 等 30+ 数据源 A connector 不支持谓词下推 B Trino 只能查 Hive C 每种数据源对应一个 connector,通过 SPI 接入并支持跨源联邦查询 ✓ 正确答案 D 多个数据源必须分库查询
# 10. Trino CBO 通过统计信息(Table Statistics)优化 join 顺序 A CBO 不做 join 优化 B CBO 只按语法顺序执行 join C 统计信息不影响 CBO D CBO 利用统计信息估算代价,优化 join 顺序 ✓ 正确答案
# 11. Doris Unique Key 模型按主键覆盖写,实现 upsert 语义 A 同一主键保留最新数据,覆盖写入实现 upsert ✓ 正确答案 B 同一主键保留多条历史 C 不支持按主键更新 D 与聚合模型完全相同
# 13. StarRocks 由 Apache Doris 分支演进,采用 CBO 与向量化执行 A 由 Apache Doris 分支演进,采用 CBO 与向量化执行 ✓ 正确答案 B 与 Doris 完全无关 C 只支持行存 D 无 CBO
# 14. StarRocks 通过 CBO 优化 join 顺序与执行计划 A 不估算代价 B 只按语法顺序执行 C 基于统计信息估算代价并选择最优 join 顺序与执行计划 ✓ 正确答案 D 无执行计划优化
# 16. Iceberg Time Travel 通过 snapshot-id 或 timestamp 回溯历史版本 A 不支持审计 B 只能读最新数据 C 快照会覆盖历史 D 通过 snapshot-id 或 timestamp 回溯历史快照版本 ✓ 正确答案
# 17. Iceberg 通过 partition spec evolution 修改分区策略而不重写数据 A 分区演进必须全表重写 B 修改分区策略无需重写历史数据,新旧 spec 并存 ✓ 正确答案 C 只能有一个固定分区 spec D 不支持分区演进
# 18. Iceberg REST Catalog 提供跨引擎元数据共享(Spark/Flink/Trino) A 只支持 Spark B 每个引擎各自维护独立元数据 C 通过 REST API 统一管理元数据,供 Spark/Flink/Trino 共享 ✓ 正确答案 D 不支持多引擎协同
# 19. Delta Lake 在 3.x 引入 Delta UniForm 实现 Iceberg/Parquet 多格式兼容 A UniForm 会复制数据到新格式 B 让同一份 Delta 表同时兼容 Iceberg/Hudi 格式,无需复制数据 ✓ 正确答案 C 只支持 Parquet 单格式 D 与 Iceberg 无法互操作
# 20. Delta Lake Time Travel 通过 VERSION AS OF 或 TIMESTAMP AS OF A 历史版本不依赖文件保留 B 只能读最新版本 C 通过 VERSION AS OF 或 TIMESTAMP AS OF 回溯历史版本 ✓ 正确答案 D 不支持审计
# 21. Hudi 通过 timeline (.hoodie 目录) 记录 commit、clean、replace 等事件 A timeline 只记录新文件 B .hoodie 目录按时间记录 commit/clean/replace 等事件,驱动增量计算 ✓ 正确答案 C 无 clean 事件 D timeline 与版本无关
# 22. Hudi 在 0.14+ 支持 record-level index(Flink 集成) A 在文件内维护记录级主键映射,加速 upsert 定位,配合 Flink 集成 ✓ 正确答案 B 只支持文件级索引 C 与 Flink 无关 D 不加速 upsert
# 23. Hudi 与 Flink 集成支持 Streaming Query A 只支持批量 B 支持流式写/流式读,基于 timeline 增量消费实现 Streaming Query ✓ 正确答案 C 无法增量读取 D 与流式无关
# 24. 三者在 catalog 互通方面均处于演进阶段,REST Catalog 成为标准接口 A 三者 catalog 完全隔离 B REST Catalog 成为跨引擎标准元数据接口,推动三者互通 ✓ 正确答案 C 无统一接口 D 引擎各自独立元数据无需互通
# 25. 三者在 time travel 与 schema enforcement 上语义略有差异 A 三者 time travel 完全相同 B Iceberg 用快照、Delta 用版本日志、Hudi 用时间线,schema 严格度不同 ✓ 正确答案 C 三者 schema 约束完全相同 D 三者都不支持 time travel
# 26. Trino Coordinator/Worker 架构支持弹性扩容,Worker 通过 SPI 注册 connector A Coordinator 调度、Worker 无状态执行可弹性扩容,connector 通过 SPI 注册 ✓ 正确答案 B Worker 有状态不可扩展 C connector 无法动态注册 D 所有节点都做规划
# 27. PrestoSQL(已停止维护)与 Trino 分叉后,Trino 成为社区主流 A Trino 已停止维护 B PrestoSQL 仍是最主流 C 两者无分叉历史 D 两者分叉后 Trino 由核心团队持续主导,成为社区主流 ✓ 正确答案
# 28. Iceberg 的时间旅行与 ACID 语义如何在文件层面实现(Manifest/快照)? A 快照不可读 B 直接改写文件实现更新 C 无并发控制 D 通过不可变文件 + 快照 manifest + 原子更新元数据指针实现 ACID 与时间旅行 ✓ 正确答案
# 29. 湖仓一体中"数据回写/更新"与数据湖的不可变文件如何协调? A 更新通过写新文件 + 元数据标记旧文件删除实现,配合 compaction 回收 ✓ 正确答案 B 更新直接改写原文件 C 不可变文件无法更新 D 更新无需元数据
# 30. Trino 的 spill-to-disk 机制在内存不足时落盘到 S3/HDFS A 无法缓解内存不足 B 落盘不耗 IO C 只用于写结果 D 内存不足时把中间结果落盘到 S3/HDFS 等路径,防止查询失败 ✓ 正确答案
# 31. Hudi 的 MOR/COW 表与 Iceberg 的更新语义差异? A Hudi 无 COW/MOR 区分 B 两者更新机制完全相同 C Iceberg 不更新 D Hudi 用 COW/MOR 选择读写权衡,Iceberg 用 delete 文件 + 快照实现更新 ✓ 正确答案