# 1. SCD2 的生效日期/失效日期/当前标志位设计与拉链表(zipper table)实现 A SCD2 只保留最新值,不保留历史 B 拉链表每次变化都全量覆盖 C 拉链表只能查当前状态 D SCD2 用生效日期、失效日期与当前标志位保留历史版本,拉链表通过增量失效旧记录并追加新记录实现,节省存储且能回溯历史 ✓ 正确答案
# 2. 事实表类型(事务/周期快照/累积快照)的选型与粒度设计 A 事务事实表记录单笔事件、周期快照记录周期状态、累积快照记录流程生命周期,粒度决定可分析维度与数据量,应与业务需求匹配 ✓ 正确答案 B 三种事实表粒度完全相同 C 周期快照记录单笔事件 D 累积快照不记录状态
# 3. Apache Druid 的实时 OLAP A Druid 是批量处理引擎,不支持实时 B Druid 通过列式存储、预聚合(Rollup)与实时摄取实现秒级可见、亚秒级查询,适合实时监控与交互式 BI ✓ 正确答案 C Druid 行式存储,无预聚合 D Druid 擅长复杂 join 分析
# 4. ETL 与 ELT 的差异 A ETL 在加载前转换(目标弱计算时用),ELT 先加载原始数据再在目标存储内转换(适合强计算的数据湖仓),现代主流趋向 ELT ✓ 正确答案 B ETL 保留原始数据到目标 C ELT 在加载前转换 D 两者完全等价
# 5. dbt(data build tool)与 ELT 协作 A dbt 负责抽取数据 B dbt 模型无法引用其他模型 C dbt 负责 ELT 的转换层,用 SQL 模型(model)在仓库内构建 DAG、支持物化与测试,让转换代码化、可测试可复用 ✓ 正确答案 D dbt 不做数据质量校验
# 6. 数据仓库的分层架构(ODS/DWD/DWS/ADS) A DWS 存原始数据 B ODS 已是汇总数据 C ODS 存原始数据、DWD 清洗建模成明细、DWS 按主题汇总、ADS 面向应用,分层实现职责清晰、数据复用与降低重复计算 ✓ 正确答案 D 分层越多越简单,无代价
# 7. 数据建模的命名规范如何统一(表/字段/索引),命名与可维护性的关系如何体现? A 命名规范与可维护性无关 B 统一表(层级_主题_业务)、字段(一致语义)、索引前缀命名,可降低理解成本、便于血缘追踪与维护,命名即文档 ✓ 正确答案 C 字段可以用同义词随意命名 D 命名只需表名统一,字段随意
# 8. 数据湖(Data Lake)与数据仓库(Data Warehouse) A 数据湖存已建模数据 B 数仓 schema 读时定义 C 数仓存已建模结构化数据(写时定义 schema、强一致 SQL),数据湖存任意原始数据(读时定义 schema、灵活),湖仓一体兼顾两者 ✓ 正确答案 D 数据湖支持强一致事务分析
# 9. 数据血缘(Data Lineage)与 Atlas A 血缘只记录数据量,不记录链路 B Atlas 无法采集 Hive 血缘 C 血缘无法用于影响分析 D 数据血缘记录数据从源到目标的链路,支持追溯与影响分析,Atlas 通过 hook 采集元数据血缘并存入图存储提供血缘查询 ✓ 正确答案
# 10. 维度建模(星型/雪花模型) A 雪花模型查询更简单 B 星型模型维度表直接关联事实表、查询简单性能好,雪花模型维度表进一步规范化、减少冗余但查询需多层 join,主流优先星型 ✓ 正确答案 C 星型模型维度表几乎不拆分 D 星型模型冗余更大但性能差
# 11. Apache Doris/StarRocks 的 MPP 架构 A MPP 把数据分片到多节点并行执行,FE 负责规划调度、BE 负责存储执行,列式存储+实时摄入+物化视图面向实时 OLAP ✓ 正确答案 B MPP 架构只能单机执行 C Doris 不支持实时导入 D FE 负责数据存储
# 12. Apache Hive 的 Metastore 与外部表 A 外部表删除会删除数据文件 B Metastore 存储数据文件内容 C Metastore 用关系库存表结构/分区/文件位置等元数据,外部表数据与元数据解耦、删除表不删数据文件,适合共享数据 ✓ 正确答案 D 内部表删除不删数据
# 13. Apache Hudi 的增量数据湖 A Hudi 在数据湖上提供 ACID 事务、upsert 与增量读取,COW 更新重写文件读快写放大、MOR 更新写日志读需合并,支持时间旅行 ✓ 正确答案 B Hudi 只能追加数据,不能更新 C MOR 表更新重写基本文件 D Hudi 不支持增量读取
# 14. Apache Iceberg 的表格式演进 A Iceberg 只能被单一引擎使用 B Iceberg schema 演进需重写全量数据 C Iceberg 不支持 ACID D Iceberg 是开放表格式,支持 schema 演进不重写数据、快照时间旅行、ACID 事务与隐藏分区,可被多引擎共享访问 ✓ 正确答案
# 15. ClickHouse 的列式存储 A ClickHouse 行式存储,查询全表扫描 B 列式存储让查询只读所需列、高压缩、支持向量化执行,MergeTree 按分区+排序键组织并用稀疏索引加速,但复杂 join 与高频更新较弱 ✓ 正确答案 C ClickHouse 支持强事务更新 D ClickHouse 擅长复杂 join
# 16. DataVault、Anchor 与 3NF 建模 A 3NF 与维度建模相同 B DataVault 查询最简单 C Anchor 表数量少、查询简单 D 3NF 规范化消除冗余、查询多重 join,DataVault 用 Hub/Link/Satellite 强调可追溯可扩展,Anchor 极致拆分属性但表数量爆炸,工程少用 ✓ 正确答案
# 17. Delta Lake 的 ACID 表 A Delta Lake 无事务日志,无法保证一致性 B Delta Lake 只能追加不能更新 C Delta Lake 不支持时间旅行 D Delta Lake 用事务日志(_delta_log)记录每次 commit 并通过乐观并发控制实现 ACID,支持时间旅行、schema 演进与 upsert,与 Spark 集成最紧密 ✓ 正确答案
# 18. DolphinScheduler 的 DAG 定义与 Spark/Flink 任务集成的参数传递 A DAG 用节点+边定义任务依赖,支持全局参数(工作流级)、局部参数与任务间传递,Spark/Flink 任务通过 ${var} 注入调度参数 ✓ 正确答案 B DAG 只能串行执行,无依赖 C 参数只能在单个节点内使用 D DolphinScheduler 不支持定时任务
# 19. 数据质量(Data Quality)的检验维度 A 数据质量只衡量数据量大小 B 数据质量用完整性、准确性、一致性、及时性、唯一性、有效性等维度衡量,通过规则校验、抽样比对与监控告警治理 ✓ 正确答案 C 数据质量无需监控 D 一致性指数据不缺失
# 20. ES 与 ClickHouse/Doris 的 OLAP 选型对比(实时写入/聚合查询/Join 能力) A ES 的聚合能力最强 B ES 强在全文检索但 join 弱,ClickHouse 聚合极快但 join 弱,Doris/StarRocks join 与实时摄入强,按检索/聚合/join 需求选型 ✓ 正确答案 C ClickHouse 的 join 能力最强 D Doris 不支持实时导入
# 21. Presto/Trino 的联邦查询 A Trino 存储数据,负责 ETL B Trino 只能查询单一数据源 C Trino 通过 connector 连接多个异构数据源,用统一 SQL 做跨源 join 与下推查询,是无状态查询引擎,适合交互式跨源分析 ✓ 正确答案 D Trino 不支持跨源 join
# 22. 数据调度平台(DolphinScheduler/Airflow)的任务依赖与 SLA 监控 A 调度平台无告警能力 B 任务依赖无法定义先后关系 C SLA 监控与任务无关 D 调度平台用 DAG 管理任务间/时间依赖,支持定时触发、失败重试与超时告警,SLA 监控保障数据准时产出 ✓ 正确答案
# 23. 缓慢变化维(SCD1/2/3)的处理策略与 Hive/Spark SQL 实现 A SCD1 覆盖不保留历史、SCD2 新增版本保留完整历史、SCD3 用双列保留最近的旧值,按历史需求选择,SCD2 用拉链/merge 实现 ✓ 正确答案 B SCD1 保留完整历史 C SCD3 保留无限历史 D SCD2 只保留当前值