大数据面试题 —— 数据仓库

news/2024/5/20 22:15:45

目录

  • 数据仓库是什么
  • 数据仓库和数据库的区别
  • 为什么要对数据仓库分层
  • 数仓分层,以及每一层的作用
  • 维度建模的三种模型
  • 范式建模、维度建模
  • 维度建模过程,如何确定这些维度 ***
  • 维度模型的各个维度之间是怎么聚合的
  • 聚合过程的数据倾斜怎么解决?
  • 数据质量是怎么保证的,有哪些方法保证
  • 数据治理
  • 传统数仓和大数据数仓的区别 ***
  • 数据湖
  • 数据湖、数据仓库之间的区别
  • 电商业务常见的数据域

数据仓库是什么


数据仓库是一个面向主题的集成的相对稳定的反映历史变化的数据集合,主要用于存储历史数据,然后通过分析整理进而提供数据支持和辅助决策。

数据仓库和数据库的区别


(1)数据库中主要存放的是一些在线的数据,数据仓库中主要存放的是历史数据,并且存放的数据要比数据库多;

(2)数据库主要用于业务处理(比如交易系统),数据仓库主要用于数据分析;

(3)数据库的设计就是要避免冗余,而数据仓库通常会专门引入冗余,减少后面进行分析时大量的 join 操作。

在数据仓库中,冗余指的是相同的数据在多个表中重复存储。比如预聚合数据,为了提高查询性能,数据仓库可能会事先计算并存储聚合数据。

为什么要对数据仓库分层


(1)将复杂问题简单化:将复杂的问题分解为多层来完成,每一层只处理简单的任务,方便定位问题;

(2)提高数据的复用性:比如在已经得到最终结果之后,又需要中间层的一些数据,可以直接查询中间层的数据,不必重新进行计算。

(3)隔离原始数据:将真实数据与统计数据解耦开。

补充说一下:我觉得数据仓库就是一种以空间换取时间的架构!

数仓分层,以及每一层的作用


在这里插入图片描述

(1)ODS 原始数据层:存放原始数据,直接加载原始日志,数据,数据保持原貌不做处理。

DIM层,维度层,保存维度数据,主要是对业务事实的描述信息,例如何人,何时,何地等

(2)DWD 数据明细层:对 ODS 层数据进行清洗(去除空值,脏数据,超过极限范围的数据)、脱敏等,保存业务事实明细,一行信息代表一次业务行为,例如一次下单。

(3)DWS 数据服务层:对 DWD 层数据按天进行一个轻度的汇总。一行信息代表一个主题对象一天的汇总行为,例如一个用户一天下单次数。

(4)DWT 数据主题层:对 DWS 层数据进行累积汇总。一行信息代表一个主题对象的累积行为,例如一个用户从注册那天开始至今一共下了多少次单。

(5)ADS 数据应用层:面向实际的数据需求,为各种统计报表提供数据。

维度建模的三种模型


在这里插入图片描述

范式建模、维度建模


范式建模:较为松散、零碎,物理表数量多。严格遵循第三范式(3NF),数据冗余程度低,数据的一致性容易得到保证。但由于数据分布于众多的表中,查询会相对复杂,在大数据的场景下,查询效率相对较低。

维度建模:维度模型以数据分析作为出发点,不遵循三范式,故数据存在一定的冗余。维度模型面向业务,将业务用事实表和维度表呈现出来。表结构简单,故查询简单,查询效率较高。

维度建模过程,如何确定这些维度 ***


维度建模一般按照以下四个步骤:
选择业务过程→声明粒度→确认维度→确认事实

(1)选择业务过程

在业务系统中,挑选我们感兴趣的业务线,比如下单业务,支付业务,退款业务,物流业务,一条业务线对应一张事实表。

(2)声明粒度

数据粒度指数据仓库的数据中保存数据的细化程度或综合程度的级别。
声明粒度意味着精确定义事实表中的一行数据表示什么,应该尽可能选择最小粒度,以此来应各种各样的需求。

(3)确定维度

确认维度是指确定与事实表中的每个记录相关联的维度。维度是描述事实表中每个记录所描述的事件或过程的属性。

对于订单来说,常见的维度会包含商品、日期、买家、卖家、门店等而每一个维度还可以包含大量的描述信息,比如商品维度表会包含商品名称、标签价、商品品牌、商品类目、商品上线时间等。

(4)确定事实

确认事实是指确定与每个维度相关联的事实。事实是指与每个维度相关联的数值或量度。

维度模型的各个维度之间是怎么聚合的


在维度模型中,不同的维度之间可以通过聚合来建立关联。聚合是指将数据按照某个维度进行汇总,并计算相应的聚合指标,比如总计、平均值、最大值等等。不同维度之间可以通过共同的聚合指标建立联系。

举个例子,假设有一个销售数据的维度模型,其中包含了时间、地点、产品等多个维度。如果想要了解某一地区某一时间段内的产品销售情况,就可以按照时间和地点这两个维度进行聚合,计算出该地区该时间段内每种产品的销售总量、平均销售额等指标。

在维度模型中,常用的聚合方式包括:group by、sum、avg、min、max等等。聚合可以在ETL过程中进行,也可以在BI工具中进行。聚合可以帮助我们更好地理解数据,并发现数据之间的关联和趋势,从而更好地支持决策。

聚合过程的数据倾斜怎么解决?


解决方案:两阶段聚合(局部聚合+全局聚合)

实现原理:在需要聚合的key前加一个随机数的前后缀,这样就能得到非常均匀的key,然后按这个加工之后的key进行第一次聚合之后,接着去除掉随机前缀,再次进行全局聚合,就可以得到最终的结果。

具体原理见下图先将相同key的数据分拆处理,最后进行全局聚合

在这里插入图片描述

数据质量是怎么保证的,有哪些方法保证


1)从技术层面来说,需要构建一套高效、健壮的ETL程序,以此保证数据清洗、转换后数据的正确性和一致性。

2)从流程上来说,整个ETL是多个任务,按步骤顺序执行的一个过程,后置任务依赖前置任务,定期执行,整个流程需要自动化,并且哪个环节出现了问题,给予预警,通知相关维护人员及时处理。

3)从管理层面上来说,数据仓库是构建在公司各个业务系统之上,它是一面镜子,很多时候它能反映出业务系统的问题,所以需要管理层的支持和约束,比如通过第一条说的事后自动检验机制反映出业务系统的维护错误,需要相应的业务系统维护人员及时处理。

数据治理


数据治理是指对杂乱、无规范数据的治理,目的就是为了让数据有序,就像是秦始皇统一度量衡一样,“车同轨,书同文“就是最早的一项数据治理工作。数据治理(Data Governance)是组织中涉及数据使用的一整套管理行为。数据治理体系是为了规范业务数据规范、数据标准、数据质量和数据安全中的各类管理任务活动而建立的组织、流程与工具。

传统数仓和大数据数仓的区别 ***


在这里插入图片描述

数据湖


数据湖是一个集中存储各类结构化和非结构化数据的大型数据仓库,它可以存储来自多个数据源、多种数据类型的原始数据,数据无需经过结构化处理,就可以进行存取、处理、分析和传输。数据湖能帮助企业快速完成异构数据源的联邦分析、挖掘和探索数据价值。

数据湖、数据仓库之间的区别


在这里插入图片描述

电商业务常见的数据域


数据域:将业务过程或者维度进行抽象的集合,例如交易域、商品域等都是数据域。

商品数据域:

  • 商品信息:包括商品名称、描述、价格、库存、品牌、分类等。
  • 商品图片:商品的图片信息,可能包括多个角度的图片、缩略图等。
  • 商品属性:商品的各种属性信息,如颜色、尺寸、重量、材质等。
  • 商品评论:用户对商品的评价、评分、评论内容等。

订单数据域:

  • 订单信息:包括订单号、下单时间、支付方式、订单状态等。
  • 订单详情:订单中每个商品的购买数量、价格、总金额等。
  • 收货信息:用户的收货地址、联系方式等。
  • 物流信息:订单的物流状态、快递公司、运费等。

用户数据域:

  • 用户信息:包括用户ID、用户名、手机号码、邮箱、注册时间等。
  • 用户行为:用户的浏览记录、搜索记录、点击记录、购买记录等。
  • 用户偏好:用户的兴趣标签、关注的品类、购买习惯等。
  • 用户反馈:用户对服务、商品的评价、投诉、建议等。

http://www.mrgr.cn/p/76186756

相关文章

【FX110】2024外汇市场中交易量最大的货币对是哪个?

作为最大、最流动的金融市场之一,外汇市场每天的交易量高达几万亿美元,涉及到数百种货币。不同货币对的交易活跃程度并不一样,交易者需要根据货币对各自的特点去进行交易。 全年外汇市场中涉及美元的外汇交易超过50%! 实际上&…

基于Vue3与ElementUI Plus的酷企秀场景可视化DIY设计器:前端技术引领下的数字化展示新篇章

一、引言 在当今信息化高速发展的时代,企业对于展示自身形象、提升用户体验以及增强品牌知名度的需求日益迫切。针对这一市场需求,我们推出了基于Vue3与ElementUI Plus的酷企秀场景可视化DIY设计器。该产品不仅具备电子画册、VR全景、地图秀三大核心功能…

MATLAB 三维空间中在两点之间等间隔插入多个点 (67)

MATLAB 三维空间中在两点之间等间隔插入多个点 (67) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 用于加密直线点云,具体为根据给定的直线端点,沿着该直线方向,插入多个点,从而加密。具体方法和效果如下所示: 二、算法实现 1.代码 代码如下(示例): % 定…

【Qt QML】Frame组件

Frame(框架)包含在: import QtQuick.Controls继承自Pane控件。用于在可视框架内布局一组逻辑控件。简单来说就是用来包裹和突出显示其他可视元素。Frame不提供自己的布局,但需要自己对元素位置进行设置和定位,例如通过…

C语言leetcode刷题笔记2

C语言leetcode刷题笔记2 第4题:283.移动零互换直接移动 第5题:122.买卖股票的最佳时机‖递归(超时)动态规划贪心算法 第6题:49.字母异位词分组优化 第4题:283.移动零 给定一个数组 nums,编写一…

艾体宝方案 | 加密USB金融解决方案

在现代金融行业中,保护敏感数据和合规性已成为至关重要的任务。为了帮助金融公司应对移动性风险和合规挑战,我们提供了一种高效的加密USB解决方案。 一、为什么金融公司需要加密USB解决方案 1、降低移动性风险 金融服务公司正在迅速过渡到一种模式&a…

智慧旅游引领未来风尚,科技助力旅行更精彩:科技的力量推动旅游业创新发展,为旅行者带来更加便捷、高效和智能的旅行服务

目录 一、引言 二、智慧旅游的概念与特点 (一)智慧旅游的概念 (二)智慧旅游的特点 三、科技推动旅游业创新发展 (一)大数据技术的应用 (二)人工智能技术的应用 (…

Vue从入门到实战Day03

一、生命周期 1. 生命周期四个阶段 思考: ①什么时候可以发送初始化渲染请求? 答:越早越好,在创建阶段后 ②什么时候可以开始操作DOM? 答:至少DOM得渲染出来,在挂载阶段结束后。 Vue生命周…

API低代码平台介绍2-最基本的数据查询功能

最基本的数据查询功能 本篇文章我们将介绍如何使用ADI平台定义一个基本的数据查询接口。由于是介绍平台具体功能的第一篇文章,里面会涉及比较多的概念介绍,了解了这些概念有助于您阅读后续的文章。 ADI平台的首页面如下: 1.菜单介绍 1.1 O…

C++ 动态内存管理

例如:动态内存和释放单个数据的存储区 一 用new运算符初始化单个数据的存储区 举例

Linux-信号执行

1. 信号什么时候被处理 当进程从内核态返回到用户态的时候,进行信号的检测和处理 什么内核态,什么又是用户态呢? 当进程在CPU上运行时,内核态:允许进程访问操作系统的代码和数据,用户态:进程只…

计算机网络chapter1——家庭作业

文章目录 复习题1.1节(1) “主机”和“端系统”之间有何不同?列举几种不同类型的端系统。web服务器是一种端系统吗?(2)协议一词常用来用来描述外交关系,维基百科是如何描述外交关系的&#xff1…

iOS 17 / iPad OS 17屏蔽更新

iOS 17 / iPad OS 17屏蔽更新 1,进入屏蔽iOS更新的描述文件下载链接 下载链接 wx 搜索 Geek 前端发送屏蔽更新进行获取 2,复制这段链接,在Safari浏览器中打开,注意打开后别点击下载!要先改时间! 3&#…

K8s必须掌握的7个调试技巧

K8s必须掌握的7个调试技巧 原创 艾叔编程 艾叔编程 2024-05-09 09:35 北京 听全文Kubernetes(K8s)调试技术是指在使用Kubernetes集群过程中,用于定位和解决问题的方法和技术。Kubernetes是一个复杂的系统,它负责管理容器化的应用程序,确保它们按照预期运行。当应用程序出现…

【数据结构】之栈的应用——有效的括号

文章目录 有效的括号 有效的括号 原题链接:有效的括号 详解栈的链接 这道题可以利用栈来解决 1.左括号入栈 2.右括号与出栈顶左括号匹配 //创建一个动态的栈 typedef char STDateType; typedef struct Stack {STDateType* a;//储存指定数据类型的数组int top…

安防视频/视频汇聚系统EasyCVR视频融合云平台助力智能化酒店安防体系的搭建

一、背景需求 2024年“五一”假期,全国文化和旅游市场总体平稳有序。文化和旅游部6日发布数据显示,据文化和旅游部数据中心测算,全国国内旅游出游合计2.95亿人次。“五一”假期县域市场酒店预订订单同比增长68%,而酒店作为一个高…

最新:Lodash 严重安全漏洞背后你不得不知道的 JavaScript 知识

可能有信息敏感的同学已经了解到:Lodash 库爆出严重安全漏洞,波及 400万 项目。这个漏洞使得 lodash “连夜”发版以解决潜在问题,并强烈建议开发者升级版本。 我们在忙着“看热闹”或者“”升级版本”的同时,静下心来想&#xf…

震惊,现在面试都加科技与狠货了

震惊,现在面试都加科技与狠货了 生成式AI盛行的现在,程序员找工作变容易了吗我和老痒喝着大酒,吃着他的高升宴,听他说他面试的各种细节,老狗我只恨自己动作慢了一步,不然现在在那侃侃而谈的就是我了。 面试…

电商核心技术揭秘53:社群营销的策略与实施

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘相关系列文章合集(3) 电商技术揭秘四十一:电商平台的营销系统浅析 电商技术揭秘四十二&#…

Window7镜像注入USB驱动,解决系统安装后无法识别USB

Window7镜像注入usb驱动 Window7镜像注入usb驱动方法一方法二 Window7镜像注入usb驱动 一般4代酷睿之后的主机需要安装usb驱动才能驱动usb,导致很多Windows原版镜像安装后无法识别usb键盘 方法一 1.直接采购PS2 接口键盘、PS2 接口鼠标 方法二 使用联想镜像注入…