impala 概述

什么是Impala?

Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。 它是一个用C ++和Java编写的开源软件。 与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。

换句话说,Impala是性能最高的SQL引擎(提供类似RDBMS的体验),它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。

为什么选择Impala?

Impala通过使用标准组件(如HDFS,HBase,Metastore,YARN和Sentry)将传统分析数据库的SQL支持和多用户性能与Apache Hadoop的可扩展性和灵活性相结合。

  • 使用Impala,与其他SQL引擎(如Hive)相比,用户可以使用SQL查询以更快的方式与HDFS或HBase进行通信。

  • Impala可以读取Hadoop使用的几乎所有文件格式,如Parquet,Avro,RCFile。

Impala将相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax)用作Apache Hive,为面向批量或实时查询提供熟悉且统一的平台。

与Apache Hive不同,Impala不基于MapReduce算法。 它实现了一个基于守护进程的分布式架构,它负责在同一台机器上运行的查询执行的所有方面。

因此,它减少了使用MapReduce的延迟,这使Impala比Apache Hive快。

Impala的优点

以下是Cloudera Impala的一些值得注意的优点的列表。

  • 使用impala,您可以使用传统的SQL知识以极快的速度处理存储在HDFS中的数据。

  • 由于在数据驻留(在Hadoop集群上)时执行数据处理,因此在使用Impala时,不需要对存储在Hadoop上的数据进行数据转换和数据移动。

  • 使用Impala,您可以访问存储在HDFS,HBase和Amazon s3中的数据,而无需了解Java(MapReduce作业)。您可以使用SQL查询的基本概念访问它们。

  • 为了在业务工具中写入查询,数据必须经历复杂的提取 - 变换负载(ETL)周期。但是,使用Impala,此过程缩短了。加载和重组的耗时阶段通过新技术克服,如探索性数据分析和数据发现,使过程更快。

  • Impala正在率先使用Parquet文件格式,这是一种针对数据仓库场景中典型的大规模查询进行优化的柱状存储布局。

Impala的功能

以下是cloudera Impala的功能 -

  • Impala可以根据Apache许可证作为开源免费提供。

  • Impala支持内存中数据处理,即,它访问/分析存储在Hadoop数据节点上的数据,而无需数据移动。

  • 您可以使用Impala使用类SQL查询访问数据。

  • 与其他SQL引擎相比,Impala为HDFS中的数据提供了更快的访问。

  • 使用Impala,您可以将数据存储在存储系统中,如HDFS,Apache HBase和Amazon s3。

  • 您可以将Impala与业务智能工具(如Tableau,Pentaho,Micro策略和缩放数据)集成。

  • Impala支持各种文件格式,如LZO,序列文件,Avro,RCFile和Parquet。

  • Impala使用Apache Hive的元数据,ODBC驱动程序和SQL语法。

关系数据库和Impala

Impala使用类似于SQL和HiveQL的Query语言。 下表描述了SQL和Impala查询语言之间的一些关键差异。

Impala 关系型数据库
Impala使用类似于HiveQL的类似SQL的查询语言。 关系数据库使用SQL语言。
在Impala中,您无法更新或删除单个记录。 在关系数据库中,可以更新或删除单个记录。
Impala不支持事务。 关系数据库支持事务。
Impala不支持索引。 关系数据库支持索引。
Impala存储和管理大量数据(PB)。  与Impala相比,关系数据库处理的数据量较少(TB)。

Hive,Hbase和Impala

虽然Cloudera Impala使用与Hive相同的查询语言,元数据和用户界面,但在某些方面它与Hive和HBase不同。 下表介绍了HBase,Hive和Impala之间的比较分析。

HBase Hive Impala
HBase是基于Apache Hadoop的宽列存储数据库。 它使用BigTable的概念。 Hive是一个数据仓库软件。 使用它,我们可以访问和管理基于Hadoop的大型分布式数据集。 Impala是一个管理,分析存储在Hadoop上的数据的工具。
HBase的数据模型是宽列存储。 Hive遵循关系模型。 Impala遵循关系模型。
HBase是使用Java语言开发的。 Hive是使用Java语言开发的。 Impala是使用C ++开发的。
HBase的数据模型是无模式的。 Hive的数据模型是基于模式的。 Impala的数据模型是基于模式的。
HBase提供Java,RESTful和Thrift API。 Hive提供JDBC,ODBC,Thrift API。 Impala提供JDBC和ODBC API。
支持C,C#,C ++,Groovy,Java PHP,Python和Scala等编程语言。 支持C ++,Java,PHP和Python等编程语言。 Impala支持所有支持JDBC / ODBC的语言。
HBase提供对触发器的支持。 Hive不提供任何触发器支持。 Impala不提供对触发器的任何支持。

所有这三个数据库 -

  • 是NOSQL数据库。

  • 可用作开源。

  • 支持服务器端脚本。

  • 按照ACID属性,如Durability和Concurrency。

  • 使用分片进行分区。

Impala的缺点

使用Impala的一些缺点如下 -

  • Impala不提供任何对序列化和反序列化的支持。
  • Impala只能读取文本文件,而不能读取自定义二进制文件。
  • 每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新。

(0)

相关推荐

  • 大数据查询Druid,Impala,Presto,SparkSQL对比

    一.OLAP和OLTP的区别 OLAP(On-Line Analytical Processing)联机分析处理,也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理 ...

  • 生态旅游概述

    生态旅游被广泛定义为到濒危和通常未受干扰的地方进行的低影响旅游.它与传统旅游不同,因为它可以让游客对当地的自然景观和文化特征有所了解,而且经常为保护提供资金,并有利于经常贫困地区的经济发展. 生态旅游 ...

  • 经络穴位解读——手阳明大肠经概述及重要穴位

    经络穴位解读--手阳明大肠经概述及重要穴位 原创牛奶和奶牛2020-11-30 19:20:14 今天我们来解读一下手阳明大肠经.在中医学里,经络是与脏腑相匹配的.同时也是互为表里的关系.例如手太阴肺 ...

  • 区域地理学概述

    区域地理学是地理学研究世界区域的一个分支.一个地区本身被定义为地球表面的一部分,具有一个或多个类似的特征,使其有别于其他地区.区域地理学研究的是与地方的文化.经济.地形.气候.政治和环境因素有关的特定 ...

  • 概述蛋白石

    蛋白石因颜色.光泽独特而名.其彩虹般绚丽耀目的光芒多彩似马赛克,充满了神秘性,足其它宝石无可比拟的. 虽然名为蛋白石,却非单一色调,如果仅仅是白色,倒反而没有价值了.透明.红色.黄色色系,在澳洲多为乳 ...

  • 中国历史概述(九十六)——蒙古太宗至宪宗时期的政治经济

    前面几期我们着重从军事征服角度介绍了成吉思汗即位到蒙哥去世前后蒙古的历史.本期我们着重介绍在蒙古太宗窝阔台至宪宗蒙哥时期的政治经济等方面的情况. 成吉思汗的分封 蒙古汗国是成吉思汗在母亲.诸弟帮助下建 ...

  • 中国历史概述(九十四下)——附 蒙古对东北地区的征服

    蒙古对东北地区的征服过程,与金国在东北势力的消亡有关.蒙古在东北的统治前期依靠契丹.女真等族贵族建立的政权作为藩属,到元初逐渐改为直接统治. 蒙古对辽西的战争与东辽国的建立 1211年,蒙古军第一次围 ...

  • 中国历史概述(九十四上)——蒙金战争与金国覆灭

    蒙古对金的战争和最后的完全征服花费了二十多年的时间,这期间由于西征等原因,对金作战并不是一次性完成的.而在这个过程中,金国内部的矛盾和红袄军起义也加速了金的灭亡.本期专述蒙古对金战争与金国灭亡的历史. ...

  • 中国历史概述(九十三)——蒙古对回鹘、西辽、西夏、吐蕃、大理的征服

    蒙古汗国在建立以后,通过数十年的战争,先后收服回鹘.灭西辽.灭西夏.收服吐蕃.灭大理,将西部的辽阔地区纳入版图中.本期主要介绍以上历史内容.关于蒙古三次大规模西征的情况,将在第九十五期作介绍. 回鹘的 ...

  • 总线概述及常见总线

    一. 总线概念 所谓总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道.总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,可以将计算机系统内的多种设备 ...