2025年数据仓库面试题目及答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

2025年数据仓库面试题目及答案

1.数据仓库与传统数据库在设计目标、数据模型和查询模式上的核心差异是什么?

数据仓库的设计目标是支持高层决策分析,关注历史数据的整合与多维度分析;传统数据库(OLTP系统)侧重事务处理,强调实时性、高并发和数据原子性。数据模型上,数据仓库多采用维度建模(星型/雪花模型),通过维度表和事实表降低查询复杂度;传统数据库使用第三范式,通过表间关联减少数据冗余。查询模式方面,数据仓库的查询通常是复杂的多表关联、聚合计算(如年销售额按区域分组),单次查询涉及大量数据;传统数据库以单表增删改查为主,单次操作数据量小,响应时间要求毫秒级。例如,电商数据仓库需支持“近3年各季度不同品类在一线城市的销售转化率”这类跨时间、地域、品类的复杂分析,而OLTP数据库仅需处理用户下单时的商品库存扣减操作。

2.维度建模中“缓慢变化维”有哪几种处理方式?实际项目中如何选择?

缓慢变化维(SCD)主要有5种处理方式:

SCD1:覆盖旧值,直接更新维度表中变化的字段(如用户手机号变更)。适用于历史版本无需保留的场景(如客户最新联系方式)。

SCD2:添加新行,保留历史版本(如商品类目调整)。通过生效时间(start_date)和失效时间(end_date)标记版本,需维护当前行标识(is_current)。适用于需要追踪变化历史的场景(如分析类目调整对销售的影响)。

SCD3:添加字段存储旧值(如员工职级变更时新增“原职级”字段)。适用于仅需保留最近一次变更的场景(如监控职级调整频率)。

SCD4:使用历史表,将维度主表存当前值,历史表存全量变更记录(如客户地址变更)。适用于主表需保持轻量但历史数据需长期归档的场景。

SCD5:组合SCD2和SCD3,同时保留最新值和最近一次旧值(如产品价格调整时,主表存当前价和上次价)。适用于需要快速对比最近两次变更的场景(如分析价格波动对销量的影响)。

实际选择需结合业务需求:若需分析变化对历史事实的影响(如某商品2023年Q1属于美妆类目,Q2调整为个护类目),必须用SCD2;若仅需当前状态(如用户最新所在城市),SCD1更高效;若存储空间有限但需保留最近一次变更(如员工部门调整),SCD3更节省资源。

3.设计数据仓库分层时,ODS层、DWD层、DWS层的核心职责及设计原则是什么?

ODS(操作数据存储)层:职责是原始数据的镜像存储,保留数据的原始性、完整性和时效性。设计原则包括:与源系统数据结构一致(如MySQL的binlog直接同步至ODS)、记录数据采集时间(etl_time)、保留全量历史(通过分区或快照)。例如,电商ODS层会存储各业务库的全量日志、交易流水,用于追溯原始数据问题。

DWD(数据明细层):职责是对ODS数据进行清洗、规范化和轻度聚合,形成统一的业务明细数据。设计原则包括:去重(如订单表去重,避免同一订单多次入库)、补全缺失值(如用户表缺失的注册来源通过关联设备信息补充)、统一命名规范(如所有时间字段命名为gmt_create)、维度退化(将常用维度直接关联到事实表,减少查询时的JOIN)。例如,将订单表与商品类目表关联,在DWD层直接存储“订单商品类目”明细,避免后续分析时重复关联。

DWS(数据汇总层):职责是按分析主题(如用户、商品、交易)进行聚合,降低查询复杂度。设计原则包括:按天/周/月分区(如dws_user_daily,存储用户每日行为汇总)、选择合适的聚合粒度(如用户级聚合而非订单级)、预计算常用指标(如用户当日访问次数、下单金额)。例如,DWS层可预计算“用户近7天活跃天数”“商品周销量”等高频查询指标,将原本需要多表关联的小时级查询优化为秒级响应。

4.ETL流程中,如何处理脏数据?请结合具体场景说明策略。

脏数据包括缺失值、重复值、非法值(如年龄5)、格式错误(如手机号含字母)、逻辑矛盾(如订单支付时间早于下单时间)。处理策略需分阶段:

(1)采集阶段:通过正则表达式校验(如手机号必须11位数字)、范围校验(如年龄0150)过滤明显非法数据,记录错误日志(含源系统、错误字段、错误原因)。例如,从APP端采集用户行为日志时,若检测到“页面访问时长”为负数,直接标记为脏数据,写入ods_err_log表。

(2)清洗阶段:

缺失值:若为关键字段(如订单ID),直接丢弃;若为非关键字段(如用户性别),用默认值(未知)填充,或通过关联其他表补全(如根据用户注册时填写的生日推算性别概率)。

重复值:通过唯一键(如订单号+时间戳)去重,保留最新或最完整的一条。例如,交易流水表中同一订单号出现两次,根据etl_time保留较新的记录。

逻辑矛盾:通过业务规则修正

文档评论(0)

183****5731 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档