IMPALA常用命令COMPUTE STATS简述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IMPALA常用命令COMPUTE STATS简述相关的知识,希望对你有一定的参考价值。

参考技术A 前面介绍了HIVE的 ANALYZE TABLE命令 , IMPALA也提供了一个类似的命令叫COMPUTE STATS。这篇文章就是讲讲这个命令。

IMPALA的 COMPUTE STATS 是做啥的

和HIVE的ANALYZE TABLE类似,这个命令主要也是为了优化查询,加快查询的速度。本来IMPALA是依靠HIVE的ANALYZE TABLE的,但是这个命令不是很好用同时不稳定,所以IMPALA自己实现了个命令完成相同功能。

语法

例子

效果如下,没有用过COMPUTE INCREMENTAL STATS的分区是 -1

执行 COMPUTE STATS dw_wy_video_kqi_cell_hourly 语句之前的效果,可以看到有很多分区的数据并未统计

执行 COMPUTE STATS dw_wy_video_kqi_cell_hourly 后的效果

Impala系列: Impala常用的功能函数

--=======================
查看内置的函数
--=======================
hive 不需要进入什么内置数据库, 即可使用 show functions 命令列出所有内置的函数.
show functions; -- hive仅显示函数的名称, 没有参数和返回值信息.
desc function function_name ; -- 该命令能显示函数的具体用途.


impala 需要先进入 _impala_builtins 数据库, 才能使用 show functions 命令列出所有内置的函数.
use _impala_builtins;
show functions;
implala 的 show functions 会显示完整的函数签名信息.


--=======================
几个常用的功能函数
--=======================
cast(expr AS type), 类型转换函数, 比如将number转成string, 或相反.
typeof(), 该函数可以用来检查其他函数返回值类型, hive 没有对应的函数.
version(), 返回 impalad 的版本.
pid(), client 连接到 impalad 的 pid.
user(), 返回连接连接 impalad 的 linux username.
effective_user(), 一般情况下和和 user() 结果相同, 如果启用了 delegation, effective_user() 返回代理 user id.
uuid(), 返回一个唯一的 guid 值.
impala 没有 sequence 概念, 但我们可以使用 concat(cast(unix_timestamp() as string),uuid()), 前面加上了时间戳, 可以保证大概的顺序.

 

--=======================
常用条件函数
--=======================
coalesce(type v1, type v2, ...) --返回第一个非null的参数
decode() -- 同Oracle的decode()函数
if(boolean condition, type ifTrue, type ifFalseOrNull) --如果第一参数为true,结果为第2个参数, 否则为第三个参数.
ifnull(type a, type ifNull) -- 同nvl().
isnull(type a, type ifNull) --同nvl().
nullif(expr1,expr2) -- 如果两参数相等, 返回null.
nullifzero(numeric_expr) --如果参数为0, 返回null.
nullvalue(expression) --如果为null, 返回true.
nvl(type a, type ifNull) --如果第一个参数为null, 结果为第二个参数, 否则为第一个参数.
nvl2(type a, type ifNull, type ifNotNull) --如果第一个参数为null, 结果为第2个参数, 否则为第3个参数.
zeroifnull(numeric_expr)
nonnullvalue(expression)
isfalse(boolean)
isnotfalse(boolean)
isnottrue(boolean)
istrue(boolean)

以上是关于IMPALA常用命令COMPUTE STATS简述的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不应该在 Impala 中的“COMPUTE STATS”和“COMPUTE INCREMENTAL STATS”之间切换?

Impala--查询优化COMPUTE STATS指令

HIVE常用命令之ANALYZE TABLE命令简述

spark、hive、impala、hdfs的常用命令

Impala系列: Impala常用的功能函数

七十三Impala的常用操作