文章目录
架构演化内驱
系统架构是一个产品的基石,它的扎实是产品成长性的保障。但是架构永远与产品是共同成长的。新产品刚推出时,快速、可用即行,不可能构造一个复杂、庞大的基础架构。随着产品的热火,压力越来越大,容量、伸缩性问题就来了。在保证业务的前提下,对架构进行优化、改造就成为必要。
业务数据库
一个企业IT信息化初级绝对,业务库中的数据量并不大,这时候OLTP结构下可以通过SQL语句快速响应读写需求,可能Excel也能满足。
但是随着时间的推移,各种问题开始出现
- 高频的write和长时间的read冲突越来越严重,而数据分析要耗费大量计算资源,不能动不动挂业务系统 ?
- 数据量越来越大,历史业务数据,新业务数据激增啦。首当其冲解决业务应用效率问题,谁管数据分析问题 ?
中间库
由于上述问题,就要引入中间库来处理。左图结构解决了高频write和read冲突问题,以及单数据库服务器性能问题,顺手也搞定了数据备份。这种情况下呢简单查询还是可以的,但随着业务越来越多,表结构越来越复杂,业务系统数量越来越多,导致数据孤岛开始形成(不同数据格式、存储方式、不同软件、厂商保护)
但是这种背景下,要把原来的以单一数据库为中心的数据环境发展为体系化环境。体系化环境由操作型环境(OLTP)和分析型环境(OLAP)包括全局级数据仓库、部门级数据仓库、个人级数据仓库构成。特点:面向主题的,集成的,相对稳定的,反映历史变化的。
数据仓库
有句话说的好:没有分析的数据是成本中心,而不是企业资产,数据仓库是将企业的各业务系统产生的基础数据,根据业务需求,通过维度建模的方式,将业务数据划分为多个主题,统一存储,统一管理
- 面向主题:仓库信息时按住一定主题域组织
- 集成:集成了多个主题域的单一信息源
- 稳定(非实时):几乎没有修改和删除操作,通常只需要定期加载、刷新
- 反映历史变化:OLTP系统主要关心当前某一个时间段内的数据,而数仓通常包含历史信息
数仓与集市区别
ETL:(Extract、Transform、Load)将数据从OLTP系统中转移到数据仓库中的一系列操作的集合(抽取、转换、加载的)
数据集市
数据集市是一个结构概念,它是企业级数据仓库的一个子集,主要面向部门级业务,并且只面向某个特定的主题,数据集市是数仓之上更聚焦的业务主题合集(DW公司级,DM部门级)