亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新方法、裝置、主機(jī)的制作方法_2

文檔序號:8543697閱讀:來源:國知局
數(shù)據(jù)塊包含有相應(yīng)的增加或刪減記錄結(jié)果。
[0070]結(jié)合第二方面的第五種實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,
[0071]所述第二判斷單元,包括:
[0072]第一刪除子模塊,用于當(dāng)刪除的第k列已存在時,則在元數(shù)據(jù)塊k中增加相應(yīng)的刪除記錄,所述刪除記錄包括列名、刪除標(biāo)記;
[0073]第二刪除子模塊,用于當(dāng)增加一個新列時,則為該列生成一個空的元數(shù)據(jù)塊,并在所述元數(shù)據(jù)塊中插入相應(yīng)的增加記錄,所述增加記錄包括列名、增加標(biāo)記以及可選的默認(rèn)值。
[0074]結(jié)合第二方面,在第二方面的第七種可能的實現(xiàn)方式中,還包括第二處理單元;
[0075]所述第一判斷單元判斷所述元數(shù)據(jù)是否屬于所述數(shù)據(jù)表中的全局文件元數(shù)據(jù),如果是,則所述第二處理單元待更新的數(shù)據(jù)為全局文件元數(shù)據(jù),修改所述全局文件元數(shù)據(jù)對應(yīng)的文件。
[0076]本申請的第三方面提供了一種主機(jī),包括處理器,通信接口,存儲器和總線;
[0077]其中處理器、通信接口、存儲器通過總線完成相互間的通信;
[0078]所述通信接口,用于獲取分布式文件系統(tǒng)的數(shù)據(jù)表中待更新的元數(shù)據(jù);
[0079]所述處理器,用于執(zhí)行程序;
[0080]所述存儲器,用于存放程序;
[0081]其中程序用于:
[0082]將所述數(shù)據(jù)表的數(shù)據(jù)記錄按行分割為多個行組,將所述數(shù)據(jù)表轉(zhuǎn)換成一個全局文件元數(shù)據(jù),以及多個行組文件,其中,所述行組文件包括實際數(shù)據(jù)塊、數(shù)據(jù)索引塊、本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳;
[0083]判斷所述待更新的元數(shù)據(jù)是否屬于所述全局文件元數(shù)據(jù),如果否,則:
[0084]更新本地元數(shù)據(jù);
[0085]根據(jù)更新后的本地元數(shù)據(jù),在所述多個行組文件中增加更新后的本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳。
[0086]在基于分布式文件系統(tǒng)的列式存儲中,現(xiàn)有的技術(shù)未提供有效的元數(shù)據(jù)動態(tài)修改方法,而是需要重新生成整個文件,針對這一問題,本發(fā)明實施例將數(shù)據(jù)表的數(shù)據(jù)記錄按行分割成多個行組,每個行組作為一個獨立的行組文件進(jìn)行存儲,行組文件至少包括實際數(shù)據(jù)塊、數(shù)據(jù)索引塊、本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳,利用該類文件系統(tǒng)的追加寫特性,根據(jù)更新后的本地元數(shù)據(jù),重新組織和追加更新后的本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳。通過重新組織列式存儲格式,合理安排和更新各元數(shù)據(jù)塊,元數(shù)據(jù)索引塊以及文件頁腳Footer,從而在不需重新移動文件中絕大多數(shù)原有數(shù)據(jù)的前提下實現(xiàn)了元數(shù)據(jù)的動態(tài)更新,大大節(jié)省了該類更新操作的執(zhí)行時間及所需計算資源,解決了現(xiàn)在技術(shù)中,不能提供有效的元數(shù)據(jù)動態(tài)修改方法,對元數(shù)據(jù)的更新操作需要消耗巨大的計算資源開銷和時間開銷的問題。
【附圖說明】
[0087]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0088]圖1為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新方法的一種流程示意圖;
[0089]圖2為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新方法的另一流程示意圖;
[0090]圖3為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新方法的系統(tǒng)裝置的結(jié)構(gòu)示意圖;
[0091]圖4為本發(fā)明實施例提供的列式存儲的文件組織格式;
[0092]圖5為本發(fā)明實施例提供的組織文件中各塊的組織;
[0093]圖6為本發(fā)明實施例提供的行組本地元數(shù)據(jù)更新前后對比的示意圖;
[0094]圖7為本發(fā)明實施例提供的步驟250的一種流程示意圖;
[0095]圖8為本發(fā)明實施例提供的DAG框架用于行組元數(shù)據(jù)更新任務(wù)時的示意圖;
[0096]圖9為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新方法的另一流程示意圖;
[0097]圖10為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新方法的另一流程示意圖;
[0098]圖11為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新裝置的一種結(jié)構(gòu)75意圖;
[0099]圖12為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新裝置的另一結(jié)構(gòu)不意圖;
[0100]圖13為本發(fā)明實施例提供的基于MAP更新子單元的一種結(jié)構(gòu)示意圖;
[0101]圖14為本發(fā)明實施例提供的基于MAP更新子單元的另一結(jié)構(gòu)示意圖;
[0102]圖15為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新裝置的另一結(jié)構(gòu)不意圖;
[0103]圖16為本發(fā)明實施例提供的基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新裝置的另一結(jié)構(gòu)不意圖;
[0104]圖17為本發(fā)明實施例提供的一種主機(jī)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0105]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0106]參見圖1,本發(fā)明實施例提供一種基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新方法,方法包括:
[0107]步驟110:獲取分布式文件系統(tǒng)的數(shù)據(jù)表中待更新的元數(shù)據(jù),將數(shù)據(jù)表的數(shù)據(jù)記錄按行分割為多個行組,將數(shù)據(jù)表轉(zhuǎn)換成一個全局文件元數(shù)據(jù),以及多個行組文件。
[0108]其中,上述行組文件包括實際數(shù)據(jù)塊、數(shù)據(jù)索引塊、本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳。
[0109]步驟120:判斷上述待更新的元數(shù)據(jù)是否屬于全局文件元數(shù)據(jù),如果否,則進(jìn)行步驟 130 ?140。
[0110]步驟130:更新本地元數(shù)據(jù)。
[0111]步驟140:根據(jù)更新后的本地元數(shù)據(jù),在多個行組文件中增加更新后的本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳。
[0112]在基于分布式文件系統(tǒng)的列式存儲中,現(xiàn)有的技術(shù)未提供有效的元數(shù)據(jù)動態(tài)修改方法,而是需要重新生成整個文件,針對這一問題,本發(fā)明實施例將數(shù)據(jù)表的數(shù)據(jù)記錄按行分割成多個行組,每個行組作為一個獨立的行組文件進(jìn)行存儲,行組文件至少包括實際數(shù)據(jù)塊、數(shù)據(jù)索引塊、本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳,利用該類文件系統(tǒng)的追加寫特性,根據(jù)更新后的本地元數(shù)據(jù),重新組織和追加更新后的本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳。通過重新組織列式存儲格式,合理安排和更新各元數(shù)據(jù)塊,元數(shù)據(jù)索引塊以及文件頁腳Footer,從而在不需重新移動文件中絕大多數(shù)原有數(shù)據(jù)的前提下實現(xiàn)了元數(shù)據(jù)的動態(tài)更新,大大節(jié)省了該類更新操作的執(zhí)行時間及所需計算資源,解決了現(xiàn)在技術(shù)中,不能提供有效的元數(shù)據(jù)動態(tài)修改方法,對元數(shù)據(jù)的更新操作需要消耗巨大的計算資源開銷和時間開銷的問題。
[0113]參見圖2,本發(fā)明實施例提供一種基于分布式文件系統(tǒng)列式存儲的元數(shù)據(jù)更新方法,方法包括:
[0114]步驟210:獲取寫入分布式文件系統(tǒng)的數(shù)據(jù)表。
[0115]分布式文件系統(tǒng)可以是Append-Only文件系統(tǒng)、如GFS、HDFS等。
[0116]參見圖3,可以通過客戶端Client以及列式存儲模塊獲取寫入分布式文件系統(tǒng)的數(shù)據(jù)表。
[0117]客戶端Client為用戶接口端,客戶端向用戶提供訪問列式存儲的API(Applicat1n Programming Interface,應(yīng)用程序編程接口),如讀/寫數(shù)據(jù),更新元數(shù)據(jù)坐寸O
[0118]列式存儲模塊包括列式輸入接口以及列式輸出接口,列式存儲模塊用于實現(xiàn)對數(shù)據(jù)記錄的列式轉(zhuǎn)換,在寫數(shù)據(jù)時,將客戶端寫入的數(shù)據(jù)記錄轉(zhuǎn)換成列存格式傳遞給底層文件系統(tǒng),在讀數(shù)據(jù)時,把從底層文件系統(tǒng)讀取的各列數(shù)據(jù)重組成用戶想要的記錄格式,其中,Append-Only文件系統(tǒng)如HDFS則為底層文件系統(tǒng)。
[0119]圖3中,名稱節(jié)點Namenode是HDFS的主用Master服務(wù)器,存儲著整個文件系統(tǒng)的命名空間、各數(shù)據(jù)節(jié)點Datanode的位置以及HDFS數(shù)據(jù)塊在各數(shù)據(jù)節(jié)點的分布等元數(shù)據(jù)信息,而數(shù)據(jù)節(jié)點則存儲實際數(shù)據(jù)文件,且數(shù)據(jù)以固定大小的塊為單位存儲,一般的,默認(rèn)情況下塊的大小為64M。
[0120]步驟220:將數(shù)據(jù)表的數(shù)據(jù)記錄按行分割成多個行組。
[0121]上述的每個行組可以作為一個獨立的行組文件進(jìn)行存儲,其中,行組文件包括實際數(shù)據(jù)塊、數(shù)據(jù)索引塊本地元數(shù)據(jù)塊、元數(shù)據(jù)索引塊以及文件頁腳。
[0122]步驟230:將數(shù)據(jù)表保存成一個全局文件元數(shù)據(jù),以及多個行組文件。
[0123]為每個數(shù)據(jù)表保存一個全局文件元數(shù)據(jù)Global File Metadata和多個行組文件。
[0124]其中,全局文件元數(shù)據(jù)可以作為一個單獨文件保存,也可以存儲在例如MySQL之類的第三方服務(wù)器中,全局文件元數(shù)據(jù)記錄著數(shù)據(jù)表的定義信息,如各列的列名、數(shù)據(jù)類型、主鍵和外鍵、壓縮類型及壓縮狀態(tài)等。
[0125]將寫入分布式文件系統(tǒng)的數(shù)據(jù)表轉(zhuǎn)換成圖4所示的文件格式,存儲到底層文件系統(tǒng)中。
[0126]將數(shù)據(jù)表的數(shù)據(jù)記錄按行分割成多個行組Row group,每個行組作為一個獨立的行組文件進(jìn)行存儲,行組文件至少包括實際數(shù)據(jù)塊Data Block、數(shù)據(jù)索引塊Data IndexBlock、本地兀數(shù)據(jù)塊Local Metadata Block、兀數(shù)據(jù)索引塊Metadata Index Block以及文件頁腳Footer。
[0127]進(jìn)一步地,還參見圖5中行組文件中各塊的組織。
[0128]其中,實際數(shù)據(jù)塊Data Block保存有各列的實際數(shù)據(jù),各數(shù)據(jù)列相互分開,并連續(xù)存儲,即首先存儲第一列的所有數(shù)據(jù),然后存儲第二列、第三列,依次類推。實際數(shù)據(jù)塊DataBlock是指文件該存儲的數(shù)據(jù),實際數(shù)據(jù)是區(qū)別于元數(shù)據(jù)的,用戶語義上需要保存的數(shù)據(jù),如,一個文件存儲100條商品交易條目,則該100條交易條目即為實際數(shù)據(jù)。為了能使得交易記錄能被快速讀取或更新,文件里會保存一些額外元數(shù)據(jù),如索引和更新記錄等。
[0129]數(shù)據(jù)索引塊Data Index Block記錄有實際數(shù)據(jù)塊Data Block中各數(shù)據(jù)列在行組文件內(nèi)的位置偏移即Offset of Co
當(dāng)前第2頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1