介绍
impala可以通过访问数据的统计信息对复杂和多表的查询做更好的优化,impala使用这些信息帮助一个work进行并行和分布式查询。
Impala查询计划器可以使用有关整个表和分区的统计信息。 此信息包括物理特性,例如行数,数据文件数,数据文件的总大小和文件格式。 对于分区表,每个分区计算数字,并计为整个表的总计。 此元数据存储在Metastore数据库中,并且可以由Impala或Hive进行更新。 如果数字不可用,则值-1用作占位符。 一些数字,例如数据文件的数量和总大小,总是保持最新的,因为它们可以被计算得便宜,作为收集HDFS块元数据的一部分。
Table Statistics
SHOW TABLE STATS table_name;
ps:示例显示了未分区的Parquet表的表统计信息。 文件的数量和大小的值始终可用。 最初,行数是未知的,因为它需要对整个表进行潜在的昂贵扫描,因此该值显示为-1。 COMPUTE STATS语句填充任何未知的表统计信息值。
COMPUTE STATS table_name;
再次查看
当元数据在元数据库数据库中可用时,Impala查询计划器可以使用有关各个列的统计信息。此方法对于在连接查询中跨表比较的列最有价值,以帮助估计查询将从每个表中检索多少行。这些统计信息对于使用EXISTS()或IN()运算符的关联子查询也很重要,这些运算符在内部以连接查询的方式处理
Column Statistics
show column stats table_name;
COMPUTE STATS table_name;
示例显示了未分区的Parquet表的列统计信息。某些类型的最大和平均大小的值总是可用的,因为这些数字对于数字和其他固定大小类型是常数。最初,不同值的数量是未知的,因为它需要对整个表进行潜在的昂贵扫描,因此该值显示为-1。这同样适用于可变大小类型的最大和平均大小,例如STRING。 COMPUTE STATS语句填充大多数未知列统计信息值。 (它不记录NULL值的数量,因为当前Impala不会使用该数字进行查询优化。)
Show集合
SHOW DATABASES [[LIKE] 'pattern']
SHOW SCHEMAS [[LIKE] 'pattern'] - an alias for SHOW DATABASES
SHOW TABLES [IN database_name] [[LIKE] 'pattern']
SHOW [AGGREGATE | ANALYTIC] FUNCTIONS [IN database_name] [[LIKE] 'pattern']
SHOW CREATE TABLE [database_name].table_name
SHOW TABLE STATS [database_name.]table_name
SHOW COLUMN STATS [database_name.]table_name
SHOW PARTITIONS [database_name.]table_name
SHOW ROLES
SHOW CURRENT ROLES
SHOW ROLE GRANT GROUP group_name
SHOW GRANT ROLE role_name
刷新元数据
invalidate metadata;