个人理解OLAP比OLTP应用场景更高级,性能承载更强,唯一时效性上稍逊一筹:
OLTP是具有实时性的;
OLAP分为即席查询和固化查询,顾名思义,固化查询是固定下里的定期需要的查询需求,这种就是我们的做出来的表,即席查询相对于固化查询,他是偶发性的需求,业务方今天说想看xxx的数,那就直接给他取数,这种就是即席查询。 随着主流引擎的选择,我们现在已经习惯将即席查询定义成查询速度很快的查询,但是理论上只要不是固化查询的需求,都是即席,目前常用的疫情是kylin presto 理论上对查询速度是没有限制的,只是hive 合不合适的问题。
OLTP:是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,典型的是银行 ATM 存取款,金融证券方面的实时更新等,这些操作都比较简单,主要是对数据库中的数据进行 DML 操作,操作主体一般是产品的用户,并且 OLTP 事务性非常高,一般都是高可用的在线系统,如上述的银行金融方面。
OLAP :有的时候也叫 DSS 决策支持系统,也就类似于我们说的数据仓库,它使分析人员能够迅速、一致、交互地从数据的各个方面来观察信息,以达到深入理解数据的目的。通过分析 DW 中的数据来得出一些结论性的东西(比如报表),从各方面观察信息,也就是从不同的维度分析数据(站在维度的角度看待事实),因此 OLAP 也称多维分析。
OLAP 主要操作是复杂查询,(sum, count ,avg ```)
OLAP对于复杂查询做了直观的定义包括钻取,切片,切块,旋转
1 钻取
对维度不同层次的分析,通过改变维度层次变换分析的粒度
钻取包括上卷(roll-up) 和 下钻(drill-down)
2 切片(Slice 切块(dice
选择某一个维度进行分割成为切片
按照多维进行的切片成为切块
3 旋转
维度方向的互换 ,类似于交换坐标轴上卷(Roll-up