Impala Shell 和 Impala SQL
1、Impala 外部 Shell
Impala外部Shell 就是不进入Impala内部,直接执行的ImpalaShell 例如通过外部Shell查看Impala帮助可以使用: $ impala-shell -h 这样就可以查看了;
再例如显示一个SQL语句的执行计划: $ impala-shell -p select count(*) from t_stu
下面是Impala的外部Shell的一些参数:
• -h (--help) 帮助
• -v (--version) 查询版本信息
• -V (--verbose) 启用详细输出
• --quiet 关闭详细输出
• -p 显示执行计划
• -i hostname (--impalad=hostname) 指定连接主机格式hostname:port 默认端口21000
• -r(--refresh_after_connect)刷新所有元数据
• -q query (--query=query) 从命令行执行查询,不进入impala-shell
• -d default_db (--database=default_db) 指定数据库
• -B(--delimited)去格式化输出
• --output_delimiter=character 指定分隔符
• --print_header 打印列名
• -f query_file(--query_file=query_file)执行查询文件,以分号分隔
• -o filename (--output_file filename) 结果输出到指定文件
• -c 查询执行失败时继续执行
• -k (--kerberos) 使用kerberos安全加密方式运行impala-shell
• -l 启用LDAP认证
• -u 启用LDAP时,指定用户名
2、Impala内部Shell
使用命令 $ impala-sehll 可以进入impala,在这里可以像Hive一样正常使用SQL,而且还有一些内部的impala命令:
• help
• connect <hostname:port> 连接主机,默认端口21000
• refresh <tablename> 增量刷新元数据库
• invalidate metadata 全量刷新元数据库
• explain <sql> 显示查询执行计划、步骤信息
• set explain_level 设置显示级别(0,1,2,3)
• shell <shell> 不退出impala-shell执行Linux命令
• profile (查询完成后执行) 查询最近一次查询的底层信息
例:查看帮助可以直接使用: help ,要刷新一个表的增量元数据可以使用 refresh t_stu;
3、Impala 的监护管理
可以通过下面的链接来访问Impala的监护管理页面:
• 查看StateStore
– http://node1:25020/
• 查看Catalog
– http://node1:25010/
4、Impala 存储&&分区
下面是Impala对文件的格式及压缩类型的支持
• 添加分区方式
– 1、partitioned by 创建表时,添加该字段指定分区列表
– 2、使用alter table 进行分区的添加和删除操作
1
2
3
4
|
create table t_person(id int , name string, age int ) partitioned by (type string);
alter table t_person add partition (sex=‘man ');
alter table t_person drop partition (sex=‘man' );
alter table t_person drop partition (sex=‘man‘,type=‘boss’);
|
• 分区内添加数据
1
2
|
insert into t_person partition (type= 'boss' ) values (1,’zhangsan’,18),(2,’lisi’,23)
insert into t_person partition (type= 'coder' ) values (3,wangwu’,22),(4,’zhaoliu’,28),(5,’tianqi’,24)
|
• 查询指定分区数据
1
|
select id, name from t_person where type=‘coder
|
5、Impala SQL VS HiveQL
下面是Impala对基础数据类型和扩展数据类型的支持
• 此外,Impala不支持HiveQL以下特性:
– 可扩展机制,例如:TRANSFORM、自定义文件格式、自定义SerDes
– XML、JSON函数
– 某些聚合函数:
• covar_pop, covar_samp, corr, percentile, percentile_approx,histogram_numeric, collect_set
• Impala仅支持:AVG,COUNT,MAX,MIN,SUM
– 多Distinct查询
– HDF、UDAF
– 以下语句:
ANALYZE TABLE (Impala:COMPUTE STATS)、DESCRIBE COLUMN、
DESCRIBE DATABASE、EXPORT TABLE、IMPORT TABLE、SHOW
TABLE EXTENDED、SHOW INDEXES、SHOW COLUMNS
6、Impala SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
--创建数据库
create database db1;
use db1;
-- 删除数据库
use default ;
drop database db1;
--创建表(内部表)
-- 默认方式创建表:
create table t_person1(
id int ,
name string)
--指定存储方式:
create table t_person2(
id int ,
name string
)
row format delimited
fields terminated by ‘\0’ (impala1.3.1版本以上支持‘\0’ )
stored as textfile;
--其他方式创建内部表
--使用现有表结构:
create table tab_3 like tab_1;
--指定文本表字段分隔符:
alter table tab_3 set serdeproperties(‘serialization.format’=‘,’,’field.delim’=‘,’);
--插入数据
-- 直接插入值方式:
insert into t_person values (1,hex(‘hello world’));
--从其他表插入数据:
insert (overwrite) into tab_3 select * form tab_2 ;
--批量导入文件方式方式:
load data local inpath ‘/xxx/xxx’ into table tab_1;
--创建表(外部表)
--默认方式创建表:
create external table tab_p1(
id int ,
name string
)
location ‘/ user /xxx.txt’
--指定存储方式:
create external table tab_p2 like parquet_tab
‘/ user /xxx/xxx/1.dat’
partition ( year int , month tinyint, day tinyint)
location ‘/ user /xxx/xxx’
stored as parquet;
--视图
--创建视图:
create view v1 as select count (id) as total from tab_3 ;
--查询视图:
select * from v1;
--查看视图定义:
describe formatted v1
|
• 注意:
– 1)不能向impala的视图进行插入操作
– 2)insert 表可以来自视图
• 数据文件处理
– 加载数据:
• 1、insert语句:插入数据时每条数据产生一个数据文件,不建议用此方式加载批量数据
• 2、load data方式:再进行批量插入时使用这种方式比较合适
• 3、来自中间表:此种方式使用于从一个小文件较多的大表中读取文件并写入新的表生产少量的数据文件。也可以通过此种方式进行格式转换。
– 空值处理:
• impala将“\n”表示为NULL,在结合sqoop使用是注意做相应的空字段过滤,
• 也可以使用以下方式进行处理:
alter table name set tblproperties(“serialization.null.format”=“null”)
Impala Shell 和 Impala SQL相关推荐
- Impala介绍,Impala架构,Impala安装,impala Shell ,分区创建,refresh,load数据,获取数据的元数据
1 Impala Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBASE中的PB级大数据.已有的Hive系统虽然也提供了SQL语义, ...
- Apache Kudu 与 Impala Shell 的结合使用文档(创建表、删、改、查)
Kudu与Apache Impala紧密集成,允许您在Impala使用Impala的SQL语法从Kudu去做 插入,查询,更新和删除数据,作为使用Kudu API 构建自定义Kudu应用程序的替代方法 ...
- impala shell
目录 一.impala shell内部命令 1.进入impala交互命令行 2.内部命令(同sql操作类似) 3.退出impala 4.连接到指定的机器impalad上去执行 5.增量刷新 6.全量刷 ...
- Impala shell命令
转载http://blog.csdn.net/shenfuli/article/details/49075003 本文主要介绍Impala shell命令 1.-h 外能帮助 格式:$ impala- ...
- Impala Shell常用命令行选项与常用命令
常用命令行选项 -h或–help 显示帮助信息. [root@node2 ~]# impala-shell -h -i或–impalad 连接到指定的impalad节点. [root@node2 ~] ...
- impala——shell命令参数
外部命令 所谓的外部命令指的是不需要进入到impala-shell交互命令行当中即可执行的命令参数.impala-shell后面执行的时候可以带很多参数.你可以在启动 impala-shell 时设置 ...
- beeline执行sql文件_【SparkSQL】介绍、与Hive整合、Spark的th/beeline/jdbc/thriftserve2、shell方式使用SQL...
目录 一.Spark SQL介绍 SQL on Hadoop框架: 1)Spark SQL 2)Hive 3)Impala 4)Phoenix Spark SQL是用来处理离线数据的,他的编程模型是D ...
- 记录python使用pymysql连接mysql数据库,使用impyla、ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅)
记录python使用pymysql连接mysql数据库,使用impyla.ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅) 连接mysql ...
- 基于sparksql调用shell脚本运行SQL
[Author]: kwu 基于sparksql调用shell脚本运行SQL,sparksql提供了类似hive中的 -e , -f ,-i的选项 1.定时调用脚本 #!/bin/sh # uplo ...
最新文章
- 一项横断面人群研究中比较放射学阴性的中轴脊柱关节炎患者与强制性脊柱炎患者之间的差别...
- 解决git本地仓库与远程仓库关联出现 failed to push some refs to git的问题
- python是基于什么语言开发-2.python是什么编程语言。
- vijos1774:机器翻译
- 开博首发2017年1月13日开博大吉
- Android—常用组件练习
- 读书笔记之《程序员必读的职业规划书》
- mysql sqlstate 08001_关于Toad连接DB2的sqlstate=08001错误
- Seata多微服务互相调用_全局分布式事物使用案例_Account-Module 账户微服务说明---微服务升级_SpringCloud Alibaba工作笔记0064
- Hibernate---简介
- 10分钟图解ASP.NET AJAX 1.0 RC开发
- hashmap在jdk7和8线程不安全的区别
- 算法竞赛入门【码蹄集新手村600题】(MT1351-1400)
- MS Office/Visio 2003 sp1 下载
- SAS数据分析之聚类分析
- getParameter和getParameterValues
- 一个北京妞儿写的经典的话,太现实了!
- 计算某天是星期几-泽勒算法
- 服务器-----tomact服务器工作原理及其工作报错
- array_unshift php,php array_unshift函数怎么用?