`
m635674608
  • 浏览: 5043826 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

大数据OLAP与OLTP分析

    博客分类:
  • java
 
阅读更多

1. 首先,咱们先不拿大数据说事,先分析一下OLAP及OLTP。

    OLAP: 联机分析处理(OLAP)系统是数据仓库系统最主要的应用,专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持。

    OLTP: 联机事务处理(OLTP,On-line Transaction Processing)应用,它所存储的数据被称为操作数据或者业务数据。

    所以从定位上来讲,OLAP的定位是用来做数据分析(类BI),OLTP适合做一些事务的类的数据管理如查询如订单数据的产生。

 

    举个通俗的例子,一个小规模的电商网站,会有下单的流程,那么这个下单流程产生的订单会是在OLTP数据库中,而如果电商的CEO想看本个月的运营情况,如果订单统计,理论上是应该在OLAP数据库(或者仓库)。

   所以从本质上来讲,OLAP是读为主而OLTP以写为主。

    

   然后,我们在来做一个基本的分析,就是常见的分析方式:

  1. Ad-hoc query:即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。
  2. 固定字段分析:即用户的查询条件是固定的,我们可以按照定义好的字段进行报表提供,如周报、月报
  3. 关键字查询:如,用户的地址为 北京市朝阳区XXXXX,那么提供按照北京市XXX为关键字的检索查询
  4. 统计类查询:如生成一些箱图,热力图等

   可以简单分析一下就是,在OLTP中,合理设计的情况下会存在1,3类查询,而在OLAP中会在1,2,3,4类查询。

   

2. 接下来,我们分析一下传统技术的问题:

      大家知道,不管在牛逼的系统,都逃不开硬件的限制,如磁盘IO、内存、CPU(往往也是大家忽略的)、网络IO。一般SATA硬盘的读写速度是在50~75M之间,普通网络均为千兆交换机,即100M传输速度。

     

      那我们在来分析一下,数据库的特性:(本文章不讨论数据库的具体实现)

 

  1. 数据库能进行较快查询的原因是因为索引(及缓存)的存在,不同数据库的索引实现结构会稍微不太一样。索引也需要维护。          

   再结合我们之前讲到的分析,大家可以认为数据库在查询上的性能其实还是比较容易实现优化(结合数据库缓存),但是大家需要注意的是,如果查询的时候同时存在聚合(group by,sum,count),那么压力就会落在IO上,比如排序(因为单机内存有限,必须通过硬盘来实现排序)  这个时候压力就会落到IO上(请回顾上文提到的性能),所以当我们需要返回的数据条数越大(尤其分页),那么数据库就会变的非常非常的慢。

   

  • 很多人会用数据库来进行数据清洗,也是因为IO的问题,导致变慢
  • 大家不能忽略:当数据不大时,也会出现分析很慢的问题,是因为CPU计算能力有限的问题。   

     所以综合我的分析,大家可以得出几个结论:

 

  • 数据库的问题在计算资源的有限
  • 本身也没有支持关键字查询的方式(搜索引擎)。
  • 主要是在查询+统计的场景下,数据库会有问题,其实本质来讲Ad-hoc query 如果没有统计的话,咱们通过分库+hash的方式是可以做到非常快的。

     

3.目前开源大数据方案,是否Ready?

   接下来,我通过工作中使用的一些技术给大家做一些分析,希望大家能对这个东西的解决方案有一些了解

   我们在几个方面做比较,架构、效率、成熟度、学习难度等。

 

Hadoop+Hive+Tez:

 

  • 架构 : Hive 目前是Hadoop上的数据仓库,底层的技术为Tez(DAG MapReduce),采用Yarn 作为资源管理平台,提供类SQL 接口,HQL,采用数据库作为元数据管理工具。
  • 成熟度:Hive目前已经被非常多的人来使用,所以整体比较成熟。
  • 效率:Hive目前结合Orcfile+压缩整体还是比较快的,但是也没有达到一些ad-hoc query要求的3秒内返回
  • 学习难度 :HQL,Hadoop 入门的难度都不高,所以学习曲线比较简单。

   总结如下:

 

  1. Hive 目前这个软件适合做OLAP数据仓库类分析、数据清洗等对实时性要求不高的场景
  2. Hive 不支持按照关键词查询,所以不能做搜索
  3. Hive 索引比较弱,达不到数据库的性能。
  4. Hive 不能满足3秒,5秒类似的快速返回的Ad-hoc query(即便将HDFS数据加入内存)
  5. 有Insert,update 等初级事务操作,所以可以认为未来可能可以做oltp。

 Spark+Hadoop:

  • 架构:Spark 技术中有一个比较好的技术就是-Spark SQL,这个技术可以实现使用SQL来操作Spark的RDD,当然Spark SQL最终也是要通过Spark的引擎,来使用所以最终会转换成Spark的MapReduce。
  • 成熟度 :目前仍是告诉发展。
  • 效率: 整体比Hive率高,但是如果数据量非常大,没有特别好的效果。数据加入内存后查询(无统计)非常快。
  • 学习曲线:需要学习Hadoop,Spark等,比较陡峭。

    总结如下:

 

  1. 数据量不是特别大,完全装入内存,可以提供秒内的非统计类查询。  
  2. 不能完全装入内存的统计分析,结果与hive+tez的组合不会差太多,也不会领先特别多。
  3. 适合一定的Ad-hoc query场景与Olap 场景,不能做oltp
  4. 没有索引,无法做精确的查找,都是暴利扫描。

 Impala+Hadoop:

  • 架构:Impala技术目前性能不错,抛弃了MapReduce设计,结合HDFS缓存可以做更好的性能提高
  • 成熟度:比较成熟
  • 效率:配合Parquet ,性能与Hive+Tez接近,因为不需要启动在一定程度分析比Hive快
  • 学习曲线:学习SQL与Impala 本身,所以难度一般。

   总结:

 

  • Impala性能不错,但是在大数据排序上,需要限制返回的行数,大表间Join也是个问题。
  • 适合一定的Ad-hoc query场景与Olap 场景,不能做oltp
  • 没有索引,无法做精确的查找,都是暴利扫描。

     所以综合看,目前开源的大数据SQL方案,没有一个是完美的,都是或多或少的缺陷,我们需要由搜索引擎+nosql+redis等方案配合,来完成很多的场景。

 

     我们需要对性能有一个结论:要求5秒内的,基本不适合用这种大数据SQL方案手段来做。需要借助更昂贵的数据库,或者等待开源技术成熟。

 

http://tulingss.iteye.com/blog/2238396

分享到:
评论

相关推荐

    Bats面向OLTP、OLAP、批处理、流处理场景的大一统SQL引擎

    其中,Bats作为一个面向OLTP(在线事务处理)、OLAP(在线分析处理)、批处理和流处理场景的大一统SQL引擎,为数据处理提供了高效且灵活的解决方案。本文将深入探讨Bats的关键特性、应用场景及其技术优势。 首先,...

    OLTP和OLAP技术融合的探索实践_梁福坤@饿了么 百度外卖.pdf

    OLTP(在线事务处理)与OLAP(在线分析处理)是数据库领域的两项核心技术,它们分别服务于不同的业务需求场景。OLTP是面向交易的处理过程,强调的是快速响应用户操作,其特点包括数据量少、面向应用、并行事务处理、...

    数据处理OLTP与OLAP的概念.pdf

    与OLTP系统不同,OLAP系统的主要目的是支持复杂的数据分析操作。OLAP多用于数据仓库系统,其工作场景涉及对大量历史数据的多维分析,比如销售报告、市场趋势预测等。OLAP系统并不强调实时性,而是关注于大量数据的...

    前阿里-杨卓荦-大数据平台与数据中台构建实战.pdf

    大数据平台与数据中台构建实战 注意的延时均衡,不要存储延时大,计算延时小 • 需要考虑到容错和容灾,每一步都是不可靠的 • 需要考虑到运维的方便,可能快速重启 • 需要考虑到目的数据库是OLAP还是OLTP • 需要...

    OLAP介绍(OLAP(联机分析处理)是针对特定问题的联机数据访问和分析)

    随着大数据、云计算和人工智能等技术的发展,OLAP系统正朝着更智能化、自动化和个性化的方向迈进,以更好地支持实时分析和预测性决策。 总的来说,OLAP是一种强大的分析工具,它使决策者能够从不同角度深入理解复杂...

    联机分析处理OLAP

    联机分析处理(OLAP)是数据分析领域中的关键技术,它主要应用于数据仓库系统,用于支持复杂的决策分析...随着大数据时代的到来,OLAP技术也在持续演进,不断适应新的数据类型和分析需求,以满足日益增长的商业智能需求。

    多维数据库和OLAP分析

    1. **高性能查询与分析:**OLAP系统旨在为用户提供高速度的查询响应时间,尤其是在处理复杂的数据分析任务时。这主要得益于其预先计算和存储了大量可能的查询结果,从而减少了实时计算的时间消耗。 2. **支持多维度...

    6.大数据与AI的发展应用.pdf

    在技术层面,大数据分析技术经历了从OLAP(联机分析处理)的分布式转变,到软硬件产品与AI技术的融合发展。OLAP技术自2000年代起转向分布式架构,快速迭代,以适应大数据处理需求。大数据流通技术方面,技术力量被...

    OLAP 框架之百度 PALO

    OLAP与OLTP的主要区别在于OLAP是用于复杂查询和数据分析,而OLTP用于处理简单的数据库事务。OLAP更适合于支持决策过程中的复杂聚合查询,而OLTP则适用于日常交易处理。 ### 知识点六:OLAP商业产品与开源社区 文档...

    大数据学习资源之Kylin.pdf

    总的来说,学习Kylin不仅需要掌握数据仓库、OLAP、维度和度量的基本概念,还需要理解其如何在大数据环境中优化分析性能,以及如何与Hadoop生态系统的其他组件协同工作。通过深入学习和实践,你将能够利用Kylin构建...

    商务智能课程 BI教程 大数据与数据挖掘教程 第6章 OLAP 联机分析处理(共96页).pptx

    不同于传统的在线事务处理系统(OLTP),OLAP更注重于分析而非事务处理,它服务于企业的决策者,帮助他们对业务数据做出更加明智和数据驱动的决策。 在商务智能课程中,数据挖掘部分是另一个核心内容。数据挖掘是在...

    OLAP联机分析处理

    OLAP与OLTP的主要区别在于,OLTP注重日常事务处理和数据的即时更新,而OLAP专注于对历史数据进行复杂查询和分析。OLAP的核心是“维”的概念,它将数据组织成多维模型(如Cube),允许用户从多个角度观察数据,并通过...

    OLTP和OLAP技术融合的探索实践_.zip

    在数据库领域,OLTP(在线事务处理)和OLAP(在线分析处理)是两种关键的技术类型,它们分别服务于不同的业务需求。OLTP主要用于处理日常的事务性操作,如银行交易、零售销售等实时数据录入和查询,而OLAP则专注于...

    电力大数据智能分析平台设计与实现.pdf

    EPIC技术的一个显著特点是能够实现数据的实时管理,支持数据的同步存储,尤其是在OLAP(在线分析处理)和OLTP(在线事务处理)方面。此外,平台中的E3处理器支持并行处理多任务,这是提升平台整体运行效率的关键技术...

    链家大数据多维分析引擎实践

    首先,我们来解释OLAP(Online Analytical Processing,在线分析处理)与OLTP(Online Transaction Processing,在线事务处理)的区别。OLTP主要负责日常交易处理,如明细查询和简单的小事务,操作的数据量较小,但...

    基于全链路的大数据基础管理关键技术分析.docx

    本文探讨了基于全链路的大数据基础管理关键技术,旨在通过这些技术提升数据集成平台的数据分析和挖掘能力,实现业务数据全过程的信息化和标准化管控,加强数据处理、分析与供给能力,促进数据流通和共享。...

    大数据技术与产业发展.pptx

    数据处理技术也经历了从传统的OLTP(在线事务处理)到OLAP(在线分析处理),再到RTAP(实时分析处理)的演变。现代大数据架构,如数据湖和数据仓库,提供了处理多样化数据和实时分析的能力。 总结来说,大数据技术...

    大数据技术与产业发展清华大学43.pptx

    大数据的处理经历了从在线事务处理(OLTP)到在线分析处理(OLAP)再到实时分析处理(RTAP)的演变,现在的重点已经转向了大数据架构和技术。例如,社交媒体和网络成为大数据的重要来源,我们每个人都在不断生成数据,而...

    OLTP与OLAP业务系统的Oracle优化思路[归类].pdf

    【OLTP与OLAP业务系统的Oracle优化思路】 Oracle数据库在OLTP(联机事务处理)和OLAP(联机分析处理)系统中的优化策略各有侧重,主要体现在对系统特性的理解和针对不同业务需求的调整。 1. **数据库业务类型分类*...

Global site tag (gtag.js) - Google Analytics