hive 統計分析相關ANALYZE

1.前言

本文大部分是對於官方問的那個的理解,小部分是自己的測試感受
官方文檔地址

https://cwiki.apache.org/confluence/display/Hive/StatsDev

ANALYZE 這個命令接觸的不多,今天專門研究學習下

2、目的

見名知意,它的目的就是爲了統計和分析的作用,它將統計的信息存儲到metastore中,後續再來查詢的時候就不需要在執行查詢計算,而是直接獲取即可

3、範圍

統計信息支持新建的和現有的表,支持分區表和普通表的統計信息 以及列統計信息

4、ANALYZE相關

1、表統計

表統計的信息包括:行數,文件數,大小(以字節爲單位)

  • 1、hive 是默認自動收集統計信息,由hive.stats.autogather 配置參數決定,默認是true。但是對於load data 方式是不支持的。(想一下也可以知道,他應該是在計算的時候去計算出這些統計信息)

-注意:這個在hive中是自動收集的。在sparkThriftserver中並不適用,雖然用的hive的元數據信息,但是它們兩個在這方面不相通。

  • 2、手動收集。我們這邊也可以指定手動收集,手動收集的指令爲

ANALYZE TABLE [db_name.]tablename [PARTITION(partcol1[=val1], partcol2[=val2], …)]
COMPUTE STATISTICS
[FOR COLUMNS] – (Note: Hive 0.10.0 and later.)
[CACHE METADATA] – (Note: Hive 2.1.0 and later.)
[NOSCAN];

其中如果指定了NOSCAN的話,該命令將不會去掃描文件,僅會收集文件數和文件大小的信息

  • 3、查看錶的統計信息

desc formatted tableName

2、列統計

相關文檔

https://cwiki.apache.org/confluence/display/Hive/Column+Statistics+in+Hive

  • 1、在表信息的基礎上進行了擴展,可以對列信息進行統計,命令爲

analyze table t [partition p] compute statistics for [columns c,…];

  • 2、查看列信息統計的命令爲

describe formatted [table_name] [column_name];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章