impala能够经过访问数据的统计信息对复杂和多表的查询作更好的优化,impala使用这些信息帮助一个work进行并行和分布式查询。数据库
Impala查询计划器能够使用有关整个表和分区的统计信息。 此信息包括物理特性,例如行数,数据文件数,数据文件的总大小和文件格式。 对于分区表,每一个分区计算数字,并计为整个表的总计。 此元数据存储在Metastore数据库中,而且能够由Impala或Hive进行更新。 若是数字不可用,则值-1用做占位符。 一些数字,例如数据文件的数量和总大小,老是保持最新的,由于它们能够被计算得便宜,做为收集HDFS块元数据的一部分。bash
SHOW TABLE STATS table_name;
ps:示例显示了未分区的Parquet表的表统计信息。 文件的数量和大小的值始终可用。 最初,行数是未知的,由于它须要对整个表进行潜在的昂贵扫描,所以该值显示为-1。 COMPUTE STATS语句填充任何未知的表统计信息值。分布式
COMPUTE STATS table_name;
再次查看优化
当元数据在元数据库数据库中可用时,Impala查询计划器能够使用有关各个列的统计信息。此方法对于在链接查询中跨表比较的列最有价值,以帮助估计查询将从每一个表中检索多少行。这些统计信息对于使用EXISTS()或IN()运算符的关联子查询也很重要,这些运算符在内部以链接查询的方式处理spa
show column stats table_name; COMPUTE STATS table_name;
示例显示了未分区的Parquet表的列统计信息。某些类型的最大和平均大小的值老是可用的,由于这些数字对于数字和其余固定大小类型是常数。最初,不一样值的数量是未知的,由于它须要对整个表进行潜在的昂贵扫描,所以该值显示为-1。这一样适用于可变大小类型的最大和平均大小,例如STRING。 COMPUTE STATS语句填充大多数未知列统计信息值。 (它不记录NULL值的数量,由于当前Impala不会使用该数字进行查询优化。)code
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;