- 表具体说明
- Impala - 创建表语句
- Impala - 插入语句
- Impala - 选择语句
- Impala - 描述语句
- Impala - 更改表
- Impala - 删除一个表
- Impala - 截断表
- Impala - 显示表
- Impala - 创建视图
- Impala - 改变视图
- Impala - 放下视图
- Impala - 条款
- Impala - 按条款排序
- Impala - Group By 子句
- Impala - 拥有子句
- Impala - 限制条款
- Impala - 抵消条款
- Impala - 联合条款
- Impala - 带子句
- Impala - 独特的运算符
- 黑斑羚有用的资源
- Impala - 快速指南
- Impala - 有用的资源
- Impala - 讨论
Impala - 概述
什么是黑斑羚?
Impala 是一个 MPP(大规模并行处理)SQL 查询引擎,用于处理存储在 Hadoop 集群中的大量数据。它是一个用 C++ 和 Java 编写的开源软件。与其他 Hadoop SQL 引擎相比,它提供了高性能和低延迟。
换句话说,Impala 是性能最高的 SQL 引擎(提供类似 RDBMS 的体验),它提供了访问存储在 Hadoop 分布式文件系统中的数据的最快方式。
为什么是黑斑羚?
Impala 通过利用 HDFS、HBase、Metastore、YARN 和 Sentry 等标准组件,将传统分析数据库的 SQL 支持和多用户性能与 Apache Hadoop 的可扩展性和灵活性相结合。
与 Hive 等其他 SQL 引擎相比,使用 Impala,用户可以使用 SQL 查询更快地与 HDFS 或 HBase 进行通信。
Impala 可以读取 Hadoop 使用的几乎所有文件格式,如 Parquet、Avro、RCFile。
Impala 使用与 Apache Hive 相同的元数据、SQL 语法 (Hive SQL)、ODBC 驱动程序和用户界面 (Hue Beeswax),为批量或实时查询提供熟悉且统一的平台。
与 Apache Hive 不同,Impala 并不基于 MapReduce 算法。它实现了基于守护进程的分布式体系结构,守护进程负责在同一台计算机上运行的查询执行的所有方面。
因此,它减少了利用 MapReduce 的延迟,这使得 Impala 比 Apache Hive 更快。
黑斑羚的优点
以下列出了 Cloudera Impala 的一些值得注意的优势。
使用 impala,您可以使用传统 SQL 知识以闪电般的速度处理存储在 HDFS 中的数据。
由于数据处理是在数据所在的位置(在 Hadoop 集群上)进行的,因此在使用 Impala 时,存储在 Hadoop 上的数据不需要数据转换和数据移动。
使用 Impala,您可以访问存储在 HDFS、HBase 和 Amazon s3 中的数据,而无需了解 Java(MapReduce 作业)。您可以使用 SQL 查询的基本概念来访问它们。
要在业务工具中编写查询,数据必须经历复杂的提取-转换-加载 (ETL) 周期。但是,有了 Impala,这个过程就缩短了。探索性数据分析和数据发现等新技术克服了加载和重组的耗时阶段,从而加快了流程。
Impala 率先使用 Parquet 文件格式,这是一种列式存储布局,针对数据仓库场景中典型的大规模查询进行了优化。
黑斑羚的特点
以下是 cloudera Impala 的功能 -
Impala 可在 Apache 许可下作为开源免费提供。
Impala 支持内存中数据处理,即它无需移动数据即可访问/分析存储在 Hadoop 数据节点上的数据。
您可以使用 Impala 使用类似 SQL 的查询来访问数据。
与其他 SQL 引擎相比,Impala 可以更快地访问 HDFS 中的数据。
使用 Impala,您可以将数据存储在 HDFS、Apache HBase 和 Amazon s3 等存储系统中。
您可以将 Impala 与 Tableau、Pentaho、微观策略和 Zoom 数据等商业智能工具集成。
Impala 支持各种文件格式,例如 LZO、序列文件、Avro、RCFile 和 Parquet。
Impala 使用 Apache Hive 中的元数据、ODBC 驱动程序和 SQL 语法。
关系数据库和 Impala
Impala 使用类似于 SQL 和 HiveQL 的查询语言。下表描述了 SQL 和 Impala 查询语言之间的一些主要差异。
黑斑羚 | 关系数据库 |
---|---|
Impala 使用类似于 SQL 的查询语言,类似于 HiveQL。 | 关系数据库使用SQL语言。 |
在 Impala 中,您无法更新或删除单个记录。 | 在关系数据库中,可以更新或删除单个记录。 |
Impala 不支持事务。 | 关系数据库支持事务。 |
Impala 不支持索引。 | 关系数据库支持索引。 |
Impala 存储和管理大量数据(PB)。 | 与 Impala 相比,关系数据库处理的数据量较小(TB)。 |
Hive、Hbase 和 Impala
尽管 Cloudera Impala 使用与 Hive 相同的查询语言、元存储和用户界面,但它在某些方面与 Hive 和 HBase 有所不同。下表给出了HBase、Hive和Impala之间的对比分析。
数据库 | 蜂巢 | 黑斑羚 |
---|---|---|
HBase 是基于 Apache Hadoop 的宽列存储数据库。它使用 BigTable 的概念。 | Hive 是一个数据仓库软件。使用它,我们可以访问和管理基于 Hadoop 构建的大型分布式数据集。 | Impala 是一个用于管理、分析存储在 Hadoop 上的数据的工具。 |
HBase的数据模型是宽列存储。 | Hive 遵循关系模型。 | Impala 遵循关系模型。 |
HBase是使用Java语言开发的。 | Hive是使用Java语言开发的。 | Impala 使用 C++ 开发。 |
HBase的数据模型是无模式的。 | Hive的数据模型是基于Schema的。 | Impala 的数据模型是基于 Schema 的。 |
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 属性,例如持久性和并发性。
使用分片进行分区。
Impala 的缺点
使用 Impala 的一些缺点如下:
- Impala 不提供任何对序列化和反序列化的支持。
- Impala 只能读取文本文件,不能读取自定义二进制文件。
- 每当新记录/文件添加到 HDFS 中的数据目录时,就需要刷新表。