原文:http://tulingss.iteye.com/blog/2238396
? ? OLAP: 联机分析处理(OLAP)系统是数据仓库系统最主要的应用,专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持。
? ? OLTP: 联机事务处理(OLTP,On-line Transaction Processing)应用,它所存储的数据被称为操作数据或者业务数据。
? ? 所以从定位上来讲,OLAP的定位是用来做数据分析(类BI),OLTP适合做一些事务的类的数据管理如查询如订单数据的产生。
?
? ? 举个通俗的例子,一个小规模的电商网站,会有下单的流程,那么这个下单流程产生的订单会是在OLTP数据库中,而如果电商的CEO想看本个月的运营情况,如果订单统计,理论上是应该在OLAP数据库(或者仓库)。
? ?所以从本质上来讲,OLAP是读为主而OLTP以写为主。
? ??
? ?然后,我们在来做一个基本的分析,就是常见的分析方式:
? ?可以简单分析一下就是,在OLTP中,合理设计的情况下会存在1,3类查询,而在OLAP中会在1,2,3,4类查询。
? ?
? ? ? 大家知道,不管在牛逼的系统,都逃不开硬件的限制,如磁盘IO、内存、CPU(往往也是大家忽略的)、网络IO。一般SATA硬盘的读写速度是在50~75M之间,普通网络均为千兆交换机,即100M传输速度。
? ? ?
? ? ? 那我们在来分析一下,数据库的特性:(本文章不讨论数据库的具体实现)
?
? ?再结合我们之前讲到的分析,大家可以认为数据库在查询上的性能其实还是比较容易实现优化(结合数据库缓存),但是大家需要注意的是,如果查询的时候同时存在聚合(group by,sum,count),那么压力就会落在IO上,比如排序(因为单机内存有限,必须通过硬盘来实现排序) ?这个时候压力就会落到IO上(请回顾上文提到的性能),所以当我们需要返回的数据条数越大(尤其分页),那么数据库就会变的非常非常的慢。
? ?
? ? ?所以综合我的分析,大家可以得出几个结论:
?
? ? ?
???接下来,我通过工作中使用的一些技术给大家做一些分析,希望大家能对这个东西的解决方案有一些了解
? ?我们在几个方面做比较,架构、效率、成熟度、学习难度等。
?
?
? ?总结如下:
?
? ? 总结如下:
?
? ?总结:
?
? ? ?所以综合看,目前开源的大数据SQL方案,没有一个是完美的,都是或多或少的缺陷,我们需要由搜索引擎+nosql+redis等方案配合,来完成很多的场景。
?
? ? ?我们需要对性能有一个结论:要求5秒内的,基本不适合用这种大数据SQL方案手段来做。需要借助更昂贵的数据库,或者等待开源技术成熟。
?
? ??更多精彩请关注微信 : 图灵搜索
? ?请大家使用中国第一个为程序员打造的搜索引擎:图灵搜索,https://www.tulingss.com
原文:http://tulingss.iteye.com/blog/2238396