当前位置: 首页 > article >正文

数据仓库基础常见面试题

1.数据仓库是什么
‌数据仓库(Data Warehouse)是一个面向主题的、集成的、非易失的、随时间变化的数据集合,用于支持企业的管理决策‌。它不同于传统的操作型数据库,后者主要用于处理日常业务交易和实时查询,而数据仓库则侧重于对历史数据的整合、分析和挖掘
2.数据仓库和数据库有什么区别
数据来源和处理方式不同:数据库通常用于存储、管理和查询交易数据,而数据仓库则是用于处理分析性查询的数据。数据仓库通常从多个数据源中获取数据,经过清洗、转换和集成后形成一个集成的数据存储区域,以支持多维分析和决策制定。
  数据结构不同:数据库通常使用关系型数据模型,数据存储以表格的形式呈现,每个表格由多个行和列组成;而数据仓库通常使用维度建模或者标准化建模的方式进行数据设计,以支持多维分析和查询。
数据类型不同‌:
‌数据库‌设计用于存储交易型数据,支持对数据的增、删、改操作‌
‌数据仓库‌主要从数据库中抽取必要数据进行分析,不涉及增、删、改操作‌
‌查询方式不同‌:
‌数据库‌查询通常涉及简单的表查询和基本的聚合操作,响应时间要求短‌
‌数据仓库‌查询涉及复杂的数据计算和多层次的查询语言,响应时间要求合理即可‌
3.为什么要对数据仓库分层
对数据仓库进行分层的主要原因包括提高数据处理效率、增强数据质量、增强可维护性、支持多维度分析和提高数据安全性等‌。
4.为什么需要数据建模
同3
5.经典的数据仓库建模方法论有哪些
E-R模型:设计实体关系,满足三范式
维度模型:星型模型,雪花模型,星座模型

  • 6.数仓相关的名词术语解释,比如数据域、业务过程、衍生指标

  • 7.派生指标的种类

8.经典数仓分层架构
在这里插入图片描述

  • ODS

ODS层:这是数据仓库的最底层,直接对接数据源系统,用来临时存储从业务系统抽取过来的原始数据,数据结构和粒度与源系统基本保持一致。其主要功能是作为数据进入数据仓库的缓冲区域,在这一层可以对数据进行简单的清洗和转换操作,比如去除明显的噪声数据、统一数据格式等,但不会进行复杂的数据处理。它为后续的数据处理提供了原始的数据基础,确保数据的完整性和准确性,方便在数据出现问题时进行追溯。

  • CDM

CDM层分为DWD明细层、DWS轻度汇总层和DIM维度层。
· 在DWD层中,需要将数据仓库ODS层的原样数据按照主题去建立相应的数据模型,对数据进行统一的清洗和一致性处理。
· 在DWS层,就会以分析对象为建模驱动,把DWD清理好的一些表进行跨关联,建立面向业务主题的大宽表模型,为应用层提供统一的计算口径和数据标准,提高效率。
· 在DIM层需要通过添加维度属性、关联维度等定义计算逻辑,完成属性定义的过程并建立一致的数据分析维度表。

  • ADS

在ADS层,根据业务需要来存放个性化的报表数据,可以直接为前端的报表提供查询和展现的服务。
原文链接:https://blog.csdn.net/oOBubbleX/article/details/143847533
9.模型设计的基本原则
易于理解和扩展,避免数据冗余,减少表连接的数量提高查询效率
10.模型实施的具体步骤
需求分析-设计架构-建设基础设施-实时数据仓库ETL过程-开发报表和工具-测试上线-维护优化
11.维度建模有哪几种模型
星型模型,雪花模型,星座模型
12.维度建模中表的类型
事实表:事务事实表,周期快照事实表,累积快照事实表
维度表:与事实表关联,用于统计和聚合运算
13.维度表的设计过程
确定维度(确保维度的唯一性)-确定主维度表-确定维度属性(如果只有一个应加入事实表,尽量丰富通用)-
14.维度表的设计中有哪些值得注意的地方
确保维度的唯一性,如果某些维度表的维度属性很少,例如只有一个**名称,则可不创建该维度表,而把该表的维度属性直接增加到与之相关的事实表中
尽可能丰富维度属性
尽可能使用准确的文字说明
尽可能找出更通用的维度属性
15.维度规范化和反规范化如何理解
规范化是一种组织数据库结构的方法,旨在减少数据冗余、消除数据异常,确保数据的完整性。在数据仓库设计中,规范化通常通过一系列的规则(称为范式)来实现,常见的范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
反规范化是数据库设计中的一种技术,旨在通过减少表的连接操作来增加数据检索速度、降低复杂性、优化数据访问路径。反规范化通常在数据库规范化之后进行,基于性能优化的需要进行,包括添加冗余数据、组合表、使用预存计算值等策略。
16.维表整合的两种表现形式
水平整合和垂直整合
垂直整合是指将来自不同系统的相同数据集整合到一个维度表中。例如,在会员相关信息的数据集中,可能存在多个会员表(如会员基础信息表、会员扩展信息表、会员等级信息表等)。将这些多张表整合到一个会员维度属性中,以减少冗余数据和提高数据的一致性‌
水平整合则是将来自不同数据集的数据整合到一个维度表中,这些数据集之间可能存在交叉或无交叉。例如,采集的会员数据可能来自淘宝会员、支付宝会员等多个来源。将这些来源表的各子集的自然键作为联合主键的方式,整合到一个会员维度表中,以实现数据的统一管理‌

  • 17.如何处理维度的变化

18.事实表设计的八大原则
涵盖业务过程、选择相关事实、分解不可加性、声明粒度一致性、避免多级粒度、统一单位、处理null值和使用退化维度
19.事实表的设计过程
选择业务过程-确定度量-确定粒度-选择维度-设计表结构
20.事实表有哪几种类型
‌事务事实表‌:记录各业务过程的原子操作事件,保存最细粒度的数据。适用于需要高度灵活性和细节层次统计需求的情况‌
‌周期快照事实表‌:以一个周期为时间间隔记录事实,如每天、每周、每月等。适用于需要按时间周期汇总的数据‌
累积快照事实表‌:描述过程开始和结束之间的关键步骤事件,覆盖过程的整个生命周期。适用于需要记录多个关键时间点的数据‌

  • 21.多事务事实表如何对事实进行处理

22.单事务事实表和多事务事实表哪种设计更好
根据业务需求选择合适的事实表类型。如果需要精确跟踪每一个操作,选择单事务事实表;如果需要完整记录业务过程,选择多事务事实表。
23.周期快照事实表的设计过程
选择业务过程-确定度量-确定粒度-选择维度-设计表结构-确认数据加载和更新周期-维护
24.累计快照事实表的设计过程
选择业务过程-确定度量-确定粒度-选择维度-设计表结构-确认数据生命周期-维护
25.累计快照事实表的特点
时间字段多,包含多个关键点,通常进行分区存储

原文链接:https://blog.csdn.net/qq_42397330/article/details/130218083


http://www.kler.cn/a/503931.html

相关文章:

  • HTTP/HTTPS ⑤-CA证书 || 中间人攻击 || SSL/TLS
  • PyTorch 中的 Dropout 解析
  • day10_Structured Steaming
  • Zookeeper(3)Zookeeper的工作原理是什么?
  • ORACLE-表空间和分区控制
  • 二级C语言 2025/1/14
  • 【算法】回溯法
  • 【自动化测试】—— Appium安装配置保姆教程(图文详解)
  • CT重建笔记(二)
  • 机器学习 - 常用的损失函数(交叉熵、Hinge)
  • electron编写一个macOS风格的桌面应用
  • 硬件知识:显示器发展历程介绍
  • 算法题之反转字符串
  • 深入理解观察者模式 —— Qt信号槽机制的实现
  • 通过一个算法的设计来了解栈的一些应用
  • 【Audition】Audition如何在波形中插入静音且插入边缘不做平滑处理
  • 使用sqlplus的easy connect时如何指定是链接到shared server还是dedicated process
  • 【01】AE特效开发制作特技-Adobe After Effects-AE特效制作快速入门-制作飞机,子弹,爆炸特效以及导出png序列图-优雅草央千澈
  • 三相无刷电机控制|FOC理论04 - 克拉克变换 + 帕克变换的最终目标
  • ubuntu Android : adb logcat 过滤多个log
  • RAG 测评基线
  • git相关操作
  • Linux入门——权限
  • 学习笔记080——如何备份服务器中Docker创建的MySQL数据库数据?
  • [Linux] GDB 和 CGDB的使用及理解
  • 国产编辑器EverEdit - 打印与打印预览