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

数据仓库基础常见面试题

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.lryc.cn/news/521138.html

相关文章:

  • Java设计模式——单例模式(特性、各种实现、懒汉式、饿汉式、内部类实现、枚举方式、双重校验+锁)
  • 数字普惠金融对新质生产力的影响研究(2015-2023年)
  • 国产编辑器EverEdit - 扩展脚本:新建同类型文件(避免编程学习者反复新建保存练习文件)
  • jupyter notebook练手项目:线性回归——学习时间与成绩的关系
  • dockerfile2.0
  • 【spring mvc】文件上传、下载
  • FPGA工程师成长四阶段
  • java fastjson2 解析JSON用法解析
  • 计算机视觉算法实战——步态识别(主页有源码)
  • LabVIEW水位监控系统
  • 网络层协议-----IP协议
  • 计算机网络八股文学习笔记
  • IntelliJ IDEA中Maven项目的配置、创建与导入全攻略
  • 如何在Jupyter中快速切换Anaconda里不同的虚拟环境
  • stack和queue专题
  • 【Vue】点击侧边导航栏,右侧main对应显示
  • 【Debug】django.db.utils.OperationalError: (1040, ‘Too many connections‘)
  • 如何开放2375和2376端口供Docker daemon监听
  • RabbitMQ确保消息可靠性
  • 前端常见的设计模式之【单例模式】
  • 【React】脚手架进阶
  • win32汇编环境,窗口程序中单选框的一般操作示例
  • 如何移除git中被跟踪的commit文件
  • 结合night compute分析 利用tensor core 优化K值较大的矩阵乘(超过cublas50%)
  • Docker 部署 Typecho
  • 【大数据】机器学习-----模型的评估方法
  • 【Excel笔记_3】execl的单元格是#DIV/0!,判断如果是这个,则该单元格等于空
  • FPGA EDA软件的位流验证
  • 信号与系统初识---信号的分类
  • 信号量机制之苹果-橘子问题