【正文】
,三種數(shù)據(jù)存儲結(jié)構(gòu)被廣泛研究,分別是行存儲結(jié)構(gòu)、列存儲結(jié)構(gòu)和PAX混合存儲結(jié)構(gòu)。Strong adaptivity to highly dynamic workload patterns同一份數(shù)據(jù)集會供給不同應用的用戶,通過各種方式來分析。每天大約有超過20TB的數(shù)據(jù)上傳到Facebook的數(shù)據(jù)倉庫,由于數(shù)據(jù)加載期間網(wǎng)絡和磁盤流量會干擾正常的查詢執(zhí)行,因此縮短數(shù)據(jù)加載時間是非常必要的。Facebook工程師發(fā)表的RCFile: A Fast and Spaceefficient Data Placement Structure in MapReducebased Warehouse Systems一文,介紹了一種高效的數(shù)據(jù)存儲結(jié)構(gòu)——RCFile(Record Columnar File),并將其應用于Facebook的數(shù)據(jù)倉庫Hive中。Facebook曾在2010 ICDE(IEEE International Conference on Data Engineering)會議上介紹了數(shù)據(jù)倉庫Hive。Hive存儲海量數(shù)據(jù)在Hadoop系統(tǒng)中,提供了一套類數(shù)據(jù)庫的數(shù)據(jù)存儲和處理機制。圖1 Hive數(shù)據(jù)倉庫的系統(tǒng)結(jié)構(gòu)基于MapReduce的數(shù)據(jù)倉庫在超大規(guī)模數(shù)據(jù)分析中扮演了重要角色,對于典型的Web服 務供應商,這些分析有助于它們快速理解動態(tài)的用戶行為及變化的用戶需求。與傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)存儲結(jié)構(gòu)相比,RCFile更有效地滿足了基于MapReduce的 數(shù)據(jù)倉庫的四個關鍵需求,即Fast data loading、Fast query processing、Highly efficient storage space utilization和Strong adaptivity to highly dynamic workload patterns。Fast query processing為了滿足實時性的網(wǎng)站請求和支持高并發(fā)用戶提交查詢的大量讀負載,查詢響應時間是非常關鍵的,這要求底層存儲結(jié)構(gòu)能夠隨著查詢數(shù)量的增加而保持高速的查詢處理。某些數(shù)據(jù)分析是例行過程,按照某種固定模式周期性執(zhí)行;而另一些則是從中間平臺發(fā)起的查 詢。上面這三種結(jié)構(gòu)都有其自身特點,不過簡單移植這些數(shù)據(jù)庫導向的 存儲結(jié)構(gòu)到基于MapReduce的數(shù)據(jù)倉庫系統(tǒng)并不能很好地滿足所有需求。然而,由于元組重構(gòu)的較高開銷,它并不能提供基于Hadoop系統(tǒng)的快速查詢處理。除非所有列組根據(jù)可能的 查詢預先創(chuàng)建,否則對于一個查詢需要一個不可預知的列組合,一個記錄的重構(gòu)或許需要2個或多個列組。對于記錄中來自不同列的多個域,PAX將它們放在