【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種數(shù)據(jù)文件的存儲(chǔ)和查詢技術(shù)。
技術(shù)介紹
現(xiàn)有的分布式存儲(chǔ)方案中,對(duì)于較大的數(shù)據(jù)文件進(jìn)行存儲(chǔ)時(shí),其存儲(chǔ)及維護(hù)的復(fù)雜度較高。以Hbase(HadoopDatabase,Hadoop數(shù)據(jù)庫(kù))為例,現(xiàn)有的存儲(chǔ)方案中,一般將數(shù)據(jù)文件本身保存于獨(dú)立的存儲(chǔ)區(qū)域中,同時(shí)在Hbase的數(shù)據(jù)表(table)中將這些數(shù)據(jù)文件的地址信息作為某一單元(cell)的值(Value)進(jìn)行保存。用戶在查詢這些數(shù)據(jù)文件時(shí),首先在數(shù)據(jù)表中通過(guò)行鍵(Rowkey)、列(Column)以及時(shí)間戳(Timestamp)來(lái)找到特定的單元,然后根據(jù)單元內(nèi)的值表示的地址信息由存儲(chǔ)區(qū)域中找到數(shù)據(jù)文件。由于在存儲(chǔ)數(shù)據(jù)時(shí),需要分別向存儲(chǔ)區(qū)域內(nèi)寫(xiě)入數(shù)據(jù)文件以及向數(shù)據(jù)表中寫(xiě)入數(shù)據(jù)文件在存儲(chǔ)區(qū)域中的地址信息,使得數(shù)據(jù)庫(kù)的復(fù)雜性較高。由于兩者的寫(xiě)入過(guò)程會(huì)存在一定的先后順序,若在寫(xiě)入過(guò)程中,發(fā)生失電等狀況,可能導(dǎo)致數(shù)據(jù)文件已經(jīng)寫(xiě)入存儲(chǔ)區(qū)域而數(shù)據(jù)表中還未寫(xiě)入地址信息,因此數(shù)據(jù)的一致性無(wú)法得到保證。申請(qǐng)內(nèi)容本申請(qǐng)的一個(gè)目的是提供一種數(shù)據(jù)文件的存儲(chǔ)和查詢方法及設(shè)備,以解決現(xiàn)有技術(shù)中數(shù)據(jù)一致性無(wú)法保證的問(wèn)題。為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)文件的存儲(chǔ)方法,所述方法包括:創(chuàng)建數(shù)據(jù)文件的元信息,所述元信息包含所述數(shù)據(jù)文件在數(shù)據(jù)表中的存儲(chǔ)位置;將所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中第一列簇和第二列簇的同一行中;根據(jù)所述第二列簇中的元信息建立指向所述數(shù)據(jù)文件在所述數(shù)據(jù)表中的存儲(chǔ)位置的索引。進(jìn)一步地,將所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中第一列 ...
【技術(shù)保護(hù)點(diǎn)】
一種數(shù)據(jù)文件的存儲(chǔ)方法,其中,該方法包括:創(chuàng)建數(shù)據(jù)文件的元信息,所述元信息包含所述數(shù)據(jù)文件在數(shù)據(jù)表中的存儲(chǔ)位置;將所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中第一列簇和第二列簇的同一行中;根據(jù)所述第二列簇中的元信息建立指向所述數(shù)據(jù)文件在所述數(shù)據(jù)表中的存儲(chǔ)位置的索引。
【技術(shù)特征摘要】
1.一種數(shù)據(jù)文件的存儲(chǔ)方法,其中,該方法包括:創(chuàng)建數(shù)據(jù)文件的元信息,所述元信息包含所述數(shù)據(jù)文件在數(shù)據(jù)表中的存儲(chǔ)位置;將所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中第一列簇和第二列簇的同一行中;根據(jù)所述第二列簇中的元信息建立指向所述數(shù)據(jù)文件在所述數(shù)據(jù)表中的存儲(chǔ)位置的索引。2.根據(jù)權(quán)利要求1所述的方法,其中,將所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中第一列簇和第二列簇的同一行中之前,包括:對(duì)所述元信息進(jìn)行排序;將所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中第一列簇和第二列簇的同一行中,包括:根據(jù)所述排序?qū)⑺鰯?shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中第一列簇和第二列簇的同一行中。3.根據(jù)權(quán)利要求2所述的方法,其中,所述元信息包括所述數(shù)據(jù)文件在所述數(shù)據(jù)表中的行鍵、列和時(shí)間戳。4.根據(jù)權(quán)利要求3所述的方法,其中,對(duì)所述元信息進(jìn)行排序,包括:依次根據(jù)所述元信息的行鍵、列和時(shí)間戳對(duì)所述元信息進(jìn)行排序。5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其中,根據(jù)所述第二列簇中的元信息建立指向所述數(shù)據(jù)文件在所述數(shù)據(jù)表中的存儲(chǔ)位置的索引,包括:根據(jù)所述元信息建立指向所述數(shù)據(jù)文件在所述數(shù)據(jù)表中的存儲(chǔ)位置的倒排索引。6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的方法,其中,所述數(shù)據(jù)文件包括多個(gè)子文件;創(chuàng)建數(shù)據(jù)文件的元信息,包括:創(chuàng)建數(shù)據(jù)文件的各個(gè)子文件對(duì)應(yīng)的元信息;將所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中
\t第一列簇和第二列簇的同一行中,包括:將包含所述子文件的所述數(shù)據(jù)文件寫(xiě)入所述數(shù)據(jù)表的第一列簇中,并將所述子文件對(duì)應(yīng)的元信息寫(xiě)入所述數(shù)據(jù)表的第二列簇的同一行中。7.根據(jù)權(quán)利要求1至6任一項(xiàng)所述的方法,其中,將所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息分別寫(xiě)入所述數(shù)據(jù)表中第一列簇和第二列簇的同一行中之后,還包括:當(dāng)所述第二列簇的數(shù)據(jù)量達(dá)到設(shè)定閾值后,將所述數(shù)據(jù)表分裂為多個(gè)數(shù)據(jù)域,分別保存于多個(gè)服務(wù)器中。8.一種數(shù)據(jù)文件的查詢方法,用于對(duì)采用權(quán)利要求1至7任一項(xiàng)所述方法存儲(chǔ)的數(shù)據(jù)文件進(jìn)行查詢,其中,所述方法包括:獲取查詢條件,并在所述第二列簇中查找符合所述查詢條件的元信息;根據(jù)所述索引,確定所述符合所述查詢條件的元信息所對(duì)應(yīng)的數(shù)據(jù)文件在所述數(shù)據(jù)表的第一列簇中的存儲(chǔ)位置;由所述第一列簇中的存儲(chǔ)位置獲取所述數(shù)據(jù)文件。9.根據(jù)權(quán)利要求8所述的方法,其中,當(dāng)所述元信息包括所述數(shù)據(jù)文件中的行鍵、列和時(shí)間戳,所述查詢條件至少包括所述元信息中行鍵的全部或者部分信息。10.根據(jù)權(quán)利要求8或9所述的方法,其中,當(dāng)所述數(shù)據(jù)文件與該數(shù)據(jù)文件對(duì)應(yīng)的元信息為分別根據(jù)元信息的排序?qū)懭胨鰯?shù)據(jù)表中時(shí),在所述第二列簇中查找符合所述查詢條件的元信息,包括:根據(jù)所述排序在所述第二列簇中查找符合所述查詢條件的元信息。11.根據(jù)權(quán)利要求10所述的方法,其中,當(dāng)所述元信息依次根據(jù)所述元信息的行鍵、列和時(shí)間戳進(jìn)行排序時(shí),根據(jù)所述排序在所述第二列簇中查找符合所述查詢條件的元信息,包括:根據(jù)所述元信息的行鍵、列和時(shí)間戳的依次排序在所述第二列簇中查找符合所述查詢條件的元信息。12.根據(jù)權(quán)利要求10或11所述的方法,其中,當(dāng)所述查詢條件至少
\t包含所述元信息中行鍵的起始部分的信息時(shí),根據(jù)所述排序在所述第二列簇中查找符合所述查詢條件的元信息,包括:根據(jù)所述排序以及所述元信息中行鍵的起始部分的信息,采用二分查找的方式在所述第二列簇中查找符合所述查詢條件的元信息。13.根據(jù)權(quán)利要求8至12中任一項(xiàng)所述的方法,其中,當(dāng)所述索引為倒排索引時(shí),根據(jù)所述索引確定所述符合所述查詢條件的元信息所對(duì)應(yīng)的數(shù)據(jù)文件在所述數(shù)據(jù)表的第一列簇中的存儲(chǔ)位置,包括:根據(jù)所述倒排索引確定所述符合所述查詢條件的元信息所對(duì)應(yīng)的數(shù)據(jù)文件在所述數(shù)據(jù)表的第一列簇中的存儲(chǔ)位置。14.根據(jù)權(quán)利要求8至13中任一項(xiàng)所述的方法,其中,當(dāng)所述數(shù)據(jù)表包含多個(gè)保存于不同服務(wù)器中的數(shù)據(jù)域時(shí),根據(jù)所述索引,確定所述符合所述查詢條件的元信息所對(duì)應(yīng)的數(shù)據(jù)文件在所述數(shù)據(jù)表的第一列簇中的存儲(chǔ)位置,包括:根據(jù)所述索引,確定所述符合所述查詢條件的元信息所對(duì)應(yīng)的數(shù)據(jù)文件在所述數(shù)據(jù)表中的數(shù)據(jù)域的第一列簇中的存儲(chǔ)位置。15.根據(jù)權(quán)利要求8至14中任一項(xiàng)所述的方法,其中,當(dāng)所述數(shù)據(jù)文件包括多個(gè)子文件,所述第一列簇中保存有包含所述子文件的所述數(shù)據(jù)文件,所述第二列簇的同一行中保存有所述子文件的元信息時(shí),根據(jù)所述索引確定所述符合所述查詢條件的元信息所對(duì)應(yīng)的數(shù)據(jù)文件在所述數(shù)據(jù)表的第一列簇中的存儲(chǔ)...
【專(zhuān)利技術(shù)屬性】
技術(shù)研發(fā)人員:代克,劉熙,呂侶,
申請(qǐng)(專(zhuān)利權(quán))人:星環(huán)信息科技上海有限公司,
類(lèi)型:發(fā)明
國(guó)別省市:上海;31
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。