数据仓库面试题

一、ODS、DWD、DWS、ADS划分与职责

sql 复制代码
数据仓库中的ODS、DWD、DWS、ADS分别代表以下层次,并各自承担不同的职责:

--ODS(Operational Data Store):
名称:贴源层
主要职责:作为数据仓库的第一层,ODS层主要用来接收和存储数据源系统中的数据,同时保证数据的准确性和完整性。ODS层的数据与源系统数据基本保持一致,主要用于简化后续数据加工处理的工作。
数据粒度:细粒度
表类型:通常包括两类,一个用于存储当前需要加载的数据,一个用于存储处理完后的历史数据。

--DWD(Data Warehouse Detail):
名称:数据明细层
主要职责:DWD层是数据处理的核心层,其主要任务是对ODS层中的数据进行清洗、加工、集成、聚合等操作,构建出符合业务需求的数据模型。这一层会对数据进行必要的规范化处理,解决数据的重复、缺失、异常等问题,同时对数据进行标准化和统一化处理。
数据处理方法:包括空值处理、验证数据有效性、规范数据格式、统一数据标准、数据转码、业务规则清洗等。


DIM(Dimension):
名称:维度层
主要职责:DIM层包含了一个或多个维度表,这些维度表描述了数据仓库中的各个维度。例如,在销售数据仓库中,可能包含时间维度表、产品维度表、客户维度表等。

--DWS(Data Warehouse Service):
名称:数据汇总层
主要职责:DWS层是面向业务应用的数据访问层,主要用于提供数据接口和数据服务。它可以提供各种类型的服务,如数据查询、统计、报表、分析等,同时可以通过ETL操作等方式对数据进行加工和处理,为用户提供实时数据服务。
数据处理:包括维度上卷、指标汇总、指标合并等,主要作用是满足共性需求,解决口径不一致、开发任务多等问题,通过宽表化处理提高分析效率。

ADS(Analytics Data Store):
名称:数据应用层
主要职责:ADS层主要是为决策分析层提供数据支持,主要用于存储汇总计算结果和预处理的数据。它主要关注数据的可视化和查询性能,同时还需要具备快速响应的能力,为业务决策提供及时支持。
表类型:通常包括各类报表、查询、仪表盘等。

二、事实表有哪些类型?

sql 复制代码
--1、事务事实表
事务事实表也称原子事实表,描述业务过程,跟踪控件或时间上某点的度量事件,保存的是最原子的数据,适用于跟踪单个业务事件或事务,如订单、交易等。

--2、周期事实表
以一个周期为时间间隔来记录事实,通常的周期可以是每天、每周、每月、每年等,它只关注某个业务过程在某个时间点的状态,例如订单收货的状态,数据会按照订单收货的时间来切分。

--3、累积快照事实表
用来描述过程开始和结束之间的关键步骤事件,覆盖过程的整个生命周期,适用于那些需要跟踪业务过程从开始到结束所有状态变化的场景,如订单从创建到完成的整个过程

三、数仓中数据模型(数仓中维度与事实之间的模型有那些?)

sql 复制代码
--1、星型模型
由一个事实表和多个维度表组成,维度表围绕事实表,每个维度表都通过一个或多个键与事实表相连
--2、雪花模型
雪花模型是星型模型的一个扩展,其中维度表可能进一步规范化,形成多个相关的维度表
--3、星座模型
星座模型是多个星型模型或雪花模型的集合,共享某些维度表。

四、 为什么要设计数据分层?

sql 复制代码
1、方便对表的定位:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解
2、减少重复开发:一些通用的中间层数据,能够减少重复计算
3、统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径
4、复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层解决特定的问题

五、事实表设计流程

sql 复制代码
--1、选择业务
通常一个业务过程对应一张事实表
--2、声明粒度
定义每张事实表的每行数据表示什么,并尽可能选择最细粒度,以应对各种细节程度的需求
--3、确定维度
完成粒度声明以后,也就意味着确定了主键,可以确定与每张事实表相关的维度,选择能够清楚描述业务过程的维度信息,如卖家、买家、商品、时间等。
--4、确定事实
事实是与业务过程有关的度量值,事实通常是数值型的度量值,如销售额、订单数量、点击次数等,事实有可加性、半可加性、非可加性三种类型,需要将不可加性事实分解为可加的组件。
--5、冗余维度
通过将部分维度属性退化到事实表中,可以减少下游用户关联多个表的操作,提高查询效率

六、如何判断事实与维度

sql 复制代码
--事实(Fact)
度量性质:事实通常是数值型的度量值,如销售额、订单数量、点击次数等。这些度量值可以通过数学计算进行汇总和比较。
业务过程:事实通常与特定的业务过程相关联,例如订单处理、购买行为、网站访问等。每个业务过程都可以产生一个或多个事实。
粒度:事实的粒度是指事实表中的一行数据所代表的业务细节层次。例如,在销售事实表中,粒度可以是每条销售记录(详细粒度)或每日的销售总额(汇总粒度)。
可加性:事实通常具有可加性,意味着可以将多个事实值相加以获取更高层次的总计值。例如,可以将多个订单的销售额相加得到总销售额。

--维度(Dimension)
描述性质:维度用于描述业务过程中的上下文信息,如时间、地点、产品、客户等。维度通常是非数值型的,用于提供对事实的详细描述和分类。
层次结构:维度通常具有层次结构,例如时间维度可以包含年、季度、月、日等层次。这些层次结构有助于用户从不同的角度分析和理解数据。
属性:维度由多个属性组成,这些属性描述了维度的不同方面。例如,客户维度可能包含客户ID、客户姓名、客户地址、客户类型等属性。
稳定性:与事实相比,维度数据通常更稳定,不会频繁变化。维度的属性通常用于过滤和分组事实数据,以便进行更深入的分析。
相关推荐
Frank牛蛙9 分钟前
大数据之路 读书笔记 Day3
大数据
lose and dream_1129 分钟前
【 2024!深入了解 大语言模型(LLM)微调方法(总结)】
大数据·人工智能·opencv·机器学习·语言模型·自然语言处理·架构
我非夏日39 分钟前
基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务7:格式化并启动Hadoop集群
大数据·hadoop·分布式
2401_8576100339 分钟前
强强联合:Apache Kylin与Impala的集成之道
大数据·apache·kylin
2401_857636391 小时前
Scala中的尾递归优化:深入探索与实践
大数据·算法·scala
知识分享小能手1 小时前
从新手到高手:Scala函数式编程完全指南,Scala 访问修饰符(6)
大数据·开发语言·后端·python·数据分析·scala·函数式编程
KompasAI1 小时前
客户服务的智能升级:Kompas.ai如何改善客户体验
大数据·人工智能·aigc·语音识别·ai写作
乐财业-财税赋能平台2 小时前
从手工到智能:乐财业鹦鹉系统引领财税管理新纪元
大数据·人工智能
东少子鹏2 小时前
Spark
大数据·分布式·spark
我非夏日2 小时前
基于Hadoop平台的电信客服数据的处理与分析④项目实现:任务16:数据采集/消费/存储
大数据·hadoop·大数据技术开发