关于OLTP和OLAP的疑问

0
网上的OLTP和OLAP资料很多,我也了解他们的内容和用途,但是对于实际的应用,还是无法结合,有几点疑问,恳请大家解惑
1、我们平常设计数据库时,基本都是OLTP类型,而如果需要大数据量的查询,才考虑加入OLAP,是吗?
2、如果目前有OLTP,现在需要加入OLAP,那么OLAP是和OLAP使用相同的数据库,但是重新建立适合OLAP的数据库架构?
3、同2,如果重新建立OLAP的数据库,那么OLAP所需的动辄几十T,上百T的数据如何从OLTP的数据库中获取?
4、如果对OLTP和OLAP有什么看法或者建议,请指点一二。
已邀请:
3

andrea_zhou - 咨询顾问、BA 2015-09-09 回答

我来八一八吧。
OLAP,这个东西啊,他的出现有好些年头了,E.F.Codd都对OLAP好像有过12条定义,你有兴趣的话可以去看看。
OLAP是分ROLAP和MOLAP的,区别是ROLAP存汇总的定义不存数,而MOLAP存定义也存数了。
毫无疑问,ROLAP省空间,但是在机器性能不够好的时候会慢,而MOLAP费空间,但是速度会快一些(事实上,数据量太大的时候,两者都慢)。MOLAP走的是牺牲空间换取时间的路子。
因此呢,在OLAP发展的历程中,是十年河东十年河西再十年河东,最开始是ROLAP然后是火了MOLAP,然后现在机器性能上来之后又是ROLAP了。机器性能上来了,表现在HANA可以搞几个T的内存配置机器。而大数据平台下也有相应的OLAP方案了。
好了。你的问题
1、OLAP是为了大量数据的查询而生,这也不算错,不过我宁愿认为数据仓库系统或者决策支持系统(BI前身的术语)的出现,是做业务和做统计功能的分离的需要。好像也是E.F.Codd大神那么多年前提出来的,真的很多年。
OLAP的牛,在于它的多维,在于灵活的切片旋转上钻下钻。在于可以基于它让用户自己动起来。探索问题,定位原因。这个我以前有帖子说过,有空的话可以看看。http://www.flybi.net/question/47
2、OLAP必然是基于数据仓库比较好。如果你做CUBE,MOLAP,则会基于数据仓库或者数据集市去加载CUBE。如果你用ROLAP,你最好基于数据仓库去建立语义层,譬如COGNOS的FM,BIEE和BO也有类似的层。
3、几十几百T的MOLAP,我估计一般服务器承载不了。或者ROLAP可以,毕竟你查询如果涉及到的数据量不大的时候应该还可以。
数据抽取没什么特别,制定好增量策略,没有谁会总是跑全量,因此你需要描述一下你的增量。
而且,并非业务系统里所有字段,所有表都是有必要进数仓的。
4、其他,也没太多了,其实OLAP理解了之后,真的很好学,也很好用,是BI里一个不过时的概念。多维的概念,理解了就好,非常的强大。曾经在一次,碰到客户一个高级总监,他一直说Root cause分析这些的,说到底,还是基于OLAP的多维分析再上钻下钻切片等。 现实世界很复杂,但是很多东西以多维的角度来理解,就发现会变简单很多。
 
1

- 取是能力,舍是境界 2015-09-06 回答

我瞎说几句,仅供参考。
问题1、我们平常设计数据库基本都是OLTP类型,是因为我们日常的系统都是基于事务的业务或应用系统。我们需要事务来保证数据的一致性、正确性。然而我们的业务系统产生的数据也是需要以各种形式来呈现的,如查询、统计、报表等等。当数据量日积月累足够多的时候,基于OLTP类型的数据查询分析,因为各种事务锁、各种业务关联,会导致查询分析相当的慢和复杂。这时候忽略事务的OLAP应用而生。
问题2、个人觉得OLTP的读写分离,算是OLAP的一个过渡和方向吧。使用OLAP还是要重新架构数据库结构的,最佳方案还是使用数据仓库和多维数据集。
问题3、OLTP到OLAP的转化用到了ETL(抽取、转换、加载)。
问题4、慢慢学习吧,BI是个大课题。
1

BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-09-10 回答

其实Andrea_Zhou已经说得全面而细致了,我这里狗尾续貂几句。
和传统数据库的功能需求相比,OLAP有一些特殊的功能性需求,丰富的维度结构是其灵魂,而其还有清晰的维度层次定义(层,代,祖先,后裔之类)。此外,它对维和维计算有有效的规范和丰富的函数,比如去年同期这类计算有很方便的函数,求兄弟结点,父结点之类的也有相应的办法,这里还有MDX语言的支持。此外还有预计算等功能(ROLAP和MOLAP里面实现各有不同)。
 
OLAP的一个特点是各个产品的差异性非常大,ESSBASE和TM1,MS Analytics这些完全就是不同的东西,这个也没有办法,历史原因造成的,功能也不尽相同。其中OLAP产品里还有非常重要的功能就是分摊计算,但这应该不属于OLAP的标准功能。
 
以上。
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-09-06 回答

1. 这个是看你们的需求的,现在很多公司也不做OLAP的
2. 可以使用不同结构,还是看需求结合公司情况
3. SSIS或者其他ETL工具
4. 还是结合公司自身情况来选择做不做OLAP

这是介绍区别的:
http://blog.chinaunix.net/uid- ... .html

要回复问题请先登录注册