高速查詢hive資料倉儲表中的總條數

2021-09-08 12:47:14 字數 1158 閱讀 6934

author: kwu

高速查詢hive資料倉儲中的條數。在查詢hive表的條數,通常使用count(*)。可是資料量大的時候,mr跑count(*)往往須要幾分鐘的時間。

1、傳統方式獲得總條數例如以下:

執行時間為91.208s

2、與關係庫一樣hive表也能夠通過查詢元資料來得到總條數:

select d.name,t.tbl_name,t.tbl_id,p.part_id,p.part_name,a.param_value 

from tbls t

left join dbs d

on t.db_id = d.db_id

left join partitions p

on t.tbl_id = p.tbl_id

left join partition_params a

on p.part_id=a.part_id

where t.tbl_name='tracklog' and d.name='ods' and a.param_key='numrows';

select format(sum(a.param_value),0)

from tbls t

left join dbs d

on t.db_id = d.db_id

left join partitions p

on t.tbl_id = p.tbl_id

left join partition_params a

on p.part_id=a.part_id

where t.tbl_name='tracklog' and d.name='ods' and a.param_key='numrows';

僅僅需0.071s就可以返回

3、說明通過hive元資料的查詢總條數,僅僅適用於有partition的表,我們正式表基本都是有partition的,僅僅有部分小表。小於1萬條的沒有partition,這樣的小表count(*)是很快的。

資料倉儲 Hive的調優

hive的調優 第乙個調優 fetch抓取,能夠避免使用mr的,就盡量不要用mr,因為mr太慢了 set hive.fetch.task.conversion more 表示我們的全域性查詢,字段查詢,limit查詢都不走mr 這個屬性配置有三個取值 more minimal none 如果配置成n...

資料倉儲以及Hive的使用總結

1 資料倉儲 下面是olap的大致過程 2 hive資料倉儲 1 功能 2 特點 3 資料結構 4 體系結構 5 執行原理 直譯器 編譯器 優化器完成hql查詢語句從詞法分析 語法分析 編譯優化以及查詢計畫生成 查詢計畫進入hdfs mapreduce執行 6 區別於資料庫 查詢語言為hql類似sq...

Hive 資料倉儲 資料型別的選擇

hive 有很多的基礎資料型別,在實際構建數倉的這麼多資料型別,我們該如何選擇呢?如果你的公司足夠大,那麼建議參照以下幾條建議 1 hive 中double型別需要慎用,hive 中double型別存在失真。例如 原始資料是 10000,hive 中10000 可能為10000.0001 2 為了浮...