数据仓库系列(一)数据仓库的特点与架构分类--数仓与数据库究竟有什么区别??
数据仓库理论介绍:
一:数据仓库的四大特点:
二:数据仓库和数据库的区别
三:OLTP和OLAP的区别:
四:有哪些数据仓库架构?
数据仓库的解决方案:
数据仓库理论介绍:
❝数据仓库是一个面向主题的,集成的,非易失的且随时间变化的数据集合
❞
一:数据仓库的四大特点:
1):面向主题:
-
「主题(Subject)」 是在较高层次上企业信息系统中的数据进行综合,归类和分析利用的一个抽象概念。 -
每一个主题基本对应一个 「宏观的分析领域」 -
它是对应企业中某一宏观分析领域所涉及的分析对象
提取主题:
-
一个面向事务处理的商场数据库系统,其数据模式: -
员工 -
部门 -
领料单 -
进料单 -
库存 -
库房 -
顾客` -
销售 -
订单 -
订单细则 -
供应商 -
采购子系统:
-
销售子系统:
-
库存管理子系统:
-
人事管理子系统:
2):集成
-
集成性是指数据仓库中数据必须是一致的 -
数据仓库的数据是从原有的分散的多个数据库,数据文件和数据段中抽取来的 -
数据来源可能既有 「内部数据又有外部数据」 -
集成方法 -
统一:消除不一致的现象 -
综合:对原有数据进行综合和计算
3):非易失
-
数据仓库中的数据是经过抽取而形成的分析型数据 -
不具有原始性 -
主要供企业决策分析之用 -
执行的主要是查询操作,一般情况下不执行更新操作 -
一个稳定的数据环境也有利于数据分析操作和决策的制订
4):随时间变化
-
数据仓库以 「维的形式」对数据进行组织, 「时间维」是数据仓库很重要的一个维度 -
不断增加新的数据内容 -
不断删去旧的数据内容 -
更新与时间有关的综合数据
二:数据仓库和数据库的区别
「数据库」 | 「数据仓库」 | |
---|---|---|
本质 | 数据的集合 | 数据的集合 |
定位 | 事务处理OLTP | 数据分析OLAP |
面向群体 | 前端用户 | 管理人员 |
操作 | 增删改查 | 查询 |
数据粒度 | 事件记录 | 维度 |
表结构 | 3NF | 星型、雪花 |
三:OLTP和OLAP的区别:
-
「联机事务处理OLTP」 -
On-line Transaction Processing -
OLTP是传统的关系型数据库的主要应用
「对比属性」 | 「OLTP」 | 「OLAP」 |
---|---|---|
「读特性」 | 每次查询只返回少量记录 | 对大量记录进行汇总 |
「写特性」 | 随机、低延时写入用户的输入 | 批量导入 |
「使用场景」 | 用户,Java EE项目 | 内部分析师,为决策提供支持 |
「数据表征」 | 最新数据状态 | 随时间变化的历史状态 |
「数据规模」 | GB | TB到PB |
四:有哪些数据仓库架构?
lnmon架构--范式建模:
ER建模:
❝lnmon提出--
从全企业的高度设计的一个3NF模型
❞
Inmon模型将模型划分为「三个层次」:
-
ERD--Entity Relationship Diagram 「实体关系图层」 -
DIS--Data Item Set 「数据项集层」 -
PM--Physical Model 「物理模型」
Data Vault建模:
❝Dan Linstedt提出--
ER模型的衍生,为了实现数据的整合
强调可审计的基础数据层
基于主题将企业数据结构化组织
❞
Data Vault组成:
-
「Hub:企业的核心业务实体」 -
「Link:代表Hub之间的关系」 -
「Satellite:是Hub的详细描述内容」
Anchor建模:
❝Lars.Ronnback提出--
一个高度可扩展的模型,核心是所有的扩展知识添加而不是修改。
模型规范升级成6NF,变成K-V结构化模型
❞
Anchor模型组成:
-
「Anchors:代表业务实体,且只有主键」 -
「Attributes:类似Satellite,更规范,全部K-V化」 -
「Ties:Anchors之间的关系,类似Link」 -
「Knots:代表可能在多个Anchors中公用的属性的提炼」
Kimball架构--维度建模:
❝Kimball提出--
是一种自上而下的建模方式,从分析决策的需求出发构建模型,关注如何更快速的完成需求分析,
❞
维度建模数据仓库模型构建过程:
选择业务流程
-
确认哪些业务处理流程是数据仓库应该覆盖的 -
记录方式 -
纯文本 -
使用业务流程建模标注(BPMN)方法 -
使用同一建模语言(UML)
声明粒度
-
确定事实中表示的是什么 -
选择维度和事实前必须声明粒度 -
建议从原始粒度数据开始涉及 -
不同的事实可以有不同的粒度
确认维度
-
说明事实表的数据从哪里采集来的 -
典型的维度都是名词 -
维度表存储了某一维度的所有相关数据
确认事实
-
识别数字化的度量,构成事实表的记录 -
和系统的业务用户密切相关 -
大部分事实表的度量都是数字类型
混合型架构:
❝现在我在的公司主流使用Kimball的维度建模方式,两种架构各有优缺点,根据不同需求使用不同的架构完成。
❞
数据仓库的解决方案:
数据采集
-
flume,sqoop,logstash,datax
数据存储
-
mysql,hdfs,hbase,redis,mongoDB
数据计算
-
hive,tez,spark,flink,storm,impala
数据可视化
-
tableau,echarts,superset,quickbi,datav
任务调度
-
oozie,azkaban,crontab