impala查询语句_Impala SQL

本文介绍了Impala SQL与HiveQL的区别,包括Impala不支持的特性,并提供了Impala中创建数据库、表、视图,插入数据以及处理数据文件的方法。此外,还强调了Impala对空值的特殊处理和视图的限制。
摘要由CSDN通过智能技术生成

不多说,直接上干货!

其实,跟hive差不多,大家可以去参考我写的hive学习概念系列。

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

Impala SQL

--创建数据库

create database db1;

use db1;--删除数据库

usedefault;

drop database db1;--创建表(内部表)--默认方式创建表:

create table t_person1(

idint,

namestring)--指定存储方式:

create table t_person2(

idint,

namestring)

row format delimited

fields terminated by ‘\0’ (impala1.3.1版本以上支持‘\0’ )

storedastextfile;--其他方式创建内部表--使用现有表结构:

create table tab_3 like tab_1;--指定文本表字段分隔符:

alter table tab_3set serdeproperties(‘serialization.format’=‘,’,’field.delim’=‘,’);--插入数据--直接插入值方式:

insert into t_person values (1,hex(‘hello world’));--从其他表插入数据:

insert (overwrite) into tab_3select *form tab_2 ;--批量导入文件方式方式:

load data local inpath ‘/xxx/xxx’ into table tab_1;--创建表(外部表)--默认方式创建表:

create external table tab_p1(

idint,

namestring)

location ‘/user/xxx.txt’--指定存储方式:

create external table tab_p2 like parquet_tab

‘/user/xxx/xxx/1.dat’

partition (yearint, month tinyint, day tinyint)

location ‘/user/xxx/xxx’

storedasparquet;--视图--创建视图:

create view v1as select count(id) as total fromtab_3 ;--查询视图:select * fromv1;--查看视图定义:

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”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值