暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数仓面试必知必会100题 | 建议关注、收藏、点赞避免找不到

会飞的一十六 2025-10-27
620
  1. 请用3分钟介绍自己,重点说明与数仓岗位相关的技术栈(如Hadoop、Hive、SQL)和项目经验。

  2. 你理解的数据仓库(数仓)的核心定义是什么?它与传统数据库的本质区别是什么?

  3. 数仓的分层架构(ODS、DWD、DWS、ADS)分别是什么?各层的作用和数据特点是什么?

  4. 为什么数仓需要分层?分层设计能解决哪些实际问题(如数据复用、性能优化、业务隔离)?

  5. 你了解哪些数仓建模方法?(如维度建模、实体关系建模、Data Vault),实际项目中更倾向哪种?为什么?

  6. 维度建模中的“事实表”和“维度表”分别是什么?如何设计这两类表的关联关系?

  7. 星型模型和雪花模型的区别是什么?各自的适用场景有哪些?

  8. 什么是缓慢变化维度(SCD)?SCD有哪些类型(如SCD1、SCD2、SCD3)?分别如何实现?

  9. 你在项目中如何设计数据模型?请描述从业务需求到模型落地的完整流程。

  10. 如何判断一个数据模型设计是否合理?(如是否满足业务查询、是否易于扩展、性能是否达标)

  11. 你熟悉的数仓工具和技术栈有哪些?(如Hadoop生态、Spark、Flink、Hive、ClickHouse 等)

    1. Hive 在数仓中的作用是什么?它与 HDFS、MapReduce 的关系是什么?

    2. 你常用 Hive 的哪些功能?(如分区表、分桶表、视图、CTE)这些功能在数仓中解决了什么问题?

    3. Spark SQL 与 Hive SQL 的区别是什么?在数仓开发中如何选择使用?

    4. 你熟悉哪些 ETL 工具?(如 Sqoop、Flume、Kettle、DataX)请说明它们在数据同步中的适用场景。

    5. Flume 的核心组件 (Source、Channel、Sink) 分别是什么?如何配置 Flume 实现日志数据的实时采集?

    6. Sqoop 用于哪些场景?从 MySQL 抽取数据到 Hive 时,如何处理增量数据?

    7. 你使用过哪些实时数仓技术?(如 Flink、Kafka、ClickHouse)实时数仓与离线数仓的架构差异是什么?

    8. Kafka 在数仓中的作用是什么?如何保证 Kafka 消息的不丢不重?

    9. 你熟练掌握 SQL 的哪些高级特性?(如窗口函数、子查询、大表关联、分组聚合)请举例说明在数仓中的应用。

    10. 维度建模中,“维度”和“度量”的定义是什么?如何从业务需求中识别维度和度量?

    11. 设计用户维度表时,你会包含哪些核心字段?如何处理用户信息的变更(如手机号、地址更新)?

    12. 事实表分为哪几类?(如事务事实表、周期快照事实表、累积快照事实表)各自的适用场景是什么?

    13. 如何设计订单相关的数仓模型?请说明订单事实表与用户、商品、时间维度表的关联方式。

  1. 什么是“一致性维度”?在跨业务线的数仓中,如何保证维度的一致性?

  2. 数据建模时,如何平衡“冗余”和“关联效率”?过度冗余或过度关联分别有什么问题?

  3. 面对复杂业务(如电商的下单-支付-物流全链路),你会如何拆分数据模型?

  4. 如何设计时间维度表?包含哪些层级(如年、季、月、日、时)?为什么需要独立的时间维度表?

  5. 什么是“代理键”?在数仓建模中使用代理键的优势是什么?如何生成代理键?

  6. 你在建模时是否考虑过“数据生命周期”?如何设计不同生命周期的数据表(如热数据、冷数据)?

  7. ETL(抽取、转换、加载)的核心流程是什么?在数仓开发中,ETL 的每个环节具体做什么?

  8. 数据抽取时,全量抽取和增量抽取的区别是什么?分别适用于哪些场景(如历史数据、每日新增数据)?

  9. 如何实现 MySQL 到 Hive 的增量数据抽取?(如基于 binlog、时间戳、自增 ID)各方法的优缺点是什么?

  10. 数据转换(Transform)阶段,你会处理哪些常见问题?(如数据清洗、格式转换、异常值处理、数据脱敏)

  11. 如何处理不同数据源的“数据不一致”问题?(如同一用户在订单表和用户表的姓名不同)

  12. ETL 任务中,如何实现数据的“幂等性”?(即重复执行任务不会导致数据重)

  1. 你会用什么工具调度 ETL 任务?(如 Airflow、Oozie、Azkaban)请说明调度策略(如依赖关系、重试机制、超时设置)。

  2. 设计一个“每日用户活跃数”的 ETL 流程,你会包含哪些步骤?(如抽取日志、过滤有效行为、聚合计算、加载到 DWS 层)

  3. 如何处理 ETL 任务中的“数据倾斜”?(如某用户 ID 对应 90% 的记录)请说明具体优化方法。

  4. 大表(如千万级以上)与大表关联时,你会用哪些 SQL 优化技巧?(如 MapJoin、分桶关联、过滤前置)

  5. Hive SQL 的性能优化有哪些常用方法?(如分区裁剪、分桶抽样、MapReduce 参数调优、索引使用)

  6. 如何优化数仓中的“全表扫描”问题?(如合理分区、使用分桶、添加索引、限制扫描范围)

  7. 数仓中,大表(如 10 亿行)的存储优化有哪些手段?(如压缩格式选择、存储分层、数据归档)

  8. 为什么 Hive 查询大表时会慢?你会从哪些角度排查原因?(如 SQL 写法、数据分布、资源配置)

  9. Spark SQL 与 Hive SQL 在性能上的差异是什么?处理 10 亿级数据时,你会优先选择哪个?为什么?

  10. 如何优化数仓中的“JOIN”操作?(如小表放左、使用 Broadcast Join、避免笛卡尔积)

  11. 分区表和分桶表的区别是什么?分别在什么场景下使用能提升性能?

  1. 数仓中,如何处理“高并发查询”问题?(如读写分离、查询缓存、资源隔离)

  2. 实时数仓中,Flink 的状态后端(如 MemoryStateBackend、FsStateBackend)如何选择?对性能有什么影响?

  3. 离线数仓中,如何通过调整 MapReduce 的 map 数和 reduce 数优化任务性能?

  4. 数据质量的核心指标有哪些?(如完整性、准确性、一致性、及时性、唯一性)

  5. 你会用什么方法监控数仓的数据质量?(如 SQL 校验、工具检查、告警机制)请举例说明。

  6. 如何检测“数据缺失”问题?(如某字段为空值的比例超过阈值)发现后如何处理?

  7. 数仓中,“数据延迟”的定义是什么?如何监控 ETL 任务的延迟情况?(如对比计划完成时间与实际完成时间)

  8. 数据准确性校验的常用方法是什么?(如与业务系统对账、跨表一致性校验、人工抽样检查)

  9. 如何处理数仓中的“脏数据”?(如格式错误、超出合理范围、逻辑矛盾)是直接过滤还是标记后保留?

  10. 你会设计哪些数据质量告警规则?(如某表数据量突降 50%、关键字段空值率超 10%)告警后如何响应?

  11. 元数据管理在数仓中的作用是什么?你会管理哪些元数据?(如表结构、字段含义、血缘关系、数据生命周期)

  12. 如何通过元数据追踪“数据血缘”?(即某字段的数据来源于哪个上游表、经过哪些 ETL 步骤)

  1. 数仓中,如何保证“数据安全”?(如敏感字段脱敏、访问权限控制、操作审计日志)

  2. 你参与过的数仓项目中,最大的数据量是多少?(如单表 10 亿行、日增量 1000 万行)如何处理的?

  3. 项目中遇到过 ETL 任务失败的情况吗?请说明排查步骤(如查看日志、检查数据源头、验证依赖任务)。

  4. 如何处理数仓中的“历史数据迁移”问题?(如从旧数仓迁移到新数仓,保证数据一致性)

  5. 你设计的数仓支持过哪些业务场景?(如报表分析、BI 可视化、数据挖掘)请举例说明数据模型如何支撑这些场景。

  6. 项目中,如何协调与业务方的需求沟通?(如将“用户活跃度”的业务需求转化为可落地的数据指标)

  7. 实时数仓项目中,你是如何处理“实时性”与“数据准确性”的平衡的?(如部分场景允许最终一致性)

  8. 数仓上线后,你会做哪些验收工作?(如数据对比验证、性能测试、业务场景覆盖测试)

  9. 如何处理数仓的“版本迭代”?(如新增字段、修改模型、下线旧表)如何保证迭代不影响线上业务?

  10. 项目中,你是否主导过数仓的“性能优化”?请说明优化前后的指标对比(如查询时间从 30 分钟降到 5 分钟)。

  11. 当业务发生重大变更(如电商新增直播带货场景),你会如何调整数仓模型?

  1. 离线数仓与实时数仓的核心区别是什么?(从数据延迟、技术栈、适用场景角度说明)

  2. 实时数仓中,Kafka 的 Topic 设计有哪些原则?(如按业务域划分、合理分区、设置保留时间)

  3. Flink 在实时数仓中的作用是什么?你用 Flink 实现过哪些功能?(如实时聚合、维度关联、数据清洗)

  4. 实时数仓中的“维度退化”是什么意思?为什么需要维度退化?

  5. 如何处理实时数仓中的“迟到数据”?(如设置 watermark、允许一定时间的延迟窗口)

  6. 离线数仓的“T+1”延迟如何满足业务的实时性需求?(如结合实时数仓做分层支撑)

  7. 你如何理解“数仓是业务的镜像”?在设计数仓时,如何确保对业务的准确映射?

  8. 面对不熟悉的业务(如金融风控),你会通过哪些方式快速理解并设计数仓模型?(如访谈业务方、阅读需求文档、分析现有系统)

  9. 数仓中的“指标体系”是什么?你会如何设计指标体系(如原子指标、派生指标、复合指标)?

  10. 如何将“用户留存率”这个业务指标转化为数据模型中的计算逻辑?(如确定分子分母、关联用户行为表)

  11. 数仓设计中,如何考虑“可扩展性”?(如新增业务线、新增字段时,模型无需大幅重构)

  1. 你认为数仓工程师需要懂“数据挖掘”或“机器学习”吗?为什么?

  2. 数仓的生命周期包含哪些阶段?(如规划、设计、开发、上线、运维、退役)每个阶段的核心任务是什么?

  3. 数仓运维中,你会关注哪些核心指标?(如任务成功率、数据完整性、查询响应时间)

  4. 如何制定数仓的数据归档策略?(如按时间归档、按访问频率归档)归档后的数据如何查询?

  5. 数仓中的“冷数据”和“热数据”如何区分?存储和访问策略有何不同?

  6. 你会用什么工具进行数仓的元数据管理?(如 Atlas、Amundsen)这些工具解决了什么问题?

  7. 你常用哪些方式学习数仓新技术?(如开源社区、技术博客、行业会议、实战项目)

  8. 你认为数仓未来的发展趋势是什么?(如实时化、云原生、智能化)你如何应对这些趋势?

  9. 你熟悉哪些云原生数仓产品?(如阿里云 AnalyticDB、AWS Redshift、腾讯云 TDSQL)它们与开源数仓的区别是什么?

  10. 你有哪些数仓相关的认证或技术博客?(如 Cloudera 认证、个人技术文章)

  11. 你认为自己在数仓领域的短板是什么?计划如何提升?

  12. 假设需要设计一个“短视频 APP 的数仓”,你会如何分层?各层包含哪些核心表?

  13. 某数仓中,“用户订单表”与“支付表”的订单 ID 关联不上,你会从哪些角度排查原因?

  1. 数仓中,某张 DWS 层表的计算结果与业务方预期不符,你会如何定位问题?(如从 ADS 层反推 DWS、DWD、ODS 层)

  2. 面对 100 亿行的用户行为日志表,你会如何设计存储和查询方案?(如分区、分桶、冷热分离)

  3. 如何优化一个运行时间超过 2 小时的 Hive SQL 任务?请说明具体步骤。

  4. 数仓中,如何处理“多数据源冲突”?(如同一商品在电商平台和 ERP 系统的价格不同)

  5. 如果你是数仓团队负责人,会如何制定团队的开发规范?(如命名规范、模型设计规范、SQL 编码规范)

  6. 最后,请用一句话总结你认为自己能胜任数仓岗位的核心优势。

往期精彩
如何评估数仓分层设计的合理性?| 腾讯数据架构
面试提问:业务对指标结果质疑时,你会怎么处理?|  快手
数据质量治理的成效如何来量化?
面试提问:如果业务方临时要一个新指标,你会如何处理?| 临时取数问题
数仓建模:业务驱动or数据驱动?
面试提问:每天更新但没人用的数据表是否算数据资产?
面试提问:ADS层SLA如何保障?
数仓宽表灵魂提问:如何将不同业务粒度的事实数据与维度信息整合到一张宽表中?
读者提问:如何在一张宽表上做出不同业务过程、统计不同粒度的指标?
面试灵魂拷问:为什么维度表不能合并成一张大表?
读者提问:缓慢变化维能进行维度退化吗?答案可能和你想的不一样
ADS层建设规范案例及模板 | 实战篇
数仓中如何基于维度表的静态规则管理优化CASE WHEN?
面试官灵魂提问:数仓ADS层需要分区吗?
读者提问:如何在一张宽表上做出不同业务过程、统计不同粒度的指标?
如何设计一个评估618大促活动效果的指标体系? | 阿里巴巴
哈士奇vs网易高级数仓:数据仓库的灵魂是模型、数据质量还是计算速度?| 易错题
读者提问:如果维度退化或下沉的维度属性发生了变化,事实表该如何处理?

文章转载自会飞的一十六,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论