delta-lake的初衷
数据架构大势所趋
数据架构衍生(一)—— OLTP
On-Line Transaction Processing联机事务处理过程(OLTP),也叫面向交易的处理过程,其基本特征是前台接收的用户数据(应用产生的各种业务数据)实时写入数据库中,并能够实时的进行数据结果查询返回。是大部分业务系统考虑的基本数据存储方式,比较典型的是关系型数据(Mysql、Oracle、Sqlserver等)。 这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理结果的一个重要指标是系统性能,具体体现为实时请求-响应时间(Response Time),即用户在终端上输入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP是由前台、应用、数据库共同完成的,处理快慢以及处理程度取决于数据库引擎、服务器、应用引擎。
OLTP 特征
- 支持大量的并发用户增加修改和删除数据(ACID事务)
- bin log 反应事务transaction日志(数据变化)
- 架构复杂(强数据机构化(struct))
- 可以通过transaction 对数据进行数据提交、回滚操作
OLTP 做数据分析
特点
- 使用试图
- 通过各种trigger 和存储过程完成数据清洗
- 开发方便,不需要特殊的其他知识,普通开发人员可以完成
- E-R Model
缺点
- 当数据量达到PB级别,数据性能差
- 数据脚步负责度高,无法系统维护
- 数据复用性差
- 数据格式单一,只支持规则化数据和关系型数据库数据
数据架构衍生(二)—— OLAP
基本概念
OLAP又叫联机数据分析,典型的案例是数据仓库。这个数据结构可以让数据分析人员能够快速、一致、交互地从数据的各个方面(各种维度)进行数据分析——既FASMI数据分析其中F是快速性(Fast),指系统能在数秒内对用户的多数分析要求做出反应;A是可分析性(Analysis),指用户无需编程就可以定义新的专门计算,将其作为分析的一部分,并以用户所希望的方式给出报告;M是多维性(Multi—dimensional),指提供对数据分析的多维视图和分析;I是信息性(Information),指能及时获得信息,并且管理大容量信息。 OLTP比较典型的数据分析视图如下:
- 维(Dimension):是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维(时间维、地理维等).
- 维的层次(Level):人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面(时间维:日期、月份、季度、年).
- 维的成员(Member):维的一个取值,是数据项在某维中位置的描述。(“某年某月某日”是在时间维上位置的描述)。
- 度量(Measure):多维数组的取值。(2000年1月,上海,笔记本电脑,0000)。
OLAP的基本多维分析操作有钻取(Drill-up和Drill-down)、切片(Slice)和切块(Dice)、以及旋转(Pivot)等。
- 钻取:是改变维的层次,变换分析的粒度。它包括向下钻取(Drill-down)和向上钻取(Drill-up)/上卷(Roll-up)。Drill-up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而Drill-down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
- 切片和切块:是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。
- 旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
数据仓库与OLAP的关系是互补的,现代OLAP系统一般以数据仓库作为基础,即从数据仓库中抽取详细数据的一个子集并经过必要的聚集存储到OLAP存储器中供前端分析工具读取。
OLAP 分类
OLAP系统按照其存储器的数据存储格式可以分为关系OLAP(RelationalOLAP,简称ROLAP)、多维OLAP(MultidimensionalOLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型:
- ROLAP: ROLAP将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。不必要将每一个SQL查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。对每个针对OLAP服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。同时用作ROLAP存储器的RDBMS也针对OLAP作相应的优化,比如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(cube,rollup)等等。
- MOLAP: MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。由于MOLAP采用了新的存储结构,从物理层实现起,因此又称为物理OLAP(PhysicalOLAP);而ROLAP主要通过一些软件工具或中间软件实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP(VirtualOLAP)。
- HOLAP: 由于MOLAP和ROLAP有着各自的优点和缺点(如下表所示),且它们的结构迥然不同,这给分析人员设计OLAP结构提出了难题。为此一个新的OLAP结构——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。迄今为止,对HOLAP还没有一个正式的定义。但很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。
使用场景
该中架构主要在数据仓库场景中使用,定义各种数据事实表,接入各个维度数据表,构建星形模型、雪花模型等。在使用过程中,需要定义各种数据清洗脚本,通过对应的调度系统进行定时调度管理,批量导入数据,在引入hadoop的情况下,需要对表创建分区,以进行数据查询。 有点:
- 数据规范,有完善的数据字典管理、源数据管理
- 数据入口和出口统一
- 数据模型持续更新 缺点:
- 数据完整性、一致性等数据质量管理复杂、容易出现各种代码、环境等导致的问题
- 数据实时性差,因为数据是定时跑批完成数据导入,而数据仓库通常都是分多层表的,最终展示数据结果实时性差
OLAP和OLTP对比
数据架构衍生(三)—— HTAP