正文
1、olap和oltp的区别
OLTP |
OLAP | |
对象 | 业务开发人员 | 分析决策人员 |
功能 | 日常事务处理 | 面向分析决策 |
模型 | 关系模型 | 多维模型 |
数据量 | 几条或几十条记录 | >百万于万条记录 |
操作类型 | 增、删、查、改(CRUD) | 查询为主 |
总体概括 | 联机事务处理 | 在线分析处理 |
2、OLAP分类
MOLAP,基于多维数组的存储模型,也是OLAP最初的形态,特点是对数据进行预计算,以空间换效率,明细和聚合数据都保存在cube中。但生成cube需要大量时间和空间。
ROLAP,基于关系模型进行存储数据,不需要预计算,按需即时查询。明细和汇总数据都保存在关系型数据库事实表中。其特点是与事务实体对应,关系清晰;但一般需要较为复杂的数据准备。在响应前端需求时,一般较快,但取决于计算引擎能力。
HOLAP,混合模型,细节数据以ROLAP存放,聚合数据以MOLAP存放。这种方式相对灵活,且更加高效。可按企业业务场景和数据粒度进行取舍,没有最好,只有最适合。
3、OLAP基本操作
★钻取:维的层次变化,从粗粒度到细粒度,汇总数据下钻到明细数据。如通过季度销售数据钻取每个月的销售数据
★上卷:钻取的逆,向上钻取。从细粒度到粗粒度,细粒度数据到不同维层级的汇总。eg. 通过每个月的销售数据汇总季度、年销售数据
★切片:特定维数据(剩余维两个)。eg. 只选电子产品销售数据
★切块:维区间数据(剩余维三个)。eg. 第一季度到第二季度销售数据
★旋转:维位置互换(数据行列互换),通过旋转可以得到不同视角的数据。
4、OLAP选型
druid
实时查询和分析的高容错、高性能开源分布式系统,用于解决如何在大规模数据集下进行快速的、交互式的查询和分析。
实时的数据消费,真正做到数据摄入实时、查询结果实时。
扩展性强,支持 PB 级数据
极高的高可用保障,支持滚动升级。
druid属于时间存储,删除操作比较繁琐,且不支持查询条件删除数据,只能根据时间范围删除数据。Druid能接受的数据的格式相对简单,比如不能处理嵌套结构的数据。
kylin
可扩展超快olap引擎,Hadoop/Spark上百亿数据规模
提供 Hadoop ANSI SQL 接口
交互式查询能力,用户可以与Hadoop数据进行亚秒级交互
百亿以上数据集构建多维立方体(MOLAP CUBE)
与BI工具无缝整合,如Tableau,PowerBI/Excel,MSTR,QlikSense,Hue和SuperSet
impala、presto...