impala為什麼比hive快,impala為什麼比spark快

時間 2022-05-06 23:05:21

1樓:逆長小白菜

應該不會,impala是相當專注於傳統企業客戶和olap和資料倉儲工作負載。shark支援傳統olap。

比較:一、總體上

shark擴充套件了apache hive,大大加快在記憶體和磁碟上的查詢。而impala是企業級資料倉儲系統, 可以很好地使用hive/ hdfs,從架構層來說,類似於傳統的並行資料庫。這兩個系統有著很多共同的目標,但也有很大差異。

二、與現有系統的相容性

shark直接建立在apache/hive**庫上,所以它自然支援幾乎所有hive特點。它支援現有的hive sql語言,hive資料格式(serdes),使用者自定義函式(udf),呼叫外部指令碼查詢。因為impala使用自定義的c++執行,它不支援hive udf。

這兩個系統將會與許多bi工具整合,這一直是impala的主要目標。shark正在被用於一些bi工具,如tableau,不過這並沒有被探索更多。

三、記憶體中的資料處理

shark允許使用者顯式地載入在記憶體中的資料,以加快查詢處理,其記憶體使用有效率的,壓縮的面向列的格式。impala還沒有提供在記憶體中的儲存。

四、容錯

shark被設計為支援短期和長時間執行的查詢。它可以從查詢故障恢復(感謝底層spark引擎)。impala目前是更側重於短查詢,不容錯(如果節點發生故障,查詢必須重新啟動,對短查詢來說這無疑是可以接受的)。

五、效能

做全面的比較太早了點。shark和impala都報告比hive快10-100倍,但這都依賴具體情況和系統負載。兩個專案也都在未來6個月內會做重要優化。

以我們的經驗來看,sharkr當前版本,如果是記憶體的資料一般比hive快100倍,如果是磁碟上的資料一般快5-10倍,這取決於查詢(帶關聯連線的查詢,能比hive快很多)。

簡述impala和hive的不同

impala 的sql 與hive完全相同嗎

測試比較 hive, impala 和 shark/spark 的效能,可以從哪些具體方面入手?

2樓:灰

這種測試最好是針對應用進行,即到底是批處理、adhoc查詢、olap分析等等

impala怎麼判斷從hive裡重新整理那部分後設資料

3樓:匿名使用者

impala 獲取hive 的 metadata

impala 通常和hive共用同一個metadata 資料庫(通常是mysql/postgresql), 所以impala 能夠讀取到hive的後設資料資訊. 如果impala需要訪問hive表, 需要將hive metadata 重新整理到impala中.

在hive中create/drop表後, 或者hdfs rebalance,或者手工刪除hdfs的檔案後, 則需要在impala中執行下面兩行命令:

invalidate metadata table_name;

describe table_name;

第一行命令 invalidate metadata 告訴impala 指定的 table 後設資料已經過期, impala 將在下一次使用到該表時自動重新整理後設資料, 第二行命令即觸發impala去更新後設資料, 以免將來真正使用該表耗時太久.

如果impala已經知道了hive表的存在後, 又通過hive增加或刪除分割槽或alter table, 使用 refresh 命令即可更新後設資料. refresh是對後設資料進行增量更新, 和invalidate metadata相比, refresh命令使用成本低很多.

利用catalogd提供後設資料服務。可以直接連db也可以通過catalogd,一般是利用hive裡的metastore獲取資料。impala高效的原因是其將原始資料快取下來,catalogd啟動會瀏覽快取獲取資料

因為impla預設catalogd會快取,因此如果你重啟的後,catalogd會將快取資料存入到記憶體中,

impala與hive區別之漢字字串長度的不同問

基於spark sql之上的檢索與排序對比效能測試

4樓:

第二:hive 目前應該還是業界的主流,畢竟快與慢很多時候並非是至關重要的,對於一個生產系統來說,更重要的應該是穩定性,spark畢竟還算是比較新興的事務,快確實快,但是穩定性上距離hive相差甚遠。關於spark我們也修復了很多關於記憶體洩露的bug,因為您問的是效能,所以不過多介紹(可以跟我要ydb程式設計指南,裡面有我對這些bug的修正)

排序可以說是很多日誌系統的硬指標(如按照時間逆序排序),如果一個大資料系統不能進行排序,基本上是這個系統屬於不可用狀態,排序算得上是大資料系統的一個「剛需」,無論大資料採用的是hadoop,還是spark,還是impala,hive,總之排序是必不可少的,排序的效能測試也是必不可少的。

有著計算奧運會之稱的sort benchmark全球排序每年都會舉行一次,每年巨頭都會在排序上進行巨大的投入,可見排序速度的高低有多麼重要!但是對於大多數企業來說,動輒上億的硬體投入,實在划不來、甚至遠遠超出了企業的專案預算。相比大資料領域的暴力排序有沒有一種更廉價的實現方式?

在這裡,我們為大家介紹一種新的廉價排序方法,我們稱為blocksort。

500g的資料300億條資料,只使用4臺 16核,32g記憶體,千兆網絡卡的虛擬機器即可實現 2~15秒的 排序 (可以全表排序,也可以與任意篩選條件篩選後排序)。

一、基本的思想是這樣的,如下圖所示:

1.將資料按照大小預先劃分好,如劃分成 大、中、小三個塊(block)。

2.如果想找最大的資料,那麼只需要在最大的那個塊裡去找就可以了。

3.這個快還是有層級結構的,如果每個塊內的資料量很多,可以到下面的子快內進行繼續查詢,可以分多個層進行排序。

4.採用這種方法,一個億萬億級別的資料(如long型別),最壞最壞的極端情況也就進行2048次檔案seek就可以篩選到結果。

怎麼樣,原理是不是非常簡單,這樣資料量即使特別多,那麼排序與查詢的次數是固定的。

在排序上,ydb具有絕對優勢,無論是全表,還是基於任意條件組合過濾,基本秒殺spark任何格式。

測試結果(時間單位為秒)

三、當然除了排序上,我們的其他效能也是遠遠高於spark,這塊大家也可以瞭解一下

1、與spark txt在檢索上的效能對比測試。

註釋:備忘。下圖的這塊,其實沒什麼特別的,只不過由於ydb本身索引的特性,不想spark那樣暴力,才會導致在掃描上的效能遠高於spark,效能高百倍不足為奇。

下圖為ydb相對於spark txt提升的倍數

2、這些是與 parquet 格式對比(單位為秒)

3、與oracle效能對比

跟傳統資料庫的對比,已經沒啥意義,oracle不適合大資料,任意一個大資料工具都遠超oracle 效能。

4.稽查布控場景效能測試

四、ydb是怎麼樣讓spark加速的?

基於hadoop分散式架構下的實時的、多維的、互動式的查詢、統計、分析引擎,具有萬億資料規模下的秒級效能表現,並具備企業級的穩定可靠表現。

ydb是一個細粒度的索引,精確粒度的索引。資料即時匯入,索引即時生成,通過索引高效定位到相關資料。ydb與spark深度整合,spark對ydb檢索結果集直接分析計算,同樣場景讓spark效能加快百倍。

五、哪些使用者適合使用ydb?

1.傳統關係型資料,已經無法容納更多的資料,查詢效率嚴重受到影響的使用者。

2.目前在使用solr、es做全文檢索,覺得solr與es提供的分析功能太少,無法完成複雜的業務邏輯,或者資料量變多後solr與es變得不穩定,在掉片與均衡中不斷惡性迴圈,不能自動恢復服務,運維人員需經常半夜起來重啟叢集的情況。

3.基於對海量資料的分析,但是苦於現有的離線計算平臺的速度和響應時間無滿足業務要求的使用者。

4.需要對使用者畫像行為類資料做多維定向分析的使用者。

5.需要對大量的ugc(user generate content)資料進行檢索的使用者。

6.當你需要在大資料集上面進行快速的,互動式的查詢時。

7.當你需要進行資料分析,而不只是簡單的鍵值對儲存時。

8.當你想要分析實時產生的資料時。

ps: 說了一大堆,說白了最適合的還是蹤跡分析因為資料量大,資料還要求實時,查詢還要求快。這才是關鍵。

5樓:賴經

前面select我就不寫了,只需要在最後order by 欄位a desc就好了,order by:按某欄位排序

desc,降序

為什麼飛機比汽車快,飛機為什麼比汽車快?

這個問題不完整,有很多不確定的條件。第一,沒有指定確定的飛機和汽車,有的汽車跑的很快,還有超音速的汽車,有的飛機只有200千米的時速,如果拿老式雙翼機和專業的現代跑車比較,你會發現跑車會比飛機快,第二,飛機的發動機一般要比汽車發動機功率大,加上飛機只有空氣阻力,而汽車除了空氣阻力還有地面阻力,所以飛...

為什麼表妹比我長得快,我是男生,為什麼表妹比我長得高?

這是遺傳。你小子就認命吧 女孩子是有青春期猛長一說,不過這是同年齡的比較。我看你現在都初中生了,比她大了3歲,她的猛長期已經過去了,這時候本該是你猛長的時候,但你還是比她矮,所以我看沒可能是這個因素。 女孩兒比男孩兒發育得早,開始長得快。慢慢得你就會超過她了。 動感大地 這是生理上的一些因素造成的,...

為什麼熟的雞蛋比生的雞蛋轉得快

因為熟的蛋內蛋黃蛋白都已經凝固,成了一個整體 而生的蛋裡面都是流質,轉起來內部有很多分散的作用力往四周拉扯,當然用力不集中就轉得比較慢啊。可以概括為熟雞蛋是一個固體,重心恆定,而生雞蛋重心不恆定,重心改變導致轉的慢。物體的重心位置,質量均勻分佈的物體 均勻物體 重心的位置只跟物體的形狀有關。有規則形...