经常说的数据仓库,是如何存储数据的

news2024/11/23 22:20:01

一、 什么是数据仓库?

数据仓库(Data Warehouse),简称DW。数据仓库顾名思义,是⼀个很⼤的数据存储集合,出于企业的分析性报告和决策⽀持⽬的⽽创建,对多样的业务数据进⾏筛选与整合。它能为企业提供⼀定的BI(商业智能:例如数据挖掘、数据分析和数据报表)能⼒。有了数据报表,还可以指导业务流程改进。

二、 数据仓库解决什么问题?

数据仓库是应景大数据而生的,解决的问题无非就是存储和快速提取, 另外还有跨部门应⽤的功能。

对于不同数据整合到了数据仓库之后,也就是大数据有了存储的位置;我们可以不同的部门进行不同的应用(例如数据挖掘、数据分析、报表展示和查询等等);而快速提取是我们对于数据仓库的基本需求,所以数据仓库在设计起初就要具备快速提取的功能。而技术实现呢,就是分布式。

三、 数据仓库的主要特征

1、面向主题的

传统数据库最大的特点就是面向应用进行组织数据,一个业务系统管理一部分企业数据,多个业务系统之间呢是相互分离的,而数据仓库则是面向主题的

我们可以通过从上图中的源数据那部分看到,它把多个业务的数据来整合,所以是面向主题的

2、集成的

集成是指数据仓库中数据必须是一致的,也就是我们要通过ETL进行软码编辑。

数据仓库的数据是从原有的、分散多个数据仓库、数据文件、用户日志中抽取出来的,那数据来源上可能既有内部数据,又有外部数据。

数据仓库中的数据是为分析而服务的,而分析呢又需要多种、广泛的不同数据源、数据,以便进行比较、鉴别。因此数据仓库中的数据必须从多个数据源中获取。

那这些数据源就包括内部数据、外部数据、文件系统以及网上的其他数据等。这些是通过数据集成而形成数据仓库的数据,所以它是集成的。

3、稳定的

数据仓库中的数据反映的是一段相当长时间内历史数据的内容,是不同时间点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的一个导出数据,一旦数据进入仓库以后,一般情况下会较长时间的保留。

数据经加工和集成进入数据仓库后极少更新,所以是稳定的,它保留的时间长也是稳定的、不易失的。

4、时变的

数据仓库中包含各种意思的历史数据。数据仓库中的数据与某个特定的日期,例如星期、月份是有关系的。虽然数据仓库不会修改数据,但并不是说数据仓库的数据啊是永远不变的,数据仓库的数据也需要更新以适应新的需求。

数据仓库的数据随时间的变化主要表现在以下几个方面:

1.数据仓库的数据时限一般来说远远长于操作类型的数据库时限;

2.业务系统存储的是当前数据,而数据仓库中的数据是历史数据;

3.数据仓库中的数据是按照时间顺序进行追加的,都在于时间属性,这就是反映了历史变化的数据。

四、数据仓库与数据库区别

数据仓库与数据库的区别,实际上就是OLTP(联机事物处理过程),也称为面向交易的处理过程,和OLAP(联机分析处理)的区别。

在看具体的差异之前,需要特别提醒的是,数据仓库的出现并不是要取代数据库,它们是各有各的用处的。

先从面向来看,数据库面向的是事务,也就是OLTP(联机事务处理过程),而数据仓库呢面向的是分析,也就是OLAP(联机分析处理)。

再看一下用户,对于数据库来说,它的用户是DBA开发;对于数据仓库来说呢,它的用户就是经理、主管、分析人员,可以看出数据仓库是针对于分析的;

对于功能而言,数据库是针对于日常操作的,而数据仓库是对于长期信息需求,用来决策支持的。

再看一下数据,数据库当中存储的是当前的、最新的,而数据仓库呢存储的是历史的、跨时间维护的,所以数据库当中信息比较久远的数据可以入仓,也就是存储到数据仓库中来。

再看一下用户数,数据库是数百到数亿的,例如我们是一个电商数据库,那他的用户可能就达到了上亿,而对于数据仓库可能只达到了数百,因为是给企业内部人员来进行使用的。

再看一下设计规模,数据库是GB到TB的,那对于数据仓库来说呢,它存在是历史数据,所以肯定是大于TB的。

因此数据仓库是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、决策需要而产生的,它绝不是所谓的大型数据库。

五、数据仓库架构

数据仓库是大数据时代的必然产物,而且它还具有四个特征:面向主题的、集成的、稳定的、时变的。那么我们用它来解决的问题就是存储大数据量、快速提取、还有跨部门应用。那针对于跨部门应用和快速提取,我们就要设计好数据仓库的架构。

那数据仓库的架构主要从四个方面来考虑:

第一层,ODS层,是数据准备区,数据来源是各个业务系统的数据,物理模型和业务系统模型是一致的。

第二层,DWD层,数据来至于ODS层,数学模型与ODS层一致,那其实也是与业务系统模型一致。

第三层,DW层,数据来自是第二层DWD层,是DW事实层,采用维度建模,星型架构。这一层可细分为dwb和dws。

第四层,DM层,数据来自于下一层的DW层,采用了维度建模,也是星型架构,和DW层是一样的。

第五层,ST层,数据来自于DW层,采用的也是维度建模和星型架构。

上述内容是从数据来源及建模方式来说的这样五层的作用。

接下来我们从服务领域、数据ETL来看一下这五层的作用。

数据仓库系统的数据来源于不同的数据源,例如MySQL、ORACLE和文档等等,而且还提供不同的数据应用。

数据是自下层流入到数据仓库,然后向上层开放数据应用。数据仓库只是中间的一个数据管理平台,所以我们在架构数据仓库系统的时候都采用分层架构。

六、 数据仓库元数据管理

我们介绍在数据仓库进行架构的时候,从四个方面进行考量和平衡,如质量、性能、效率、还有成本。

那分层架构上可以看出来,它是在效率和效能上进行考察的,质量方面就要靠元数据的管理和数据治理来实现了。

什么是元数据?

1、元数据

元数据主要是记录数据仓库中模型的定义、各层级间的映射关系(例如我们架构的这五层,层与层之间的映射关系要靠元数据来保存),监控数据仓库的数据状态以及ETL任务的运行。

一般会通过元数据质量库来统一地存储和管理原数据,其主要目的呢就是使数据仓库的设计、部署、操作和管理达成协同和一致,保证数据质量,这是元数据的定义。

而我们关键要看的就是模型的定义、层级的映射关系、ETL的任务运行状态,这都是元数据来负责的。所以说元数据是数据仓库系统的一个重要的组成部分,贯穿数据仓库构建的整个过程,直接影响了数据仓库的构建、使用和维护。

由于数据仓库的数据来源种类比较多,例如MySQL、日志、外部数据等。

在这些元数据进入数据仓库时,要经历ETL(抽取、转换、加载)这些操作步骤,所以元数据就是定义源数据到数据仓库的映射关系、转换规则等等。

同理,在数据应用层,也就是用户在使用数据的时候,也是通过元数据来访问数据的,因为元数据记录了数据的位置。

2、元数据具体的工作内容

元数据针对于ETL,它存储了抽取方法、映射规则等等。

对于清洗工具,它又存储了这样清洗的一些规则。

对于相关人员使用,它存储了一些数据质量、数据是如何组织的。

对于数据仓库的建模,它存储数据是如何定义的、数据有效值、数据仓库的模型等。

对于查询工具、前端工具、报表工具,也就是数据应用层,用户在使用的时候,元数据它包含了查询的定义、数据导出属性以及数据之间的映射关系。

元数据分为技术元数据和业务元数据

从我们介绍元数据保存的信息,我们可以看出,元数据分为技术性的元数据,还有业务性的元数据。

技术元数据,它是被开发或者是管理数据仓库的这些IT人员使用的,它描述了与数据仓库的开发管理,以及维护相关的数据。例如包含数据源的信息都来自于哪一个部分的数据(比如MySQL,或者哪一个业务的)、数据转换的描述(也就是不同的数据源是如何入仓的)、数据仓库的模型、数据的清洗与更新的规则、数据映射和访问权限等等。

对于业务元数据呢,它是对管理层和分析人员来服务的,但是从业务角度来描述数据,包括一些商务数据、数据仓库中有什么数据、数据的具体位置在什么地方和数据可用性等等。

这就是我们元数据的作用,所以说元数据贯穿了数据仓库构建的整个过程,直接影响了数据仓库的构建(也就是IT人员使用的那部分元数据)、使用(也就是管理层和分析人员)和维护(也是IT人员)。

所以数据仓库的元数据管理记录很重要,保证数据仓库中的数据质量,可以对元数据进行管理。

七、 数据治理

都知道数据是企业的核心资产,而数据治理能成就企业的未来,特别是那种进行数据服务的公司,还有银行等。数据治理涉及到数据质量、数据管理、数据政策以及商业过程管理等。治理呢主要治理的是脏数据。

脏数据的种类

1、数据缺失。

为了不影响分析的准确性,一般情况下我们是有两种方案来应对这种缺失数据的。

第一种就是对于这种缺失数据,我们不把它纳入到分析范围里面,那这种情况适合于我们数据量比较多的情况下,也就是当我们数据量比较多,那对于缺失的数据我们删除可能不会影响我们最终的分析结果。但是如果我们样本量比较少,又把缺失的删除掉,那它可能会影响我们的分析。

第二种方式,就是想办法想一些计算逻辑,或者是数据进行重新提取这样的方式来对数据进行填充。如填充中位数、众数或者均值。

2、数据重复。

那在这种时候,就要进行分析去掉重复记录了。

3、数据错误。

数据没有严格按照规范进行记录,这种情况下只能人工干预了,而干预的方式呢就有很多种了。那因为公司、业务、甚至数据,干预手段都是不一样的,可以做一张清洗规则表来进行错误匹配

4、数据不可用。

也就是数据正确但不可用,也就是这个数据没有价值了。例如我们要收集所有的全国学生的一些基本信息,结果只收集了学生的姓名,名字是没有错,但是不知道是哪个学校的,不知道年龄、专业、班级等等,甚至所在的城市。那这样的数据是毫无价值的,即数据不可用。从源头也就是你数据收集就出错了,就只能从源头来改了。

八、数据治理原则

虽然不同的脏数据种类,我们有不同的解决方案,但是真的有一些脏数据出现了,我们的代价是很大的。比如第四类数据不可用,真的是从头再来。所以说我们一定要对数据进行治理,治理的原则就是两方面。

一方面是约束输入,比如必须添加的、数据的类型是什么,也就是规则要统一;另一方面就是规范的输出——统一语义,也就是我们口径、计算方式都一样,然后要有一个公司级别的语义字典。这样我们在用数据的时候就不会出现错误了,在收集数据的时候也不会出现数据不可用了。

九、知识拓展(数据集市)

数据仓库规模⼤、周期,⼀些规模⽐较⼩的企业⽤户难以承担。

因此,作为快速解决企业当前存在的实际问题的⼀种有效⽅法,独⽴型数据集市成为⼀种既成事实。

数据集市(Data Mart) ,也叫数据市场,数据集市就是满⾜特定的部⻔或者⽤户的需求,按照多维的⽅式进⾏存储,包括定义维度、需要计算的指标、维度的层次等,⽣成⾯向决策分析需求的数据⽴⽅体

数据集市主要是针对⼀组特定的某个主题域、部⻔或者特殊⽤户需求的数据集合。这些数据需要针对⽤户的快速访问和报表展示进⾏优化,优化的⽅式包括对数据进⾏轻量级汇总,在数据结构的基础上创建索引。

数据集市的⽬标分析过程包括对数据集市的需求进⾏拆分,按照不同的业务规则进⾏组织,将与业务主题相关的实体组织成主题域,并且对各类指标进⾏维度分析,从⽽形成数据集市⽬标说明书。内容包括详细的业务主题、业务主题域和各项指标及其分析维度。

(免责声明:本公众号所发布的文章为本公众号原创,或者是在网络搜索到的优秀文章进行的编辑整理,文章版权归原作者所有,仅供读者朋友们学习、参考。对于分享的非原创文章,有些因为无法找到真正来源,如果标错来源或者对于文章中所使用的图片、链接等所包含但不限于软件、资料等,如有侵权,请直接联系后台,说明具体的文章,后台会尽快删除。给您带来的不便,深表歉意。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CVPR 2023 | EfficientViT:让ViT在多个部署场景实现实时推理

随着近两年来对视觉Transformer模型(ViT)的深入研究,ViT的表达能力不断提升,并已经在大部分视觉基础任务 (分类,检测,分割等) 上实现了大幅度的性能突破。 然而,很多实际应用场景对模型实时推理…

从零入门激光SLAM(十)——刚体位姿表达与优化

大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激…

django ORM框架 第三章 关联表的数据创建与查询

一、背景: 创建一组一对多的表。 # 班级表 class Class(models.Model):class_id models.IntegerField(primary_keyTrue, verbose_name班级id, help_text班级id)class_name models.CharField(max_length20,verbose_name班级名称, help_text班级名称)# 学生信息表 …

Centos虚拟机与window共享文件夹

1.安装完centos系统后,查看是否安装好VMware tools 如果未安装,请参考此文章安装: CentOS安装VMwareTools_centos安装vmware tools_Sunqk5665的博客-CSDN博客 2.添加共享文件夹 3.使用vmware-hgfsclient查看共享文件夹。本例中为share 4. 挂…

5.1 标准IO介绍及缓冲区

目录 标准I/O介绍 文件的概念和类型 标准I/O-流(可理解为数据) 流的缓冲类型 标准I/O——stdin,stdout,stderr 标准I/O介绍 在寄存器中的输入输出标准,在任何系统上可运行,是一系列的接口,所以被称为标准IO lin…

学会ECharts 数据缩放组件

本文首发自「慕课网」(imooc.com),想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"或慕课网公众号! 作者:范文杰_fe|慕课网讲师 在一个数据图表中,可能由于数据所表…

Mtlab基础(十):极限的求解

在做研究的过程中,需要涉及到极限的求解,面对简单的极限大家都能够轻松解决,但是当面临复杂的问题时,传统的差分进化算法就难以解决了。 对于求解极限,Matlab提供了非常好的工具**limit**,具体的使用方法: limit(f,v,a)-------------------------------------------…

RFID在空调装配中的作用

RFID在空调装配中的作用 随着物联网和射频识别技术 (RFID) 的发展,越来越多的应用开始使用 RFID 技术来提高生产效率和产品质量。在空调装配过程中,RFID 技术可以发挥重要作用。 RFID 技术可以帮助空调制造商提高装配效率。使用 RFID 技术,…

CircuitBreaker Resilience4J 介绍

最近接触到了CircuitBreaker Resilience4J ,网上查了查资料,这里整合记录一下,供大家学习和参考 目录 前言 1、熔断器出现背景 ​​​​​​​ 2、支持断路器实现有以下几种 3、Circuit Breaker原理 4、概念说明 限流 — RateLimiter …

CPU Architecture

CPU Architecture [/ˈɑːrkɪtektʃər/] 指令集架构 (Instruction Set Architecture)精简指令集处理器 RISC (Reduce Instruction Set Computer)复杂指令集处理器 CISC (Complex Instruction Set Computer) CPU按指令集架构分类ARM运行模式非特权模式…

什么是NTFS for Mac?2023新版本如何下载

在NTFS for Mac中包含了多种功能操作,促进软件更好地使用,可以进行全局设置,也可以针对某一各挂载的磁盘进行针对性设置。 本集小编主要向大家介绍它包含的一些基本功能,看看这款mac读写工具能够实现那些功能,全面了解…

安科瑞电能表对于预付费平台的费控策略应用

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要:基于智能电能表的预付费系统平台可以实现对预付费客户的适时算费、远程费控和服务。预付费系统的费控策略包括算费子策略、催费预警提醒子策略、欠费停电子策略,介绍3个子策略的制定原则、设计流程&…

Flink学习——状态编程

目录 一、Flink中的状态 二、状态编程 (一)ValueState案例——判断传感器的数据 1.代码实现 2.端口进行传输数据 3.运行结果 (二)ListState (三)MapState案例——比较学生每次考试成绩 1.代码实现 2.端口传输学生成绩 3.运行结果 (四)ReducingState 一、Flink中的状…

0Ω的电阻作用

0欧姆电阻即电阻标值为0欧姆的电阻,多用于PCB设计等方面,是一种理想电阻。那0欧姆电阻是表示没有电阻吗?当然不是,0欧姆电阻的阻值不是0欧姆,只是接近0欧姆。 1、调试方便或者兼容设计:可以选择器件、功能…

网络安全--XXE漏洞利用思路

一、XXE 是什么 介绍 XXE 之前,我先来说一下普通的 XML 注入,这个的利用面比较狭窄,如果有的话应该也是逻辑漏洞 如图所示: 既然能插入 XML 代码,那我们肯定不能善罢甘休,我们需要更多,于是出…

Python环境安装,操作MySQL数据脚本

安装Python 下载地址Python Releases for macOS | Python.org下载安装包点击安装执行python3命令查看安装及版本 安装插件 安装PyMySQL python3 -m pip install PyMySQL 编写脚本 创建文件selectMysql.py #!/usr/bin/python import pymysql.cursors def updateuser(user_…

chatgpt赋能Python-python3_4

Python3-4: 编程领域的瑰宝 简介 Python3-4 是一种开源解释型高级编程语言,具有简单易学、可读性强、语法简洁的特点。它由谷歌公司所开发,在全球范围内被广泛应用于Web开发、人工智能、科学计算、数据分析等领域。 优势 1. 语法简洁 Python3-4采用…

今天面试招了个20K的人,从腾讯出来的果然都有两把刷子···

现在找个会自动化测试的人真是难呀,10个里面有8个写了会自动化,但一问就是三不知 公司前段时间缺人,也面了不少测试,前面一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在15-20k,面试的…

实施基于零信任网络安全的设备控制

零信任安全是一种数据保护策略,除非系统管理员进行彻底验证,否则网络边界内外的所有设备和实体都不受信任。Device Control Plus 可帮助管理员为其网络实施和自动化零信任安全协议,以确保对来自未经批准的外围设备的所有端点数据提供最佳保护…

嵌入式软件测试笔记1 | 简单说明 嵌入式系统认识和测试目标

1 | 简单说明 & 嵌入式系统认识和测试目标 1 为什么看这个?2 一些说明3 主要内容是什么?4 嵌入式系统测试的目标4.1 测试的任务4.2 最终目标4.3 测试过程4.4 通用元素 5 嵌入式系统的一些基础 1 为什么看这个? 一直在间断性的学习和了解…