我个人学习新技术的话,会去官网,官网的东西相比一些别人博客上面写的更加权威一些,也相对全面一些,不过有一个缺点是这些技术官网大多是英文的,当然谷歌是带有翻译功能的,平时碎片化时间学学英语也是有必要的。
impala我们老大已经搭建好了环境,搭建环境的话也不是那么容易的一件事。
Impala是hadoop上交互式MPP SQL引擎, 也是目前性能较好的开源SQL-on-hadoop方案。 如下图所示, impala性能超过SparkSQL、 Presto、 Hive。
impala与hadoop生态结合紧密
(1) HDFS是impala最主要的数据源。 除此之外, impala也支持HBase,甚至支持S3存储。
(2) impala表定义存储在hive metastore中, 支持读取hive表定义。
(3) 支持Parquet, RCFile, sequence file, txt等常见文件格式, 其中Parquet是列存格式,性能最佳。
(4) 集成YARN。
对impala的工作原理可以参考
http://www.mamicode.com/info-detail-1694415.html
impala官网有相应的PDF可以下载下来进行学习
Impala的架构如下
可以看出impala底层是不走mapreduce的所以相对于hive而言,impala的查询要比hive快。
这里有一个相关系统对比的图示:
对于impala现在研究的并不深,只是初步认识
Impala数据类型有:
BIGINT:此数据类型存储数值,此数据类型的范围为-9223372036854775808至9223372036854775807.此数据类型在create table和alter table语句中使用。
BOOLEAN:此数据类型只存储true或false值,它用于create table语句的列定义。
CHAR:此数据类型是固定长度的存储,它用空格填充,可以存储最大长度为255
DECIMAL:此数据类型用于存储十进制值,并在create table和alter table语句中使用。
DOUBLE:此数据类型用于存储正值或负值4.94065645841246544e-324d -1.79769313486231570e + 308范围内的浮点值。
FLOAT:此数据类型用于存储正或负1.40129846432481707e-45 .. 3.40282346638528860e + 38范围内的单精度浮点值数据类型
INT:此数据类型用于存储4字节整数,范围从-2147483648到2147483647。
SMALLINT:此数据类型用于存储2字节整数,范围为-32768到32767。
STRING:这用于存储字符串值
TIMESTAMP:此数据类型用于表示时间中的点
TINYINT:此数据类型用于存储1字节整数值,范围为-128到127。
VARCHAR:此数据类型用于存储可变长度字符,最大长度为65,535。
ARRAY:这是一个复杂的数据类型,它用于存储可变数量的有序元素。
Map:这是一个复杂的数据类型,它用于存储可变数量的键值对。
Struct:这是一种复杂的数据类型,用于表示单个项目的多个字段。
启动impala客户端:impala-shell
这样就连接到了服务器:
就可以访问所连接服务器上的数据
Sql查询语法跟hive里面差不多
Impala的连接器主要有:
关于impala相关的教程:官网上有相应的教程
http://impala.apache.org/docs/build3x/html/topics/impala_tutorial.html
今天就先到这儿。