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相关推荐

  1. Impala介绍,Impala架构,Impala安装,impala Shell ,分区创建,refresh,load数据,获取数据的元数据

    1 Impala Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBASE中的PB级大数据.已有的Hive系统虽然也提供了SQL语义, ...

  2. Apache Kudu 与 Impala Shell 的结合使用文档(创建表、删、改、查)

    Kudu与Apache Impala紧密集成,允许您在Impala使用Impala的SQL语法从Kudu去做 插入,查询,更新和删除数据,作为使用Kudu API 构建自定义Kudu应用程序的替代方法 ...

  3. impala shell

    目录 一.impala shell内部命令 1.进入impala交互命令行 2.内部命令(同sql操作类似) 3.退出impala 4.连接到指定的机器impalad上去执行 5.增量刷新 6.全量刷 ...

  4. Impala shell命令

    转载http://blog.csdn.net/shenfuli/article/details/49075003 本文主要介绍Impala shell命令 1.-h 外能帮助 格式:$ impala- ...

  5. Impala Shell常用命令行选项与常用命令

    常用命令行选项 -h或–help 显示帮助信息. [root@node2 ~]# impala-shell -h -i或–impalad 连接到指定的impalad节点. [root@node2 ~] ...

  6. impala——shell命令参数

    外部命令 所谓的外部命令指的是不需要进入到impala-shell交互命令行当中即可执行的命令参数.impala-shell后面执行的时候可以带很多参数.你可以在启动 impala-shell 时设置 ...

  7. 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 ...

  8. 记录python使用pymysql连接mysql数据库,使用impyla、ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅)

    记录python使用pymysql连接mysql数据库,使用impyla.ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅) 连接mysql ...

  9. 基于sparksql调用shell脚本运行SQL

    [Author]: kwu 基于sparksql调用shell脚本运行SQL,sparksql提供了类似hive中的 -e  , -f ,-i的选项 1.定时调用脚本 #!/bin/sh # uplo ...

最新文章

  1. 一项横断面人群研究中比较放射学阴性的中轴脊柱关节炎患者与强制性脊柱炎患者之间的差别...
  2. 解决git本地仓库与远程仓库关联出现 failed to push some refs to git的问题
  3. python是基于什么语言开发-2.python是什么编程语言。
  4. vijos1774:机器翻译
  5. 开博首发2017年1月13日开博大吉
  6. Android—常用组件练习
  7. 读书笔记之《程序员必读的职业规划书》
  8. mysql sqlstate 08001_关于Toad连接DB2的sqlstate=08001错误
  9. Seata多微服务互相调用_全局分布式事物使用案例_Account-Module 账户微服务说明---微服务升级_SpringCloud Alibaba工作笔记0064
  10. Hibernate---简介
  11. 10分钟图解ASP.NET AJAX 1.0 RC开发
  12. hashmap在jdk7和8线程不安全的区别
  13. 算法竞赛入门【码蹄集新手村600题】(MT1351-1400)
  14. MS Office/Visio 2003 sp1 下载
  15. SAS数据分析之聚类分析
  16. getParameter和getParameterValues
  17. 一个北京妞儿写的经典的话,太现实了!
  18. 计算某天是星期几-泽勒算法
  19. 服务器-----tomact服务器工作原理及其工作报错
  20. array_unshift php,php array_unshift函数怎么用?

热门文章

  1. linux:nohup命令用法
  2. 点分治+CDQ分治+整体二分全纪录
  3. 按址索骥,直捣黄龙-指针法在字符串str中每个ch2字符后都添加一个ch3字符
  4. Hbase命令行语句
  5. [GYCTF2020]Node Game
  6. MATLAB希尔伯特矩阵和逆希尔伯特矩阵
  7. 24时区来源,CST,CET,UTC,DST,Unix时间戳概述、关系、转换
  8. 前端面试查漏补缺--(三) 跨域及常见解决办法
  9. 【技术推荐】WebLogic 反序列化漏洞深入分析
  10. Fortran和C/C++混合编程学习笔记(一):编译链接