开发手册 欢迎您!
软件开发者资料库

Impala - 概述

Impala概述 - 从概述,环境,体系结构,Shell,查询语言基础知识,创建数据库,删除数据库,选择数据库,创建表语句,插入语句,选择语句,描述语句,更改表,删除a,了解Impala表,截断表,显示表,创建视图,更改视图,删除视图,按条件排序,按条款分组,具有条款,限制条款,抵消条款,联盟条款,条款,不同运营商。

什么是Impala?

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

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

为什么选择Impala?

Impala结合了SQL支持和传统分析的多用户性能数据库具有Apache Hadoop的可扩展性和灵活性,利用HDFS,HBase,Metastore,YARN和Sentry等标准组件.

  • 使用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,您可以在不了解Java(MapReduce作业)的情况下访问存储在HDFS,HBase和Amazon s3中的数据.您可以使用SQL查询的基本概念来访问它们.

  • 要在业务工具中编写查询,数据必须通过复杂的提取 - 转换 - 加载(ETL)循环.但是,使用Impala,此过程会缩短.耗时的加载阶段&使用诸如 探索性数据分析和新技术等新技术克服重组.数据发现 使流程更快.

  • Impala开创性地使用Parquet文件格式,这是一种柱状存储布局,针对数据仓库场景中典型的大规模查询进行了优化.

Impala的功能

给定以下是cloudera Impala : 的功能;

  • Impala可在Apache许可下作为开源免费提供.

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

  • 您可以使用类似SQL的查询使用Impala访问数据.

  • Impala可以更快地访问HDFS中的数据其他SQL引擎.

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

  • 您可以将Impala与Table等商业智能工具集成au,Pentaho,Micro策略和缩放数据.

  • Impala支持各种文件格式,如LZO,Sequence File,Avro,RCFile和Parquet.

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

关系数据库和Impala

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

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

Hive,Hbase和Impala

虽然Cloudera Impala使用与Hive相同的查询语言,Metastore和用户界面,但在某些方面它与Hive和HBase不同.下表显示了HBase,Hive和Impala之间的比较分析.

HBaseHiveImpala
HBase是基于Apache Hadoop的宽列商店数据库.它使用BigTable的概念.Hive是一个数据仓库软件.使用它,我们可以访问和管理基于Hadoop的大型分布式数据集.Impala是一个管理,分析存储在Hadoop上的数据的工具.
HBase的数据模型是宽列存储.Hive遵循关系模型.Impala遵循关系模型.
HBase是使用Java语言开发的.Hive是使用Java语言开发的.Impala是使用C ++开发的.
HBase的数据模型是无架构.Hive的数据模型是基于模式的.数据模型Impala是基于Schema的.
HBase提供Java,RESTful和Thrift API's.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属性.

  • 使用分片进行分区.

Impala的缺点

使用Impala的一些缺点如下:<

  • Impala不提供对序列化和反序列化的任何支持.

  • Impala只能读取文本文件,而不能读取自定义二进制文件.

  • 每当新记录/文件被添加到HDFS的数据目录中时,表格都需要刷新.