<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 揭秘:RCFile高效存儲結構

揭秘:RCFile高效存儲結構

作者: 時(shí)間:2011-05-09 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/150786.htm

  圖3顯示了在HDFS上按照列組表格的例子。在這個(gè)例子中,列A和列B在同一列組,而列C和列D分別存儲在單獨的列組。查詢(xún)時(shí)列存儲能夠避免讀不必要的列,并且壓縮一個(gè)列中的相似數據能夠達到較高的壓縮比。然而,由于元組重構的較高開(kāi)銷(xiāo),它并不能提供基于Hadoop系統的快速查詢(xún)處理。列存儲不能保證同一記錄的所有域都存儲在同一集群節點(diǎn),例如圖2的例子中,記錄的4個(gè)域存儲在位于不同節點(diǎn)的3個(gè)HDFS塊中。因此,記錄的重構將導致通過(guò)集群節點(diǎn)網(wǎng)絡(luò )的大量數據傳輸。盡管預先分組后,多個(gè)列在一起能夠減少開(kāi)銷(xiāo),但是對于高度動(dòng)態(tài)的負載模式,它并不具備很好的適應性。除非所有列組根據可能的查詢(xún)預先創(chuàng )建,否則對于一個(gè)查詢(xún)需要一個(gè)不可預知的列組合,一個(gè)記錄的重構或許需要2個(gè)或多個(gè)列組。再者由于多個(gè)組之間的列交疊,列組可能會(huì )創(chuàng )建多余的列數據存儲,這導致存儲利用率的降低。

  

79_110429153503_1.jpg

  圖3 HDFS塊內列存儲的例子

  PAX混合存儲

  PAX存儲模型(用于Data Morphing存儲技術(shù))使用混合存儲方式,目的在于提升CPU Cache性能。對于記錄中來(lái)自不同列的多個(gè)域,PAX將它們放在一個(gè)磁盤(pán)頁(yè)中。在每個(gè)磁盤(pán)頁(yè)中,PAX使用一個(gè)迷你頁(yè)來(lái)存儲屬于每個(gè)列的所有域,并使用一個(gè)頁(yè)頭來(lái)存儲迷你頁(yè)的指針。類(lèi)似于行存儲,PAX對多種動(dòng)態(tài)查詢(xún)有很強的適應能力。然而,它并不能滿(mǎn)足大型分布式系統對于高存儲空間利用率和快速查詢(xún)處理的需求,原因在于:首先,PAX沒(méi)有數據壓縮的相關(guān)工作,這部分與Cache優(yōu)化關(guān)系不大,但對于大規模數據處理系統是非常關(guān)鍵的,它提供了列維度數據壓縮的可能性;其次,PAX不能提升I/O性能,因為它不能改變實(shí)際的頁(yè)內容,該限制使得大規模數據掃描時(shí)不易實(shí)現快速查詢(xún)處理;再次,PAX用固定的頁(yè)作為數據組織的基本單位,按照這個(gè)大小,在海量數據處理系統中,PAX將不會(huì )有效存儲不同大小類(lèi)型的數據域。本文介紹的是RCF i l e 數據存儲在Hadoop系統上的實(shí)現。該強調:第一,RCFile存儲的表是水平劃分的,分為多個(gè)行組, 每個(gè)行組再被垂直劃分, 以便每列單獨存儲;第二,RCFile在每個(gè)行組中利用一個(gè)列維度的數據壓縮,并提供一種Lazy解壓(decompression)技術(shù)來(lái)在查詢(xún)執行時(shí)避免不必要的列解壓;第三,RCFile支持彈性的行組大小,行組大小需要權衡數據壓縮性能和查詢(xún)性能兩方面。

  RCFile的設計與實(shí)現

  RCFile(Record Columnar File)存儲遵循的是“先水平劃分,再垂直劃分”的設計理念,這個(gè)想法來(lái)源于PAX。它結合了行存儲和列存儲的優(yōu)點(diǎn):首先,RCFile保證同一行的數據位于同一節點(diǎn),因此元組重構的開(kāi)銷(xiāo)很低;其次,像列存儲一樣,RCFile能夠利用列維度的數據壓縮,并且能跳過(guò)不必要的列讀取。圖4是一個(gè)HDFS塊內RCFile方式存儲的例子。

  

79_110429153552_1.jpg

  圖4 HDFS塊內RCFile方式存儲的例子



關(guān)鍵詞: 結構 存儲 高效 :RCFile 揭秘

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>