数据仓库基础常见面试题
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
相关文章:
数据仓库基础常见面试题
1.数据仓库是什么 数据仓库(Data Warehouse)是一个面向主题的、集成的、非易失的、随时间变化的数据集合,用于支持企业的管理决策。它不同于传统的操作型数据库,后者主要用于处理日常业务交易和实时查询,而数据仓库…...
Java设计模式——单例模式(特性、各种实现、懒汉式、饿汉式、内部类实现、枚举方式、双重校验+锁)
文章目录 单例模式1️⃣特性💪单例模式的类型与实现:类型懒汉式实现(线程不安全)懒汉式实现(线程安全)双重锁校验懒汉式(线程安全)饿汉式实现(线程安全)使用类的内部类实现⭐枚举方式实现单例(推荐)👍 单例…...
数字普惠金融对新质生产力的影响研究(2015-2023年)
基于2015—2023年中国制造业上市公司数据,探讨了数字普惠金融对制造业企业新质生产力的影响及作用机理。研究发现,数字普惠金融有助于促进制造业企业新质生产力的发展,尤其是在数字普惠金融的使用深度较大的情况下,其对新质生产力…...
国产编辑器EverEdit - 扩展脚本:新建同类型文件(避免编程学习者反复新建保存练习文件)
1 扩展脚本:在当前文件目录下新建同类型文件 1.1 应用场景 用户在进行编程语言学习时,比如:Python,经常做完一个小练习后,又需要新建一个文件,在新建文件的时候,不但要选择文件类型,…...
jupyter notebook练手项目:线性回归——学习时间与成绩的关系
线性回归——学习时间与学习成绩的关系 第1步:导入工具库 pandas——数据分析库,提供了数据结构(如DataFrame和Series)和数据操作方法,方便对数据集进行读取、清洗、转换等操作。 matplotlib——绘图库,p…...
dockerfile2.0
dockerfile实现lnmp nginx centos7 mysql centos7 php centos7 自定义镜像来实现整个架构 cd /opt mkdir nginx mysql php cd nginx 拖入nginx和wordpress vim Dockerfile vim nginx.conf ↓ worker_processes 1; events {worker_connections 1024; } http {include …...
【spring mvc】文件上传、下载
文件上传,存储至本地目录中 一、代码1、工具类(敏感后缀过滤)2、文件上传,存储至本地3、文件下载 二、效果演示1、上传1.1、postMan 请求1.2、上传效果 2、下载2.1、下载效果 一、代码 1、工具类(敏感后缀过滤&#x…...
FPGA工程师成长四阶段
朋友,你有入行三年、五年、十年的职业规划吗?你知道你所做的岗位未来该如何成长吗? FPGA行业的发展近几年是蓬勃发展,有越来越多的人才想要或已经踏进了FPGA行业的大门。很多同学在入行FPGA之前,都会抱着满腹对职业发…...
java fastjson2 解析JSON用法解析
Fastjson2 是 Fastjson 的升级版本,提供了更好的性能和扩展性,同时也在 API 和功能上做了很多改进。使用 Fastjson2 解析 JSON 数据非常简单,支持多种方式来解析 JSON 字符串、嵌套 JSON 对象和数组、以及转换成 Java 对象。下面详细介绍 Fas…...
计算机视觉算法实战——步态识别(主页有源码)
✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ 1. 步态识别简介✨✨ 步态识别(Gait Recognition)是计算机视觉领域中的一个…...
LabVIEW水位监控系统
LabVIEW开发智能水位监控系统通过集成先进的传感技术与控制算法,为工业液体存储提供精确的水位调控,保证了生产过程的连续性与安全性。 项目背景 在化工和饮料生产等行业中,水位控制的准确性对保证生产安全和提高产品质量至关重要。传统的水…...
网络层协议-----IP协议
目录 1.认识IP地址 2.IP地址的分类 3.子网划分 4.公网IP和私网IP 5.IP协议 6.如何解决IP地址不够用 1.认识IP地址 IP 地址(Internet Protocol Address)是指互联网协议地址。 它是分配给连接到互联网的设备(如计算机、服务器、智能手机…...
计算机网络八股文学习笔记
总结来自于javaguide,本文章仅供个人学习复习 javaguide计算机网络八股 文章目录 计算机网络基础网络分层模型OSI七层模型TCP/IP四层模型 HTTP从输入URL到页面展示到底发生了什么?(非常重要)HTTP状态码HTTP Header中常见的字段有哪些?HTTP和HTTPS有什么区别?(重要)HTTP/1.0和…...
IntelliJ IDEA中Maven项目的配置、创建与导入全攻略
大家好,我是袁庭新。 IntelliJ IDEA是当前最流行的Java IDE(集成开发环境)之一,也是业界公认最好用的Java开发工具之一。IntelliJ IDEA支持Maven的全部功能,通过它我们可以很轻松地实现创建Maven项目、导入Maven项目、…...
如何在Jupyter中快速切换Anaconda里不同的虚拟环境
目录 介绍 操作步骤 1. 选择环境,安装内核 2. 注册内核 3. 完工。 视频教程 介绍 很多网友在使用Jupyter的时候会遇到各种各样的问题,其中一个比较麻烦的问题就是我在Anaconda有多个Python的环境里面,如何让jupyter快速切换不同的Pyt…...
stack和queue专题
文章目录 stack最小栈题目解析代码 栈的压入弹出序列题目解析代码 queue二叉树的层序遍历题目解析代码 stack stack和queue都是空间适配器 最小栈 最小栈的题目链接 题目解析 minst是空就进栈,或者是val < minst.top()就进栈 代码 class MinStack { public:M…...
【Vue】点击侧边导航栏,右侧main对应显示
需求:点击侧边导航栏,右侧main对应显示 通过v-if或v-show等指令来控制不同内容的显示隐藏来实现 注意: 使用v-if时候进行导航栏切换,右侧显示区域可能会出现样式错乱;使用v-show则不会出现此错误 <template>&…...
【Debug】django.db.utils.OperationalError: (1040, ‘Too many connections‘)
报错: django.db.utils.OperationalError: (1040, ‘Too many connections‘) 排查 可能是Mysql的连接数量超过了允许的最大连接数量; 查看Mysql允许最大连接数量: -- 查看允许连接的最大数量 SHOW VARIABLES LIKE %max_connections%;-- 查…...
如何开放2375和2376端口供Docker daemon监听
Linux (以 Ubuntu 为例) 1. 修改 Docker 配置文件 打开 Docker 的配置文件 /etc/docker/daemon.json。如果该文件不存在,则可以创建一个新的。 bash sudo nano /etc/docker/daemon.json在配置文件中添加以下内容: json {"hosts": ["un…...
RabbitMQ确保消息可靠性
消息丢失的可能性 支付服务先扣减余额和更新支付状态(这俩是同步调用),然后通过RabbitMq异步调用支付服务更新订单状态。但是有些情况下,可能订单已经支付 ,但是更新订单状态却失败了,这就出现了消息丢失。…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
