大數(shù)據(jù)時(shí)代 何處安放我們的元數(shù)據(jù)?
王振 發(fā)表于:13年06月09日 10:25 [編譯] DOIT.com.cn
第二種方法,把元數(shù)據(jù)和數(shù)據(jù)存儲(chǔ)在一起。這種方法很可取,因?yàn)檫@樣你就只需擔(dān)心一個(gè)文件系統(tǒng)的數(shù)據(jù)完整性了。如果文件被移動(dòng),元數(shù)據(jù)也隨之移動(dòng)。你可以隨時(shí)把元數(shù)據(jù)加入到文件中,因?yàn)樗秃臀募谝黄稹?/p>
理想的狀態(tài)是,如果我們有好的工具來和文件一起復(fù)制,移動(dòng)元數(shù)據(jù),那我們就可以輕松地復(fù)制或移動(dòng)數(shù)據(jù)文件。比如說,你把文件復(fù)制到某些活動(dòng)狀態(tài)存儲(chǔ)中,元數(shù)據(jù)就要和其一起移動(dòng)。這還意味著你可以升級(jí)這些文件的元數(shù)據(jù),然后把它們復(fù)制回去,把升級(jí)后的元數(shù)據(jù)和文件放在一起。
我們可以借助擴(kuò)展屬性(擴(kuò)展文件屬性)來達(dá)到這一目的。許多文件系統(tǒng)都支持?jǐn)U展屬性,為用戶提供多種選擇,使用戶可以通過擴(kuò)展文件屬性把元數(shù)據(jù)添加到文件中,當(dāng)然,它們也提供多種文件讀取方式。一些文件系統(tǒng)會(huì)對(duì)擴(kuò)展屬性強(qiáng)加限制,比如說加入數(shù)量的限制,但并不是所有的文件系統(tǒng)都這樣。不管怎么說,把元數(shù)據(jù)和數(shù)據(jù)存儲(chǔ)在一起是一個(gè)值得考慮的方法。
但是凡事有利就有弊,把元數(shù)據(jù)和數(shù)據(jù)存儲(chǔ)在一起也有許多缺點(diǎn)。首先就是用戶如何有效率地搜索元數(shù)據(jù)?
搜索的主要方式是掃描文件系統(tǒng)的樹形結(jié)構(gòu),找到每個(gè)文件的元數(shù)據(jù)然后返回信息。但是這種方式要受到文件數(shù)量及文件樹形結(jié)構(gòu)的影響,搜索可能會(huì)花大量的時(shí)間,也許會(huì)浪費(fèi)大量的時(shí)間做無用功。
如果你想尋找文件,那你就需要搜索所有文件的元數(shù)據(jù)。不幸的是,目前幾乎沒有令人滿意的工具或技術(shù)把文件(包括元數(shù)據(jù))復(fù)制到其它存儲(chǔ)(或活動(dòng)狀態(tài)的存儲(chǔ)設(shè)備)中。舉個(gè)例子,NFS不支持?jǐn)U展文件屬性的傳輸,用戶就不能通過它復(fù)制文件或從歸檔轉(zhuǎn)移到活動(dòng)位置。有復(fù)制文件和元數(shù)據(jù)的方式,但是你需要花大量的精力確保能達(dá)到你預(yù)期的效果。
更好的方法
我個(gè)人認(rèn)為第二種方法會(huì)好一些,因?yàn)樵獢?shù)據(jù)總是和數(shù)據(jù)在一起,這樣用戶就可以隨時(shí)訪問元數(shù)據(jù)。在第一種把元數(shù)據(jù)集中起來的方法中,除了要保護(hù)數(shù)據(jù)之外,你不得不使用額外的資源來保護(hù)數(shù)據(jù)庫,保證其精確性?紤]到那難以置信的數(shù)據(jù)量,再加上需要保護(hù)的新的歸檔,我現(xiàn)在覺得這兩種方法都不夠完美。
既然這樣,那何不把這兩種方法結(jié)合起來!
我仍然覺得元數(shù)據(jù)應(yīng)該和數(shù)據(jù)存儲(chǔ)在一起,最主要的原因就是元數(shù)據(jù)相對(duì)于數(shù)據(jù)而言,本身就是相同的東西,把它們分開沒有多大的意義。
不過,掃描含有上億個(gè)文件的樹形結(jié)構(gòu)也是不現(xiàn)實(shí)的。所以,我們需要專為搜索設(shè)計(jì)的框架,在其中建立一個(gè)集中元數(shù)據(jù)索引,不過所有元數(shù)據(jù)的功能仍在于文件本身。
如果我們創(chuàng)建了一個(gè)歸檔并把所有的數(shù)據(jù)都放入其中,那我們就可以抓取元數(shù)據(jù)并建立一個(gè)集中索引。當(dāng)文件移動(dòng)到歸檔中時(shí),我們可以把元數(shù)據(jù)集中在一個(gè)文件中。
令人欣慰的是,歸檔本身的機(jī)制可以發(fā)現(xiàn)歸檔中文件的改變,獲取元數(shù)據(jù)并升級(jí)集中索引。但是,若是歸檔有REST接口,那就沒有好的方式去“升級(jí)”文件。如果你從一個(gè)歸檔中提取了一個(gè)文件并做了更改,大多數(shù)情況下,你都需要把整個(gè)文件再放回到歸檔中,因?yàn)閷?duì)于歸檔來說,這是一個(gè)“新”文件。有一些歸檔允許用戶升級(jí)文件,但是這種機(jī)制用起來并不容易,相比之下,提取文件,做更改,再放回去則是非常簡(jiǎn)單。在這種情況下,提取操作要獲取元數(shù)據(jù),這使得這一步驟變得簡(jiǎn)單。
對(duì)于所有元數(shù)據(jù)來說,發(fā)揮作用的是文件,元數(shù)據(jù)只是附加其上(我個(gè)人認(rèn)為使用的是擴(kuò)展文件屬性)。如果集中索引因?yàn)槟承┰蚴Я,你要花一些時(shí)間掃描文件系統(tǒng)來“重新收集”元數(shù)據(jù),但是你并沒有從根本上失去你的索引。
總結(jié)
人們?cè)?jīng)認(rèn)為把元數(shù)據(jù)存儲(chǔ)在什么地方這個(gè)問題非常簡(jiǎn)單,根本用不著進(jìn)行長時(shí)間的討論。直到有一天人們突然發(fā)現(xiàn),如今的世界已經(jīng)天翻地覆,大數(shù)據(jù)呈爆炸式增長,文件數(shù)量上億,這時(shí)候考慮元數(shù)據(jù)放到哪里就變得非常重要,處理好這個(gè)問題,對(duì)于數(shù)據(jù)的實(shí)際使用有重大意義。
把所有元數(shù)據(jù)放到集中索引是不切實(shí)際的,因?yàn)檫@樣你就必須進(jìn)行大量的數(shù)據(jù)保護(hù),不僅要保護(hù)數(shù)據(jù),還要保護(hù)集中索引。僅僅移動(dòng)文件位置而不升級(jí)索引會(huì)對(duì)搜索帶來極大的影響。
同樣的,借助擴(kuò)展文件屬性把元數(shù)據(jù)和數(shù)據(jù)放在一起也不可取,因?yàn)槊看螖?shù)據(jù)搜索都意味著元數(shù)據(jù)要通過樹形結(jié)構(gòu)被搜集起來再搜索。雖然把元數(shù)據(jù)和數(shù)據(jù)放在一起非常自然,但是這種存儲(chǔ)方式往往會(huì)浪費(fèi)大量的搜索時(shí)間。
我認(rèn)為最好的解決方案是把這兩種方式結(jié)合在一起。把元數(shù)據(jù)放在數(shù)據(jù)中,當(dāng)數(shù)據(jù)被移動(dòng)到歸檔中時(shí),你就可以把元數(shù)據(jù)提取出來,同時(shí)建立一個(gè)集中索引,用這個(gè)索引來進(jìn)行數(shù)據(jù)搜索。
借助一個(gè)簡(jiǎn)單的REST接口,就可以很輕松地升級(jí)索引。但是,如果索引丟失或崩潰了,那就需要再次掃描歸檔的樹形結(jié)構(gòu)來重新收集元數(shù)據(jù)了。
我寫這篇文章的目的是能引發(fā)人們對(duì)元數(shù)據(jù)存儲(chǔ)在何地以及如何搜索它們這個(gè)問題的思考,肯定會(huì)有人對(duì)我的觀點(diǎn)提出質(zhì)疑。如果有可能的話,請(qǐng)你們寫下自己的解決方案,一定會(huì)有很多人從你們的分享中受益匪淺的!
公司簡(jiǎn)介 | 媒體優(yōu)勢(shì) | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會(huì)員注冊(cè) | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.