OLAP & OLTP
OLAP(On-line Analytical Processing,联机分析处理)是一种用于分析和查询 大规模数据集 的计算机处理技术。OLAP 技术主要用于 多维数据分析 和 数据挖掘 ,通过提供多维数据模型和多维查询功能,帮助用户从不同角度和层次上对数据进行分析和查询,侧重 分析决策 。
OLTP (Online Transaction Process,OLTP, 联机事务处理 )
第一,在底层数据处理层面,OLTP 以 SQL 增删改处理为主,OLAP 以 SQL 查询操作为主。数据来源层面,OLTP 的数据来源就是它们前端的应用,就是 B/S 架构或者 C/S 架构的 B Browser 浏览器或者 C Client,就理解为用户在各种系统上录入数据就可以了。
业务系统 - 派可数据商业智能BI可视化分析平台
第二,OLAP 的数据来源就是不同的 OLTP 数据库,所以 OLAP 本身是不产生数据的,通过 ETL 从 OLTP 抽取数据到 OLAP 数据库即数据仓库中做整合清洗达到可分析的数据标准。
第三,OLTP 数据处理的时间相对较短,增、删、改操作,就像在页面上点击一个提交案例、下一步操作等等;但是 OLAP 数据处理的时间可能就会很长,比如一个大查询可能查询的数据量非常长,相对增删改时间周期会拉的更长一些,取决于 OLAP 数据结构的规范性以及返回数据量的大小。
第四,OLTP 也有查询操作,但查询的操作都相对比较简单;OLAP 的查询相对可以很复杂;
第五,OLTP 系统在底层数据库的设计上通常采用3NF 设计方式,避免数据冗余,很适合频繁的增删改操作;OLAP 系统主要是面向分析型应用准备的,因此在底层数据库即数据仓库的设计上通常会采用反三范式的方式,比如 Kimball 的维度建模方式,刻意的保留数据冗余,很适合分析查询操作。
- 雪花型建模
当然,在 OLAP 系统底层数据仓库的架构中也有采用 3NF建模的,主要目的是为了统一业务数据标准,但真正面向分析服务的时候还是会在3NF 的基础上再构建一套反三范式的 Kimball 星型模型或者雪花型模型的数据架构。
第六,OLTP 由于采用3NF 建模,所以对数据的完整性要求很高,必须采用完整性约束。但是 OLAP 本身就不是面向业务交易信息的,不对业务过程负责,并且数据也不会频繁修改,所以是没有完整性约束这一说的。比如 OLTP 里面一个事务没有提交成功,或者失败了,事务是要回滚的。OLAP 里面没有这种处理,跑不成功再重新跑一遍就可以了。
ETL
ETL 是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。