hive查詢問題
快速查詢hive資料倉儲表中的總條數
需要連線hive的元資料(mysql)
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='dwi_evt_blog_dpi_keywords_info_msk_d' and d.name='dwi_m' and a.param_key='numrows';
快速從hive表裡取資料的辦法
select * from dwi_evt_blog_dpi_keywords_info_msk_d limit 10
使用簡單的隨機數範圍取資料
select a.* from (select a.*, rand(100) as random from dwi_evt_blog_dpi_keywords_info_msk_d a)a where random between 0 and 10;
五. limit 語句快速出結果
一般情況下,limit語句還是需要執行整個查詢語句,然後再返回部分結果。
有乙個配置屬性可以開啟,避免這種情況---對資料來源進行抽樣
hive.limit.optimize.enable=true --- 開啟對資料來源進行取樣的功能
hive.limit.row.max.size --- 設定最小的取樣容量
hive.limit.optimize.limit.file --- 設定最大的取樣樣本數
缺點:有可能部分資料永遠不會被處理到
優化前:
優化後:
一次SQL慢查詢記錄
前段時間,某個深夜,突然接到專案的告警 專案執行異常,檢視告警資訊是由於專案資料庫cpu使用率接近100 導致的。為此深夜中忙活了一陣,當個教訓,且記錄一次。現象 服務資料庫cpu使用率接近100 一直居高不下。原因 sql語句使用不合理的索引,導致資料庫中大量資料的排序,大資料量的記錄排序消耗盡c...
記一次慢查詢引發的事故
首先,測試環境上線新版本,並且通過黑盒測試以及功能測試。然後,我們就上線了新的版本。但是在執行3天後,整個伺服器大部分介面都失效了,基本上都是timeout。檢查伺服器情況 cpu基本上佔滿了。接著查了資料庫狀態,通過mysql命令show processlist 存在大量的waiting for ...
HBase一次慢查詢請求的問題排查與解決過程
以下是我們對hbase集群一次慢查詢請求問題的排查解決過程。專案中有一張hbase表,每天凌晨以後會集中批量匯入一批資料,匯入資料量很大,在千萬到億的量級,然後白天為使用者提供查詢服務。某天突然發現,該錶按照各個region 共計256個 分別僅順序scan少數幾條資料時,部分region的查詢請求...