首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客749595135号
发布于上海
关注
已关注
取消关注
@蓦_然:
数据仓库面试题——数据仓库分层
问过的一些公司:字节 x 2,字节(2021.07)-(2021.08)-(2021.10),阿里 x 2,爱奇艺,百度 x 2,百度(2021.08),网易 x 3,网易(2021.09)x2,美团 x 4,美团(2021.09)x2,京东,京东(2021.09),贝壳,keep,马蜂窝 x 2,转转,滴滴,小米,米哈游,有赞 x 2,猿辅导,58 x 2,作业帮社招,字节社招,腾讯社招 x 2,端点数据(2021.07),百度(2021.09),蔚来(2021.09),恒生(2021.09),快手(2021.09),唯品会(2021.10) 参考答案: 首先,我要知道数据仓库分层架构的目标是什么?是为了实现维度建模,进而支撑决策分析目标。 数据分层从关系型在线交易系统到面向主题的数据仓库系统,从范式建模到维度建模的必经之路。 数据分层是一套让我们的数据体系更有序的行之有效的数据组织和管理方法。数据分层不是银弹,也没有绝对标准,当然也不能包治百病,不能解决所有的数据问题,但是,数据分层却可以给我们带来如下的好处: 隔离原始数据:不论是数据的异常还是数据敏感度,使真实数据与统计数据解耦开。 数据结构化更清晰:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解。 数据血缘追踪:提供给外界使用的是一张业务表,但是这张业务表可能来源很多张表。如果有一张来源表出问题了,我们可以快速准确的定位到问题,并清楚每张表的作用范围。 增强数据复用能力:减少重复开发,通过数据分层规范化,开发一些通用的中间层数据,能够减少重复计算,提高单张业务表的使用率,提升系统的执行效率。 简化复杂的问题:把一个复杂的业务分成多个步骤实现,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。 减少业务的影响:业务可能会经常变化,这样做就不必改一次业务就需要重新接入数据。 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。 统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径。 分层的核心思想就是解耦,再解耦,把复杂的问题简单化。 数据仓库基础分层主要是分为四层,如下图所示 如上图所示,一个公司可能有多个业务系统,而数据仓库就是将所有的业务系统按照某种组织架构整合起来,形成一个仓储平台,也就是数仓。 1、四层分层 第一层: ODS——原始数据层:存放原始数据 ODS层即操作数据存储,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入本层;一般来说ODS层的数据和源系统的数据是同构的,主要目的是简化后续数据加工处理的工作。从数据粒度上来说ODS层的数据粒度是最细的。ODS层的表通常包括两类,一个用于存储当前需要加载的数据,一个用于存储处理完后的历史数据。历史数据一般保存3-6个月后需要清除,以节省空间。但不同的项目要区别对待,如果源系统的数据量不大,可以保留更长的时间,甚至全量保存;数据在装入本层前需要做以下工作:去噪、去重、提脏、业务提取、单位统一、砍字段、业务判别。 第二层: DWD——数据明细层:对ODS层数据进行清洗、维度退化、脱敏等。覆盖所有系统的、完整的、干净的、具有一致性的数据层。 该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证,在ODS的基础上对数据进行加工处理,提供更干净的数据。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,当一个维度没有数据仓库需要的任何数据时,就可以退化维度,将维度退化至事实表中,减少事实表和维表的关联。例如:订单id,这种量级很大的维度,没必要用一张维度表来进行存储,而我们一般在进行数据分析时订单id又非常重要,所以我们将订单id冗余在事实表中,这种维度就是退化维度。 第三层: DWS——数据服务层: 对DWD层数据进行一个轻度的汇总。 DWS层为公共汇总层,会进行轻度汇总,粒度比明细数据稍粗,会针对度量值进行汇总,目的是避免重复计算。该层数据表会相对比较少,大多都是宽表(一张表会涵盖比较多的业务内容,表中的字段较多)。按照主题划分,如订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。 第四层: DM——数据集市层:为各种统计报表提供数据。 存放的是轻度聚合的数据,也可以称为数据应用层,基于DWD、DWS上的基础数据,整合汇总成分析某一个主题域的报表数据。主要是提供给数据产品和数据分析使用的数据,通常根据业务需求,划分成流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。从数据粒度来说,这层的数据是汇总级的数据,也包括部分明细数据。从数据的时间跨度来说,通常是DW层的一部分,主要的目的是为了满足用户分析的需求,而从分析的角度来说,用户通常只需要分析近几年的即可。从数据的广度来说,仍然覆盖了所有业务数据。 2、三层分层 上述四层数仓,如果是问的三层数仓,就相当于是把DWD、DWS合并成DW层,往细的方面分,DW还包括DWM层(数据中间层),三层分层如下: 第一层: ODS——原始数据层:存放原始数据 第二层: DW——数据仓库层:数据清洗,初步汇总 本层将从 ODS 层中获得的数据按照主题建立各种数据模型,每一个主题对应一个宏观的分析领域,数据仓库层排除对决策无用的数据,提供特定主题的简明视图。在DW层会保存BI系统中所有的历史数据,例如保存10年的数据。 第三层: DM——数据集市层 3、五层分层 五层分层如下: 第一层: ODS——原始数据层:存放原始数据 第二层: DWD——数据明细层:对ODS层数据进行清洗、维度退化、脱敏等。 第三层: DWS——数据汇总层: 对DWD层数据进行一个轻度的汇总。 第四层: ADS——数据应用层:为各种统计报表提供数据 该层是基于DW层的数据,整合汇总成主题域的服务数据,用于提供后续的业务查询等。 第五层: DIM——维表层:基于维度建模理念思想,建立整个企业的一致性维度。 维表层主要包含两部分数据: 高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。 低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。数据量可能是个位数或者几千几万。
点赞 26
评论 2
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
04-08 09:31
门头沟学院 Java
AI行业,已经过了“泛AI红利期”
先给所有想入门AI的同学一个最清醒的核心结论:2026年的AI行业,已经过了“泛AI红利期”,入门的第一步,绝对不是盲目跟风学技术,而是先做「赛道定位」,再做「阶梯式学习」,最后用「项目落地」验证成果,所有脱离求职目标的入门学习,都是无效内耗。作为在AI行业实习了半年,带过几个零基础学弟学妹入门的后端开发,今天给大家做一份完整的AI入门全流程指南,从第一步的赛道选择,到基础学习、项目落地、求职准备,全给大家讲透,零基础、本科生也能直接抄作业。一、入门第一步:用1周时间,完成赛道定位与目标设定(最核心,绝对不能跳过)这是入门AI最关键的一步,90%的人入门走弯路,都是因为跳过了这一步,盲目学技术...
现在入门AI首先要做什么...
点赞
评论
收藏
分享
04-09 17:23
门头沟学院 Java
4.8滴滴日常一面
1.为什么不选择后端分片文件上传?是实现麻烦还是交互麻烦?2.上传的视频文件不会加水印吗?隐私性怎么保证?3.假设数据量比较大,会出现性能问题,如果要你去改,你有什么想法吗?4.一般怎么加索引?怎么读取的更快呢?5.介绍一下什么是联合索引?6.联合索引失效的场景?is null会不会导致索引失效?order by会不会失效? order by两个字段走不走索引?7.讲解一下rag8.rag中如何处理大数据的分片和分块?9.使用过es吗?讲解一下检索的原理10.讲解一下bm25算法11.算法:杨辉三角,力扣原题写的很快,但是让我改空间复杂度,最后勉强写完。面试官人还不错感觉八股还是背的不够深入啊
查看11道真题和解析
点赞
评论
收藏
分享
02-26 11:47
大连科技学院 测试工程师
26届本科,这样的简历春招能拿到offer吗
明明就不饿:
看不懂你到底会啥,什么岗位
点赞
评论
收藏
分享
02-25 12:06
天津大学 嵌入式硬件工程师
我这个简历怎么样
秋招0offer,估计简历有问题
牛吃草草:
投的有问题
你的简历改到第几版了
点赞
评论
收藏
分享
04-11 19:54
武汉大学 Java
美团一面凉经
1.自我介绍2.手撕树的最短路径3.为什么选简历上这两个项目做4.拷打项目5.你项目里用了八个线程池,如果用同一个线程池会怎么样?6.线程池的参数了解吗?新的任务到线程池以后流程是怎么样?平时用线程池遇到过什么问题吗?如果你使用了拒绝策略,但是你仍然想执行被拒绝的任务,应该怎么办?你的核心线程数为什么要设置成6?7.你刚刚说使用消息队列,你现在有八个线程池那要建八个线程池吗8.如果有几万个人同时使用你的应用,最先出问题的是哪些部分?9.为什么redis stream比rocketmq、rabbitmq10.Mysql的索引是什么?为什么b+树快11.索引失效的场景12.覆盖索引了解吗13.缓存...
查看20道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
#中国电信笔试#牛逼,以为行测后面还有其他题型,于是着急忙慌还有20分钟就提交试卷了,┭┮﹏┭┮
8045
2
...
入职翼支付2年多,聊聊感受
3601
3
...
携程4.12笔试
2857
4
...
字节剪映123面
2830
5
...
我的求职充满着失败
2316
6
...
Agent岗位爆发,作为后端开发要不要无脑转?
2305
7
...
4.10京东后端实习一面凉经
2264
8
...
美团暑期笔试 拼尽全力无法战胜
2152
9
...
招行给AI时代数字金融人的答案
2037
10
...
4.12拼多多笔试
1679
创作者周榜
更多
正在热议
更多
#
我的求职进度条
#
988362次浏览
6553人参与
#
实习教会我的事
#
73621次浏览
507人参与
#
厦门银行科技岗值不值得投
#
19045次浏览
422人参与
#
哪些公司一直卡在简历筛选
#
106437次浏览
363人参与
#
我想象的实习vs现实的实习
#
332954次浏览
2298人参与
#
Agent面试会问什么?
#
39932次浏览
1454人参与
#
米哈游笔试
#
656182次浏览
1160人参与
#
总结:哪家公司最喜欢泡池子
#
168120次浏览
573人参与
#
一人分享一个skill
#
10383次浏览
244人参与
#
拿到offer之后,可以做些什么
#
105083次浏览
511人参与
#
一人一道大厂面试题
#
127123次浏览
1310人参与
#
春招至今,你收到几个面试了?
#
107760次浏览
1313人参与
#
说说你知道的学历厂
#
402184次浏览
1434人参与
#
上班以后,你还有哪些坚持的爱好?
#
30311次浏览
303人参与
#
今年你最想重开的一场面试是?
#
103857次浏览
357人参与
#
米哈游工作体验
#
29972次浏览
145人参与
#
我是XXX,请攻击我最薄弱的地方
#
73617次浏览
500人参与
#
通信/硬件的薪资开多少,才值得去?
#
76884次浏览
408人参与
#
实习越久越好,还是多多益善?
#
95093次浏览
361人参与
#
今年春招是金一银二嘛?
#
99768次浏览
560人参与
#
简历无回复,你会继续海投还是优化再投?
#
148309次浏览
893人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务