关于olap需求的一些思考

ER建模关系建模

三种基于ER建模/关系建模/维度建模的数据仓库总体建模体系:规范化数据仓库,维度建模数据仓库,以及独立数据集市


本文将详细介绍数据仓库维度建模技术,并重点讨论三种基于ER建模/关系建模/维度建模的数据仓库总体建模体系:规范化数据仓库,维度建模数据仓库,以及独立数据集市。


数据分析概述:

  • ImpalaPrestoSpark SQLDrill
  • DruidPinot
  • Kylin
  • Trafodion
  • Vertica
  • hive



数据量、性能、和灵活性

v2-12268959c89202c2c810c2df53a01271_hd.jpg


Presto的性能比Hive要好上10倍多

ImpalaPrestoSpark SQLDrillDruidKylin


其中prestospark sql都是解决分布式查询问题,提供SQL查询能力,但数据加载不一定能保证实时


Druid是保证数据实时写入,但查询上不支持SQL,或者说目前只支持部分SQL,我个人觉得适合用于工业大数据,比如一堆传感器实时写数据的场景



KylinMOLAP,就是将数据先进行预聚合,然后把多维查询变成了key-value查询




从成熟度来讲:kylin>spark sql>Druid>presto

从超大数据的查询效率来看:Druid>kylin>presto>spark sql

从支持的数据源种类来讲:presto>spark sql>kylin>Druid



大数据查询目前来讲可以大体分为三类:


1.基于hbase预聚合的,比如Opentsdb,Kylin,Druid,需要指定预聚合的指标,在数据接入的时候根据指定的指标进行聚合运算,适合相对固定的业务报表类需求,只需要统计少量维度即可满足业务报表需求

2.基于Parquet列式存储的,比如Presto, DrillImpala等,基本是完全基于内存的并行计算,Parquet系能降低存储空间,提高IO效率,以离线处理为主,很难提高数据写的实时性,超大表的join支持可能不够好。spark sql也算类似,但它在内存不足时可以spill disk来支持超大数据查询和join

3.基于lucene外部索引的,比如ElasticSearchSolr,能够满足的的查询场景远多于传统的数据库存储,但对于日志、行为类时序数据,所有的搜索请求都也必须搜索所有的分片,另外,对于聚合分析场景的支持也是软肋





OLAP需求大体分为两类:

即席查询:指用户通过手写SQL来完成一些临时的数据分析需求。这类需求的SQL形式多变、逻辑复杂,对响应时间没有严格的要求

固化查询:指对一些固化下来的取数、看数的需求,通过数据产品的形式提供给用户,从而提高数据分析和运营的效率。这类需求的SQL有固定的模式,对响应时间有比较高的要求


没有一个系统能同时在数据量、性能、和灵活性三个方面做到完美,每个系统在设计时都需要在这三者间做出取舍


MPP架构的系统(Presto/Impala/SparkSQL/Drill等)有很好的数据量和灵活性支持,但是对响应时间是没有保证的。当数据量和计算复杂度增加后,响应时间会变慢,从秒级到分钟级,甚至小时级都有可能


搜索引擎架构的系统(Elasticsearch等)相对比MPP系统,在入库时将数据转换为倒排索引,采用Scatter-Gather计算模型,牺牲了灵活性换取很好的性能,在搜索类查询上能做到亚秒级响应。但是对于扫描聚合为主的查询,随着处理数据量的增加,响应时间也会退化到分钟级。


预计算系统(Druid/Kylin等)则在入库时对数据进行预聚合,进一步牺牲灵活性换取性能,以实现对超大数据集的秒级响应



目前采用MPP架构的实时查询系统有EMC GreenplumHP VerticaGoogle Dremel,这些都是实时数据处理领域非常有特点的系统,尤其是Dremel可以轻松扩展到上千台服务器,并在数秒内完成TB级数据的分析



NUMA是一种体系结构,MPP是一种实时海量数据分析架构,而Hadoop是一个关于数据存储处理的项目群,其中的MapReduce是一种离线海量数据分析架构


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值