簡體   English   中英

如何提高將數據從NON分區表加載到HIVE的ORC分區表中的性能

[英]How to improve performance of loading data from NON Partition table into ORC partition table in HIVE

我是Hive查詢的新手,我正在尋找從Hive表檢索數據的最佳實踐。 我們已啟用TeZ具有執行引擎並啟用了矢量化。

我想從Hive表中進行報告,我從TEZ文檔中了解到它可以用於實時報告。 場景來自我的WEB應用程序,我想顯示UI上Hive表中的Hive Query Select *的結果,但是對於任何查詢,即使hive表中有60 GB數據,在hive命令提示符下也至少花費20-60秒。

1)誰能告訴我如何通過查詢Hive表來顯示實時報告並在10-30秒內立即在UI上顯示結果

2)我們發現的另一個問題是,最初我們有指向HDFS中Blob /文件的未分區表,當我們將數據從未分區表轉儲到ORC表時,它的大小為60 GB,具有200列表已分區),需要3個小時以上的時間,有沒有一種方法可以提高將數據轉儲到ORC表中的性能。

3)當我們對帶有存儲分區的非分區表進行查詢時,插入到配置單元表並比在ORC表上執行選擇查詢要花費更少的時間,但是在配置單元表中增加記錄數時,ORC表的SELECT查詢要比具有存儲分區的表好。 有沒有辦法提高小型數據集的性能呢? 由於這是初始階段,因此我們每個月都會將50 GB數據加載到Hive表中。 但是它會增加,我們希望提高將數據加載到Orc分區表中的性能。

4)TEZ支持交互式,更少延遲和對報表的深入支持。 如何在人的響應時間(即5到40秒)內使我的向下鑽取報告從Hive(應該是交互式的)中獲取數據。

我們正在測試4個節點,每個節點具有4個cpu內核,7 GB RAM和每個VM附加3個磁盤。

謝謝,馬亨德

為了提高向ORC表插入數據的速度,您可以嘗試使用以下參數

hive.exec.orc.memory.pool 
hive.exec.orc.default.stripe.size
hive.exec.orc.default.block.size 
hive.exec.orc.default.buffer.size
dfs.blocksize

此外,您可能會看到壓縮是否也可以幫助您。 例如:

SET mapreduce.output.fileoutputformat.compress.codec = org.apache.hadoop.io.compress.SnappyCodec;
SET hive.exec.compress.intermediate = true;

希望能幫助到你!

首先。 HIVE並非用於實時數據處理。 無論數據有多小,查詢都將需要一段時間才能返回數據。

蜂巢的真正力量在於批處理大量數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM