到目前为止,已经介绍了几个最主要的实时查询引擎,分别是:

  • 实时查询引擎 - Apache Drill 介绍与应用
  • 实时查询引擎 - Facebook Presto 介绍与应用
  • 实时查询引擎 - 构建于HDFS之上的Greenplum: HAWQ
  • 实时查询引擎 - Cloudera Impala 介绍与应用

  在这几个实时查询引擎中,个人感觉最易用的应属Impala,因为它跟CDH集成在一起,无论在安装、管理、使用上都非常方便,且与HIVE天然集成,数据共享,兼容性好。而最灵活的应属Drill和Presto, Drill可以针对文件、目录、HIVE表作数据分析查询。Presto则有各种各样的连接器, 可扩展性非常高。
  下面来对这几个组件进行一个简单的比较:

  • 安装方面:最快速最简单的当属Impala,因为Impala与CDH集成在一起,不需要另外安装,可以直接通过WEB界面添加服务完成安装。而Apache Drill也非常快捷,简单的更改配置文件,复制到每台服务器上即可。最复杂的当属HAWQ了,更改了Greenplum的存储方式,但其它没有变化,安装过程就一样的步骤多而麻烦了,不过HAWQ也可以通过Ambari图形界面安装。
  • 内存使用:大家都是基于内存运算来达到实时级别的。但当内存达到极限时的表现却各有不同。Drill会直接产生异常, Impala在有限的情况下(实际感受就没存在过)可以实现磁盘溢出运算,其它也是直接抛出异常。而Presto没有明确的表态,实际测试也没有产生过溢出异常。HAWQ跟Greenplum完全一样,可以在内存不出时,溢出到磁盘进行运算的。
  • SQL兼容性:作为对标准DML的支持,其实大家都差不多。不能执行DELETE,UPDATE,剩下就只有SELECT了。标准的GROUP, JOIN, LIMIT,HAVING, ORDER BY是必须支持的。余下的就看支持的扩展语法是否丰富,分析函数是否丰富,内置函数是否丰富了。而大家都是混大数据界的,分析函数那是多少都必须支持的。在以上三方面,最丰富的肯定当属HAWQ了,保留了Greenplum所有的功能,跟Oracle非常相似。其它几个也都支持了比较常用的一些,可以满足大部分情况使用。另外最值得一值的是, HAWQ还支持PL/java, PL/Perl,PL/pgSQL等过程语言。
  • SQL执行效率方面。下面通过一个简单的查询测试来看看吧:
  Drill Presto Impala HAWQ
数据加载(15970428行)     16.69s(INSERT SELECT方式) 49s(COPY方式)
求总记录数 48.71s,37.16s 6s,1s 1.14s,1.13s 1.02s,1.07s
按category汇总求最大/小 15.8s,18.6s 9s,7s 1.85s, 1.67s 4.1s, 1.2s

  > 数据加载Drill,Presto直接使用Impala加载后的数据,不需要重复加载。且HAWQ与Impala的数据加载速率也没有可比性,执行方式完全不一样。
  > 每一个查询测试都执行了两次
  > 测试中总共有3个DataNode节点,但HAWQ只有2个Segment节点在运行。其它都是3个节点
  > 从以上简单的测试结果来看, Impala与HAWQ的执行效率都是非常快且不相上下的。其次Presto的执行效率也还行,而Drill。。。

  • 高可用性方面:最靠谱的当属Drill了,无主节点的设置,即使在战斗到只剩最后一个节点时,仍然可以继续使用。而其它三个组件都有弱点,Impala是Catalog,Statestore角色,Presto是兼用Discovery功能的Coordinator节点,HAWQ是Master主节点。虽然像HAWQ可以通过主备方式来避免,其它的也很少挂掉,且会自动重启。但这毕竟是它的软肋。

  至此,实时查询引擎系列就暂告段落了,有遗误的地方请大家留言告知。

实时查询引擎 - 介绍总结相关推荐

  1. 实时查询引擎 - Facebook Presto 介绍与应用

    1. Presto 是什么   Facebook presto是什么,继Facebook创建了HIVE神器后的又一以SQL语言作为接口的分布式实时查询引擎,可以对PB级的数据进行快速的交互式查询.它支 ...

  2. 实时查询引擎 - Apache Drill 介绍与应用

    1. Drill是什么   Apache drill是什么,脱去华丽的外衣,Apache Drill是一个能够对大数据进行实时的分布式查询引擎,目前它已经成为Apache的顶级项目.Drill是开源版 ...

  3. Filament 实时渲染引擎介绍~~

    作者:_子宽 来源: https://blog.csdn.net/u010281174/article/details/107847966 摘要 Filament是一款Google开发的跨平台的实时渲 ...

  4. 易观CTO郭炜:如何构建企业级大数据Ad-hoc查询引擎

    凭借多年大数据平台建设经验,易观 CTO郭炜为大家分享了易观在大数据实时查询引擎建设过程所获经验与挑战,以及大数据人员如何快速建立自己的大数据查询引擎套件,让自己的数据人员不再是"表哥表妹& ...

  5. 数据仓库(六)---分布式SQL查询引擎---presto介绍

    我们在之前的文章中已经学习了数据仓库hive,如果要对数据仓库进行交互查询,则需要交互查询的引擎用于提高查询效率.本章介绍presto. 简介 Presto是一个开源的分布式SQL查询引擎,适用于实时 ...

  6. CDH集群使用spark作为hive查询引擎(实时查询)

    Hive我们用来搭建数仓,对于大量数据以及离线数仓,可以满足,但是 他不能满足实时查询的情况,如果这次客户来了个需求,不在我们统计分析的指标内. 那你单独写SQL,然后通过mr底层,就不能立刻出结果, ...

  7. mysql数据库引擎介绍

    mysql数据库引擎介绍 你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HE ...

  8. MySQL—05—MySQL如何处理SQL语句;MySQL数据库存储引擎介绍;

    一. MySQL 中的执行计划 1 MySQL 执行计划 在 MySQL 中可以通过 explain 关键字模拟优化器,执行 SQL 语句,从而知道 MySQL 是 如何处理 SQL 语句的. 2 M ...

  9. Hologres揭秘:深度解析高效率分布式查询引擎

    简介:从阿里集团诞生到云上商业化,随着业务的发展和技术的演进,Hologres也在持续不断优化核心技术竞争力,为了让大家更加了解Hologres,我们计划持续推出Hologers底层技术原理揭秘系列, ...

最新文章

  1. C#3.0笔记(五)Lambda表达式
  2. STM32 基础系列教程 39 - Lwip_tftp
  3. RealARM开发板 TFTP下载内核和NFS挂载文件系统 基于S5PV210开发板
  4. 自动增长 mysql
  5. java线程池 core_Java 线程池 ThreadPoolExecutor 的使用
  6. 比较两个字符串相同的个数,并输出
  7. FckEditor 2.6.4升级手记
  8. 人月神话阅读笔记(2)
  9. Atitit.ide代码块折叠插件 eclipse
  10. umask 文件预设权限掩码
  11. android 手机头提示消息,正确的手机头部声明(android,iphone)
  12. picasa图片编辑器_如何将iPhone图片和电影导入Picasa
  13. linux学习书籍汇总 值得推荐的linux学习书籍
  14. 计算机报名503,503 service temporarily unavailable是什么意思【解决方法】
  15. theisle服务器信息设置,theisle服务器diy
  16. 产品经理的私房菜 - 腾讯产品模型 - 执行力篇
  17. Python-Django-视图
  18. 让html 自动换行,怎样让HTML 表格中内容自动换行??
  19. 搜索引擎可搜到微信公众号内容?百度回应:不能
  20. 穿冰丝很凉快,是有降温作用吗?穿戴冰丝衣物要注意哪些?

热门文章

  1. 【PCB专题】怎么样将BMP图片导入Allegro中生成log
  2. mit招收中国计算机硕士吗,从计算机到金融的完美转身 - MIT金融硕士录取!
  3. MySQL黑马笔记一
  4. [转载]权衡 Apache Geronimo EJB 事务选项,第 3 部分: 综合所有事务
  5. Andersen Global与税务公司合作拓展毛里塔尼亚平台
  6. html 隐藏整个fieldset,HTML fieldset disabled 属性 | 菜鸟教程
  7. 招商银行信用卡中心春招秋招数据方向数据分析数据挖掘数据开发笔试题(持续更新)
  8. hge source explor 0xD graphics Ⅳ
  9. 服务器数量从 21 台降至 3 台,TDengine 在跨越速运集团的落地实践
  10. MySQL数据库-详解