当前位置: 首页 > 科技观察

大数据与开源查询分析框架

时间:2023-03-14 15:32:59 科技观察

ApacheHiveApacheHive是基于Hadoop生态系统的旗舰数据仓库工具。它不仅将结构化数据文件映射到数据库表中,还提供SQL(HQL)查询功能(如SQL语句),将SQL语句转换为MapReduce任务执行。由Facebook开发,2008年进入Apache孵化器,2010年9月成为优秀的Apache项目,其背后的原理是使用大家熟悉的SQL模型在HDFS(Hadoop)上处理数据。使用Hive,学习成本低,简单的MapReduce统计可以通过HQL语句快速转换,不用担心开发其他专门的MapReduce应用。Hive非常方便地在整个企业范围内建模和构建数据仓库,而HiveSQL模型可以对数据仓库中的数据进行统计和分析。但是Hive底层转为MR,MR的重组依赖于系统盘,只能处理离线分析,效率相对较低,开发者社区无法接受。Hive通常用于跨组织构建数据仓库。ApacheSparkSQLApacheSparkSQL是为处理结构化数据而构建的主要Spark组件。SparkSQL于2014年发布,吸纳了Hive-on-Spark项目,是目前使用最广泛的Spark模块。它提供了一种称为DataFrames的可编程抽象数据模型,被视为分布式SQL查询引擎。SparkSQL替代了Hive的查询引擎,同时也兼容Hive系统。关于SparkRDDAPI,SparkSQL提供的接口将为Spark提供更多关于结构化数据和计算的信息。SparkSQL的底层是SparkCore,可以让你轻松地在不同的SQL和API之间切换。PrestoPresto是一个分布式数据查询引擎,但从不存储数据本身。Presto将提供对多个数据源的访问,并支持跨不同数据源的级联查询。是一个分布式的SQL交互查询引擎,同样是Facebook在2012年开发的,2013年开源的。Presto是一个适合海量数据复杂分析的OLAP工具,但不适合OLTP场景。Presto仅提供计算和分析功能,不能作为数据库系统使用。对于Hive而言,Presto是一个低延迟、高并发的内存计算引擎。它的执行效率比Hive高得多。它的MPP(大规模并行处理)模型可以处理PB级的数据。Presto的原理就是把一些数据放到内存里计算,计算完了再取出来,然后再处理一些其他的数据,比如循环之类类似流水线的处理方式。ApacheKylinApacheKylin是Hadoop生态系统的开源分布式分析引擎。其SQL查询接口和面向Hadoop/Spark的OLAP功能广泛支持超大规模数据。它使用基于立方体的预计算技术,可以快速高效地处理大数据SQL查询。Kylin由eBay开发,并于2014年11月进入Apache孵化器。Kylin的出现是为了解决分析所需的TB级数据。它可以预先计算hive中的数据,并使用Hadoop的MapReduce框架实现。秒级查询大量Hive表。Kylin最关键的两个过程是Cube的预计算过程和SQL查询到Cube的转换。另外,在查询时,需要预先计算汇总结果,同时获取查询结果,避免直接扫描。与其他框架相比,ApacheImpala是一个针对大数据的实时交互式SQL查询引擎。ApacheImpala是Cloudera开发的一款SQLMPP查询工具,灵感来自于GoogleDremel,后来于2012年10月开源,并于2017年11月28日成为优秀项目。Impala以完全开放和不同的形式融入Hadoop生态,使其用户可以使用SQL来处理Hadoop生态系统中的大量数据。目前,它支持多种类型的存储选项,例如:ApacheKuduAmazonS3MicrosoftADLSLocalStorage天生只支持对大量HDFS数据进行交互式分析。它的灵活性和领先的分析数据库性能促进了全球企业的大规模部署。Ir为企业业务提供高效的BI分析和交互式SQL,让第三方生态快速成长。ApacheDruidApacheDruid是一款用于实时数据分析的开源工具,旨在快速处理大规模数据。其分布式实时分析通过快速查询和大规模数据集解决复杂任务。2018年2月28日进入Apache孵化器,提供交互访问数据的功能。一旦进入Druid系统,就可以实时摄取数据并立即进行验证。输入数据a几乎是不可变的。通常基于按时间顺序排列的事实事件。ElasticSearch是一个分布式的、可扩展的实时搜索和分析引擎。它由ShayBanon于2010年构建,后来开源。它具有全文搜索引擎,并通过RESTfulWeb界面提供分布式多用户支持。ES的工作原理主要分为以下几个步骤。首先,用户将数据录入ES数据库,然后使用分词控制器对相应的句子进行分词,并存储分词结果的权重。当用户搜索特定数据时,根据权重对结果进行排序打分,返回给用户。ES完全用Java开发,是目前流行的企业级搜索引擎。它稳定、可靠、快速且易于安装,专为在云计算环境中使用而设计。官方客户端有以下语言版本Java.NET(C#)PHPPythonApacheGroovyRubyApacheHAWQApacheHAWQ(HadoopwithQuery)是Hadoop的原生并行SQL分析引擎。是Pivotal于2012年推出的商业授权高性能SQL引擎,是Hadoop原生的SQL查询引擎,结合了MPP数据库的技术优势、海量的可扩展性和Hadoop的便捷性。经验证,HAWQ的OLAP性能是Hive和Impala的4倍以上。非常适合在Hadoop平台上快速搭建数据仓库系统。HAWQ具有大规模并行处理、完全SQL兼容性以及对存储过程和事务的支持等特性。它还可以轻松地与其他开源数据挖掘库(如MADLib)集成。ApacheLuceneApacheLucene是一个基于Java的开源全文搜索引擎工具包。它是一个比较强大和广泛使用的搜索引擎。Lucene不是一个完整的搜索引擎,而是一个全文搜索引擎架构,利用这个原型,你可以做出其他的搜索引擎产品。它是一种全文搜索引擎架构,提供完整的索引创建和查询索引及文本分析引擎。Lucene的目标是为软件开发者提供一个简单易用的工具包,方便在需要的系统中实现全文搜索功能,甚至可以基于这个原型构建一个完整的全文搜索引擎。它提供了一个简单但功能强大的应用程序编程接口(API),支持全文索引和搜索。ApacheSolrApacheSolr是一个基于ApacheLucene架构的开源企业搜索平台。它于2004年发布,并于2007年1月17日成为ApacheGoodProject。其高可靠性、可扩展性和容错性提供分布式索引、查询的复制和负载平衡、自动故障转移、恢复和集中配置。它是一个独立的全文搜索服务器,完全用Java编写,运行在Servlet容器环境(ApacheTomcat或Jetty)中。Solr依靠LuceneJava搜索库进行全文索引和搜索,并使用HTTP/XML和JSONAPI执行类似REST的操作。Solr强大的外部配置能力使其无需使用Java语言即可适配多种类型的软件。Solr支持许多大型互联网企业站点的搜索和导航功能。ApachePhoenixApachePhoenix是一个基于HBase的SQL类框架。ApachePhoenixJDBCAPI取代了对传统HBase客户端API的需求,后者还可以创建表、插入数据和查询HBase数据。基本上,这是允许开发人员使用HBase中的数据表的Java中间层,例如关系数据库(例如,通过Phoenix的MySQL)。Phoenix会将SQL查询语句编译成一系列Scan操作,生成JDBC结果集返回给服务使用者。它使您能够使用底层,例如HBase协处理器和过滤器。小查询以毫秒为单位响应,而不管以秒为单位的数据响应时间。