导读 | Apache Hive是基于Hadoop生态系统的旗舰数据仓库工具。它不仅将结构化的数据文件映射到数据库表,而且还提供SQL(HQL)查询功能(例如SQL语句)并将SQL语句转换为MapReduce任务以供执行。 |
它是由Facebook开发的,于2008年进入Apache孵化器,并于2010年9月成为优秀Apache项目。背后的原理是利用熟悉的SQL模型来处理HDFS(Hadoop)上的数据。借助Hive,学习成本低,并且可以通过HQL语句快速转换简单的MapReduce统计信息,而无需担心开发其他特殊的MapReduce应用程序。
Hive非常方便地在整个企业范围内对数据仓库进行建模和构建,而Hive SQL模型则可以对数据仓库中的数据进行统计和分析。
但是,Hive的底层被转换为MR,而MR的改组依赖于系统磁盘,因此它只能处理离线分析,这效率相对较低,在开发人员社区中不可接受。Hive通常使用Hive在整个组织中构建数据仓库。
Apache SparkSQL是主要的Spark组件构建,用于处理结构化数据。Spark SQL于2014年发布,并吸收了Hive-on-Spark项目,该项目现在是使用最广泛的Spark模块。它提供了一个称为DataFrames的可编程抽象数据模型,并被视为分布式SQL查询引擎。
SparkSQL取代了Hive的查询引擎,但也与hive系统兼容。关于Spark RDD API,Spark SQL提供的接口将为Spark提供有关结构化数据和计算的更多信息。SparkSQL最底层是Spark Core,它使您可以轻松地在不同的SQL和API之间切换。
Presto是一个分布式数据查询引擎,但从不存储数据本身Presto将提供对多个数据源的访问,并支持跨不同数据源的级联查询。它是一个分布式SQL交互式查询引擎,它也在2012年由Facebook开发,并于2013年开源。
Presto是一种OLAP工具,适用于海量数据的复杂分析,但不适用于OLTP方案。Presto仅提供计算和分析功能,而不能用作数据库系统。
就Hive而言,Presto是一种低延迟,高并发性的内存计算引擎。它的执行效率比Hive高得多。它的MPP(大规模并行处理)模型可以处理PB级数据。Presto的原理只是将一些数据放入内存中进行计算,完成后将其取出,然后再次处理其他一些数据,例如循环和类似于管道处理模式。
Apache Kylin是针对Hadoop生态系统的开源分布式分析引擎。其针对Hadoop / Spark的SQL查询接口和OLAP功能广泛支持超大规模数据。它使用基于多维数据集的预计算技术,该技术可快速高效地处理大数据SQL查询。Kylin由eBay开发,并于2014年11月进入Apache孵化器。
凯林(Kylin)的出现是为了解决分析需要的TB数据。它可以在蜂巢中预先计算数据,并使用Hadoop的MapReduce框架实施。它可以在几秒钟内查询大量的Hive表。
麒麟最关键的两个过程是
- 多维数据集的预计算过程,并将SQL查询转换为多维数据集。
- 此外,在查询时要预先计算汇总结果并同时获得查询结果,避免直接扫描。
与其他框架相比,它是用于大数据的实时交互式SQL查询引擎。Apache Impala是由Cloudera开发的SQL MPP查询工具,受Google Dremel的启发,后来于2012年10月开源,并于2017年11月28日成为优秀项目。
Impala使用完全开放且不同的形式集成到Hadoop生态系统中,从而使其使用者可以使用SQL来处理Hadoop生态系统中的大量数据。
目前,它支持多种类型的存储选项,例如:
- Apache Kudu
- 亚马逊S3
- 微软ADLS
- 本地存储
它诞生时仅支持对大量HDFS数据的交互式分析。它的灵活性和领先的分析数据库性能促进了在全球企业中的大量部署。
Ir为企业业务提供BI和交互式SQL高效分析,并允许第三方生态系统快速增长。
Apache Druid是用于实时数据分析的开源工具,旨在快速处理大规模数据。它的分布式实时分析通过快速查询和大规模数据集解决了复杂的任务。
2018年2月28日进入Apache孵化器。它提供了以交互方式访问数据的功能。进入Druid系统后,可以实时摄取数据并立即进行验证。输入的数据a几乎是不可变的。通常是基于时间顺序的事实事件。
它是一个分布式,可伸缩的实时搜索和分析引擎。它由Shay Banon于2010年建造,后来开源。它具有全文搜索引擎的功能,并具有RESTful Web界面的分布式多用户支持。
ES的工作原理主要分为以下几个步骤。
- 首先,用户将数据输入ES数据库
- 然后利用分词控制器对相应的句子进行分段
- 存储细分结果的权重。
当用户搜索特定数据时,将根据权重对结果进行排名和评分,然后返回给用户。ES是完全用Java开发的,并且是当前比较受欢迎的企业搜索引擎。
它稳定,可靠,快速且易于安装,专为在云计算环境中使用而设计。
官方客户提供以下语言版本
- Java
- .NET(C#)
- PHP
- Python
- Apache Groovy
- Ruby
Apache HAWQ(带有查询的Hadoop)是Hadoop本机并行SQL分析引擎。它是Pivotal在2012年推出的具有商业许可的高性能SQL引擎。
它是Hadoop的本机SQL查询引擎,结合了MPP数据库的技术优势,巨大的可扩展性和Hadoop的便利性。
经验证,HAWQ的OLAP性能是Hive和Impala的4倍以上。它非常适合在Hadoop平台上快速构建数据仓库系统。
HAWQ具有以下功能,例如
- 大规模并行处理
- 完全的SQL兼容性,
- 支持存储过程和事务。
它也可以轻松地与其他开源数据挖掘库(如MADLib)集成。
Apache Lucene是基于Java的开源全文搜索引擎工具箱。它是功能比较强大且被广泛采用的搜索引擎。Lucene不是完整的搜索引擎,而是全文搜索引擎体系结构,使用此原型,您可以制造其他搜索引擎产品。它是一种全文本搜索引擎体系结构,可提供完整的索引创建和查询索引以及文本分析引擎。
Lucene的目标是为软件开发人员提供一个简单易用的工具包,以促进在所需系统中实现全文搜索功能,甚至基于此原型构建完整的全文搜索引擎。它提供了一个简单但功能强大的应用程序编程接口(API),可以进行全文索引和搜索。
Apache Solr是一个基于Apache Lucene架构的开源企业搜索平台。它于2004年发布,于2007年1月17日成为Apache优秀项目。
它的高可靠性,可伸缩性和容错能力提供分布式索引,复制和负载平衡查询,自动故障转移,恢复和集中式配置。它是一个完全用Java语言编写的独立全文搜索服务器,并在Servlet容器环境(Apache Tomcat或Jetty)中运行。
Solr依靠Lucene Java搜索库进行全文索引和搜索,并使用HTTP / XML和JSON API执行类似REST的操作。Solr强大的外部配置功能使其无需使用Java语言即可进行调整,以适合多种类型的软件。Solr支持许多大型Internet企业站点的搜索和导航功能。
Apache Phoenix是基于HBase的SQL类型框架。Apache Phoenix JDBC API取代了传统的HBase客户端API的需求,它还创建表,插入数据和查询HBase数据。基本上,这是Java中间层,允许开发人员使用HBase中的数据表,例如关系数据库(例如,通过Phoenix的MySQL)。
Phoenix会将SQL查询语句编译为一系列Scan操作,并生成JDBC结果集并将其返回给服务使用者。它使您能够使用基础层,例如HBase协处理器和过滤器。无论数据响应时间以秒为单位,小规模查询都会以毫秒为单位进行响应。
原文来自:
本文地址://gulass.cn/apache-hive-presto.html编辑:向云艳,审核员:逄增宝
Linux大全:
Linux系统大全: