2017-08-14 68 views
1

一個非常簡單的問題:如何選擇密鑰以Hive中前綴開頭的某些行?

我想選擇他們的鍵在蜂巢中有一定的前綴的所有行,但不知何故,它不工作。

的查詢我已經試過:

select * from solr_json_history where dt='20170814' and hour='2147' and substr(`_root_`,1,9)='P10004232' limit 100; 

SELECT * FROM solr_json_history where dt='20170814' and hour='2147' and `_root_` like 'P19746284%' limit 100; 

我的順化編輯器只是掛在那兒不返回任何東西。

我已經通過這個查詢檢查該時間範圍內有數據在我的表:

select * from solr_json_history where dt='20170814' and hour='2147' limit 15; 

它返回15條記錄符合市場預期。

請幫忙嗎?

非常感謝!

+0

可以提供一些示例數據 –

+0

如果您可以提供數據示例以及如何創建表 – hlagos

+0

也許沒有100行具有該前綴,那麼配置單元會遍歷所有分區/表可能很慢。嘗試限制1 –

回答

1

根據@ musafir-safwan的要求,我在此添加了它作爲答案。

更新: 我無法提供示例數據。但我的問題解決了。

感謝您的評論注意。

我的表確實有數據,不需要擔心。感謝您檢查。

問題是由於Hue UI設計錯誤,當我發出上述兩個查詢時,它需要太長的時間(超過UI上設置的超時時間)才能獲得響應,簡而言之,UI不會「 t回覆任何內容,或給出超時提醒。它只是掛在那裏。

此外,這兩個查詢本質上是做兩個RPC調用,所以他們超時。 後來我改成使用下面的查詢:

select `_root_`,json, count(*) from solr_json_history where dt='20170814' and hour='2147' and substr(`_root_`,1,9)='P19746284' group by `_root_`,json; 

不同的是,我添加了一個count(*)果然此查詢到的地圖,減少工作的事情,因此沒有超時限制,然後返回我想要的結果。

YMMV。

謝謝。

相關問題