数据架构-常见olap系统架构

基于MPP:

shared nothing架构,主机、操作系统、内存、存储都是自我控制的,不存在共享,每个节点都是一个单独的数据库。节点之间的信息交互是通过节点网络实现。数据分不到多个节点来实现规模数据的存储,通过并行查询来提高查询性能。

MPP特征:任务并行执行,数据分布式存储,分布式计算,私有资源,横向水平扩展,shared nothing。

MPP典型:gp,presto,impala,sparksql,drill等,有很好的数据量和灵活性支持,但是对响应时间是没有保证的,当数据量和计算复杂度增加后,响应时间会变慢,从秒级到分钟级,甚至小时级都有可能。

基于搜索引擎:

elasticsearch,solr等,在数据入库时,姜数据转化为倒排索引,采用scatter-gather 计算模型,牺牲灵活性获取很好的查询性能,在搜索类查询上能做到亚秒级响应,但是对于扫描聚合为主的查询,随着处理数据量的增加,响应退化到分钟级。

基于预处理:

druid、kylin 在入库时对数据进行预聚合,进一步牺牲灵活性换取性能,以实现对超大数据集的秒级响应。

presto、druid、sparkSQL、kylin可以分为三类。其中presto和spark sql都是解决分布式查询问题,提供SQL查询能力,但数据加载不一定能保证实时。Druid是保证数据实时写入,但查询上不支持SQL,或者说目前只支持部分SQL,我个人觉得适合用于工业大数据,比如一堆传感器实时写数据的场景。Kylin是MOLAP,就是将数据先进行预聚合,然后把多维查询变成了key-value查询。

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容