博客
关于我
presto、druid、sparkSQL、kylin的对比分析
阅读量:797 次
发布时间:2023-03-04

本文共 1006 字,大约阅读时间需要 3 分钟。

在大数据分析领域,OLAP框架作为重要的工具,常见的有Presto、Druid、Spark SQL和Kylin等。每种框架都有其独特的优势和适用场景,选择合适的框架需要从成熟度、查询效率以及数据源种类等多个维度进行综合考量。

框架特点分析

  • Presto:由Facebook开源,采用Java编写,支持分布式数据查询,原生集成Hive、HBase和关系型数据库。其核心优势在于执行模式与Hive不同,避免了MapReduce,通过内存处理大部分任务,通常比Hive快一个数量级。

  • Druid:专注于实时处理时序数据,索引按时间分片,查询时按时间线路由索引。其性能优异,适合需要实时分析的场景。

  • Spark SQL:基于Spark平台的OLAP框架,采用DAG(有向无环图)MPP(Massive Parallel Processing)模型,通过增加计算机器实现并行计算,提升查询速度。

  • Kylin:以Cube预计算技术为核心,通过预先建立多维索引,查询时直接扫描索引,避免访问原始数据,从而显著提升查询效率。

选型建议

从成熟度来看,Kylin的成熟度最高,其次是Spark SQL、Druid,最后是Presto。
在查询效率方面,Druid表现最佳,其次是Kylin,Presto效率稍逊,Spark SQL效率最低。
支持的数据源种类方面,Presto最为多元,接下来是Spark SQL、Kylin,Druid支持的数据源相对单一。

大数据查询分类

大数据查询主要可分为三类:

  • HBase预聚合型:如OpenTSDB、Kylin、Druid等,适用于预定义的聚合指标,数据接入时需提前定义聚合维度,适合业务报表类需求,统计维度较少。

  • Parquet列式存储型:如Presto、Drill、Impala等,基于内存的并行计算,支持大规模数据离线处理,Parquet格式降低了存储空间占用,提升了IO效率。但写入实时性较差,超大表的关联操作支持不够理想。Spark SQL也属于类似范畴,但支持内存不足时通过磁盘溢出(spill disk)处理超大数据。

  • Lucene外部索引型:如Elasticsearch、Solr等,适合日志、行为类时序数据,支持广泛的查询场景。所有搜索请求需遍历所有分片,聚合分析支持相对较弱。

  • 在实际应用中,应根据具体需求选择合适的框架组合,充分发挥各框架的优势,平衡性能与可用性。

    转载地址:http://xmxfk.baihongyu.com/

    你可能感兴趣的文章
    PostgreSQL删除数据库报"ERROR: There is 1 other session using the database."
    查看>>
    Qt开发——爱情公寓人事管理系统
    查看>>
    PostgreSQL和Oracle两种数据库有啥区别?如何选择?
    查看>>
    Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入
    查看>>
    PostgreSQL在何处处理 sql查询之四
    查看>>
    postgresql基本使用
    查看>>
    PostgreSQL学习总结(10)—— PostgreSQL 数据库体系架构
    查看>>
    PostgreSQL学习总结(11)—— PostgreSQL 常用的高可用集群方案
    查看>>
    Qt开发——多线程网络时间客户端
    查看>>
    PostgreSQL学习总结(13)—— PostgreSQL 15.8 如何成就数据库性能王者?
    查看>>
    PostgreSQL学习总结(13)—— PostgreSQL 目录结构与配置文件 postgresql.conf 详解
    查看>>
    PostgreSQL学习总结(1)—— PostgreSQL 入门简介与安装
    查看>>
    PostgreSQL学习总结(2)—— PostgreSQL 语法
    查看>>
    PostgreSQL学习总结(3)—— PostgreSQL 数据类型
    查看>>
    Qt开发——圆面积计算器
    查看>>
    PostgreSQL学习总结(5)—— PostgreSQL table 创建与删除
    查看>>
    PostgreSQL学习总结(6)—— PostgreSQL 模式(SCHEMA)详解
    查看>>
    PostgreSQL学习总结(7)—— PostgreSQL 语句 INSERT INTO、SELECT、UPDATE、DELETE 等学习
    查看>>
    PostgreSQL学习总结(8)—— PostgreSQL 基于数据库和基于模式(schema)的多租户分析
    查看>>
    PostgreSQL学习总结(9)—— PostgreSQL 运算符与表达式
    查看>>