【数仓基础(一)】基础概念:数据仓库【用于决策的数据集合】的概念、建立数据仓库的原因与好处

文章目录

  • [一. 数据仓库的概念](#一. 数据仓库的概念)
    • [1. 面向主题](#1. 面向主题)
    • [2. 集成](#2. 集成)
    • [3. 随时间变化](#3. 随时间变化)
    • [4. 非易失](#4. 非易失)
  • [二. 建立数据仓库的原因](#二. 建立数据仓库的原因)
  • [三. 使用数据仓库的好处](#三. 使用数据仓库的好处)

一. 数据仓库的概念

数据仓库的主要作用:

数据仓库概念主要是解决多重数据复制带来的高成本问题。

在没有数据仓库的时代,需要大量的冗余数据来支撑多个决策支持环境。尽管每个环境服务于不同的用户,但这些环境经常需要大量相同的数据。

数据仓库的概念:

数据仓库描述为一个面向主题的、集成的、随时间变化的、非易失的数据集合,用于支持管理者的决策过程。

1. 面向主题

传统数据库围绕产品功能进行组织建设,而数据仓库是面向主题的。主题是一个抽象概念,每一个主题基本对应一个宏观的分析领域。

例如,一个公司要分析销售数据,就可以建立一个专注于销售的数据仓库,使用这个数据仓库,就可以回答类似于"去年谁是我们这款产品的最佳用户"这样的问题。

主题域的概念:主题域是主题的边界,如客户、销售、产品都是主题域的例子。

2. 集成

集成的概念与面向主题是密切相关的。

还是销售的例子,公司有各个销售的产品线,每个产品线都有自己的数据库,此时要整体分析销售数据,那需要将这些分散的数据进行统一,比如数据仓库必须要解决的问题是产品命名冲突、计量单位不一致等。

当完成了全公司各销售产线的数据整合工作后,该数据仓库就可称为是集成的。

3. 随时间变化

联机事务强调的是处理数据的时效性:

联机事务处理反应的是当前时间点的数据情况,要求高性能、高并发和极短的响应时间,出于这样的需求考虑,联机事务处理系统中一般都将数据依照活跃程度分级,把历史数据迁移到归档数据库中。

olap强调的是数据随时间是怎么变化的:

数据仓库关注的是数据随时间变化的情况,并且能反映在过去某个时间点的数据是怎样的。换句话说,数据仓库中的数据是反映了某一历史时间点的数据快照,这也就是术语"随时间变化"的含义。

当然数据在数据仓库中也有自己的生命周期。到了一定时候,数据会从数据仓库中移除。移除的方式可能是将细节数据汇总后删除、将老的数据转储到大容量介质后删除和直接物理删除等。

4. 非易失

数据入仓后就不能改变,这样保证了随时间变化(保留了数据变化的历史轨迹)

非易失指的是,一旦进入到数据仓库中,数据就不应该再有改变。

操作型环境中的数据一般都会频繁更新,而在数据仓库环境中一般并不进行数据更新。

当改变的操作型数据进入数据仓库时会产生新的记录,这样就保留了数据变化的历史轨迹。

粒度

粒度是指数据的细节或汇总程度,细节程度越高,粒度级别越低。

例如,单个事务是低粒度级别,而全部一个月事务的汇总就是高粒度级别。

数据的粒度影响了数据仓库的数据量,和可以进行查询的类型

在早期的操作型系统中,当细节数据被更新时,几乎总是将其存放在最低粒度级别上;而在数据仓库环境中,通常都不这样做。例如,如果数据被装载进数据仓库的频率是每天一次,那么一天之内的数据更新将被忽略。

或者这样说:

会在一天的某一刻加载完这天的数据,之后这天数据再发生改变,也不会进行更新(ing)。

二. 建立数据仓库的原因

数据仓库里的数据从哪里来,怎么使用在仓库里的数据 ?

数据源:

通常数据仓库的数据来自各个业务应用系统。业务系统中的数据形式多种多样,可能是Oracle、MySQL、SQL Server等关系数据库里的结构化数据,可能是文本、CSV等平面文件或Word、Excel文档中的非结构化数据,还可能是HTML、XML等自描述的半结构化数据。

入库:

这些业务数据经过一系列的数据抽取、转换、清洗,最终以一种统一的格式装载进数据仓库。

分析:

数据仓库里的数据作为分析用的数据源,提供给后面的即席查询、分析系统、数据集市、报表系统、数据挖掘系统等。

直接访问业务系统无法工作的原因:

● 某些业务数据由于安全或其他因素不能直接访问。

● 业务系统的版本变更很频繁,每次变更都需要重写分析系统并重新测试。

● 很难建立和维护汇总数据来源于多个业务系统版本的报表。

● 业务系统的列名通常是硬编码,有时仅仅是无意义的字符串,这让编写分析系统更加困难。

● 业务系统的数据格式,如日期、数字的格式不统一。

● 业务系统的表结构为事务处理性能而优化,有时并不适合查询与分析。

● 没有适当的方式将有价值的数据合并进特定应用的数据库。

● 没有适当的位置存储元数据。

● 用户需要看到的显示数据字段,有时在数据库中并不存在。

● 通常事务处理的优先级比分析系统高,所以如果分析系统和事务处理运行在同一硬件之上,分析系统往往性能很差。

● 有误用业务数据的风险。

● 极有可能影响业务系统的性能。

尽管需要增加软硬件的投入,但建立独立数据仓库与直接访问业务数据相比,无论是成本还是带来的好处,这样做都是值得的。

是否值得投入创建数据仓库

我们从时间、成本、功能等几个角度分析

当你的组织很小,人数很少,业务单一,数据量也不大,可能你真的不需要建立数据仓库。毕竟要想成功建立一个数据仓库并使其发挥应有的作用还是很有难度的,需要大量的人、财、物力,并且即便花费很大的代价完成了数据仓库的建设,在较短一段时间内也不易显现出价值。
当你所在的组织有超过1000名雇员,有几十个部门的时候,它所面临的挑战将是完全不同的。要做出最恰当的决策,仅依据对孤立维度的分析是不可能实现的。这时必须要考虑所有相关数据的可用性,而这个数据最好的来源就是一个设计良好的数据仓库。

例子:

假设一个超市连锁企业,在没有实现数据仓库的情况下,最终该企业会发现,要分析商品销售情况是非常困难的,比如哪些商品被售出,哪些没有被售出,什么时间销量上升,哪个年龄组的客户倾向于购买哪些特定商品等这些问题都无从回答。

在辅助战略决策层面,数据仓库的重要性更加凸显

下面是一些常见问题的例子:

● 如何把公司的市场份额提升5%?

● 哪些产品的市场表现不令人满意?

● 哪些代理商需要销售政策的帮助?

● 提供给客户的服务质量如何?哪些需要改进?

回答这些战略性问题的关键一环就是数据仓库。

比如第一个问题:在过去半年中,收到过多少用户反馈?可以在数据仓库上发出对应的查询,并对查询结果进行分析。

第二个问题:在这些用户反馈当中,给出"非常满意""一般""不满意"的人数分别有多少?

第三个问题:客户所强调的需要改进的地方和广受批评的地方是哪些?这在数据仓库的用户反馈信息中也有一列来表示,它也能从一个侧面反映出客户关心的问题是哪些。

以上这三个问题的答案联合在一起,就可以得出客户服务满意度的结论,并且准确定位哪些地方急需改进。

三. 使用数据仓库的好处

● 将多个数据源集成到单一数据存储,因此可以使用单一数据查询引擎展示数据。

● 缓解在事务处理数据库上因执行大查询而产生的资源竞争问题

● 通过对多个源系统的数据整合,使得在整个企业的角度存在统一的中心视图。

● 通过提供一致的编码和描述,减少或修正坏数据问题,提高数据质量

一致性地表示组织信息。

● 提供所有数据的单一通用数据模型,而不用关心数据源。

● 重构数据,使数据对业务用户更有意义。

● 向复杂分析查询交付优秀的查询性能,同时不影响操作型系统。

开发决策型查询更简单。

参考:

《Hadoop构建数据仓库实战》

相关推荐
武子康20 小时前
大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
java·大数据·数据仓库·hive·hadoop·后端
ProtonBase1 天前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
csding112 天前
写入hive metastore报问题Permission denied: user=hadoop,inode=“/user/hive”
数据仓库·hive·hadoop
不会写代码的女程序猿2 天前
关于ETL的两种架构(ETL架构和ELT架构)
数据仓库·架构·etl
ssxueyi3 天前
数据仓库有哪些?
大数据·数据仓库·数据湖
武子康3 天前
大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入
大数据·数据仓库·hive·hadoop
向阳逐梦3 天前
开源云原生数据仓库ByConity ELT 的测试体验
数据仓库·云原生·开源
ssxueyi3 天前
数据仓库是什么?数据仓库简介
数据仓库
小刘鸭!4 天前
Hive解决数据倾斜
数据仓库·hive·hadoop
武子康4 天前
大数据-255 离线数仓 - Atlas 数据仓库元数据管理 数据血缘关系 元数据
大数据·数据仓库·hive·hadoop·spring