一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計(jì)算機(jī)技術(shù)領(lǐng)域,特別地設(shè)及一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的方法 和裝置。
【背景技術(shù)】
[0002] 大數(shù)據(jù)一-人們用它來描述當(dāng)前信息爆炸的時(shí)代,它不僅僅表現(xiàn)在數(shù)據(jù)量上的飛 躍,而且數(shù)據(jù)存儲(chǔ)種類也越來越多,從傳統(tǒng)的關(guān)系型數(shù)據(jù)、Key-Value數(shù)據(jù),到形式更加多樣 的平面文件、圖片、音頻、視頻等等。要分析如此繁雜的數(shù)據(jù),對(duì)數(shù)據(jù)平臺(tái)的計(jì)算性能和存儲(chǔ) 性能都提出了更高的要求。
[0003] 采用分布式的化doop系統(tǒng)來做大數(shù)據(jù)的存儲(chǔ)和分析是業(yè)界的普遍做法,由于分 布式的化doop系統(tǒng)采用的是文件存儲(chǔ)數(shù)據(jù)的方式,雖然提升了數(shù)據(jù)的存儲(chǔ)量和吞吐量, 但是卻犧牲了原有的關(guān)系型數(shù)據(jù)庫(kù)的更新機(jī)制,只支持插入,刪除,覆蓋文本文件的操作方 式,導(dǎo)致目前數(shù)據(jù)歷史的積累只能采用數(shù)據(jù)快照的方式。對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)每天保存 一份快照,記錄完整的數(shù)據(jù)狀態(tài),并隨著時(shí)間積累形成歷史數(shù)據(jù)存儲(chǔ)。當(dāng)需要還原或者檢索 數(shù)據(jù)狀態(tài)變化的歷史軌跡時(shí),需要通過全量掃描歷史數(shù)據(jù),進(jìn)行不同時(shí)間點(diǎn)的全域計(jì)算比 對(duì),找出數(shù)據(jù)的差異,還原時(shí)間點(diǎn)的數(shù)據(jù)狀態(tài)。
[0004] 但是現(xiàn)有的技術(shù)方案存在W下的一些缺點(diǎn): 陽(yáng)0化]1.針對(duì)關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)方案對(duì)大數(shù)據(jù)量的處理束手無策;而現(xiàn)有分布式文 件系統(tǒng)采取快照累積的方式,犧牲了大量?jī)?chǔ)存空間,而且在后續(xù)的計(jì)算上,效率低下;
[0006] 2.數(shù)據(jù)檢索往往需要進(jìn)行全量掃描,占用大量系統(tǒng)資源;
[0007] 3.針對(duì)線上復(fù)雜多變的數(shù)據(jù)場(chǎng)景,缺乏靈活性。
[0008] 然而,在大量的應(yīng)用場(chǎng)景中,一個(gè)數(shù)據(jù)從產(chǎn)生到消亡往往會(huì)經(jīng)過很多狀態(tài)變化,相 應(yīng)地,數(shù)據(jù)平臺(tái)在記錄數(shù)據(jù)狀態(tài)變化時(shí)產(chǎn)生了多份快照,數(shù)據(jù)存儲(chǔ)會(huì)急速膨脹,而在數(shù)據(jù)分 析過程中,往往需要對(duì)數(shù)據(jù)進(jìn)行歷史軌跡的跟蹤,需要掃描大量的歷史數(shù)據(jù)進(jìn)行狀態(tài)的還 原,效率低下。因此,如何設(shè)計(jì)一種機(jī)制使數(shù)據(jù)平臺(tái)既能夠記錄數(shù)據(jù)狀態(tài)變化且便于分析和 還原,是擺在我們面前亟需解決的重要問題。
【發(fā)明內(nèi)容】
[0009] 有鑒于此,本發(fā)明提供一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的方法和裝置,能夠在有 效記錄數(shù)據(jù)變化的同時(shí),提高數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)檢索的效率。
[0010] 為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存 儲(chǔ)的方法。
[0011] 一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的方法,包括:通過將當(dāng)天的數(shù)據(jù)與數(shù)據(jù)狀態(tài)變 化表中的數(shù)據(jù)進(jìn)行比較,對(duì)發(fā)生變化的數(shù)據(jù)進(jìn)行分類;將所述分類后的數(shù)據(jù)分煉到不同的 目錄下,并按照所述目錄的數(shù)據(jù)存儲(chǔ)規(guī)則存儲(chǔ)在相應(yīng)的分區(qū)下;W及更新所述數(shù)據(jù)狀態(tài)變 化表。
[0012] 可選地,所述分類是依據(jù)數(shù)據(jù)生命周期的過程來進(jìn)行的,且包括在線類、過期類和 歸檔類S種類型。
[0013] 可選地,對(duì)發(fā)生變化的數(shù)據(jù)進(jìn)行分類的步驟包括:通過查找數(shù)據(jù)的鍵名,將當(dāng)天的 數(shù)據(jù)與數(shù)據(jù)狀態(tài)變化表中的數(shù)據(jù)進(jìn)行比較;如果所述數(shù)據(jù)狀態(tài)變化表中沒有所述數(shù)據(jù),且 所述當(dāng)天的數(shù)據(jù)中有所述數(shù)據(jù),則所述數(shù)據(jù)為在線類;如果所述數(shù)據(jù)狀態(tài)變化表與所述當(dāng) 天的數(shù)據(jù)中都有所述數(shù)據(jù),但是所述數(shù)據(jù)的鍵值不同,則所述數(shù)據(jù)狀態(tài)變化表中的所述數(shù) 據(jù)為過期類,且當(dāng)天的所述數(shù)據(jù)為在線類;W及如果所述數(shù)據(jù)狀態(tài)變化表中有所述數(shù)據(jù),且 當(dāng)天的數(shù)據(jù)中沒有所述數(shù)據(jù),則所述數(shù)據(jù)為歸檔類。
[0014] 可選地,所述數(shù)據(jù)存儲(chǔ)規(guī)則包括分區(qū)名稱、數(shù)據(jù)時(shí)間和數(shù)據(jù)生命截止時(shí)間3個(gè)目 錄級(jí)別。
[0015] 可選地,所述分區(qū)名稱包括在線分區(qū)、過期分區(qū)和歸檔分區(qū)。
[0016] 可選地,按照所述目錄的數(shù)據(jù)存儲(chǔ)規(guī)則存儲(chǔ)在相應(yīng)的分區(qū)下的步驟包括:所述在 線類數(shù)據(jù)的一級(jí)目錄分區(qū)名稱為在線分區(qū),二級(jí)目錄數(shù)據(jù)時(shí)間為最大時(shí)間,=級(jí)目錄數(shù)據(jù) 生命截止時(shí)間為最大時(shí)間;所述過期類數(shù)據(jù)的一級(jí)目錄分區(qū)名稱為過期分區(qū),二級(jí)目錄數(shù) 據(jù)時(shí)間為變化時(shí)間,=級(jí)目錄數(shù)據(jù)生命截止時(shí)間為變化時(shí)間;W及所述歸檔類數(shù)據(jù)的一級(jí) 目錄分區(qū)名稱為歸檔分區(qū),二級(jí)目錄數(shù)據(jù)時(shí)間為變化時(shí)間,=級(jí)目錄數(shù)據(jù)生命截止時(shí)間為 最大時(shí)間。
[0017] 可選地,更新所述數(shù)據(jù)狀態(tài)變化表的步驟包括:插入所述在線類數(shù)據(jù)的鍵名、鍵 值、狀態(tài)變化起始時(shí)間和狀態(tài)變化結(jié)束時(shí)間,其中,所述狀態(tài)變化起始時(shí)間為變化時(shí)間,所 述狀態(tài)變化結(jié)束時(shí)間為最大時(shí)間;W及將所述過期類數(shù)據(jù)的所述狀態(tài)變化結(jié)束時(shí)間設(shè)為變 化時(shí)間。
[0018] 根據(jù)本發(fā)明的另一方面,提供了一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的裝置。
[0019] 一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的裝置,包括:數(shù)據(jù)分類模塊,用于通過將當(dāng)天的 數(shù)據(jù)與數(shù)據(jù)狀態(tài)變化表中的數(shù)據(jù)進(jìn)行比較,對(duì)發(fā)生變化的數(shù)據(jù)進(jìn)行分類;數(shù)據(jù)存儲(chǔ)模塊,用 于將所述分類后的數(shù)據(jù)分煉到不同的目錄下,并按照所述目錄的數(shù)據(jù)存儲(chǔ)規(guī)則存儲(chǔ)在相應(yīng) 的分區(qū)下;W及狀態(tài)更新模塊,用于更新所述數(shù)據(jù)狀態(tài)變化表。
[0020] 可選地,所述分類是依據(jù)數(shù)據(jù)的生命周期的過程來進(jìn)行的,且包括在線類、過期類 和歸檔類S種類型。
[0021] 可選地,所述數(shù)據(jù)分類模塊還用于:通過查找數(shù)據(jù)的鍵名,將當(dāng)天的數(shù)據(jù)與數(shù)據(jù)狀 態(tài)變化表中的數(shù)據(jù)進(jìn)行比較;如果所述數(shù)據(jù)狀態(tài)變化表中沒有所述數(shù)據(jù),且所述當(dāng)天的數(shù) 據(jù)中有所述數(shù)據(jù),則所述數(shù)據(jù)為在線類;如果所述數(shù)據(jù)狀態(tài)變化表與所述當(dāng)天的數(shù)據(jù)中都 有所述數(shù)據(jù),但是所述數(shù)據(jù)的鍵值不同,則所述數(shù)據(jù)狀態(tài)變化表中的所述數(shù)據(jù)為過期類,且 當(dāng)天的所述數(shù)據(jù)為在線類;W及如果所述數(shù)據(jù)狀態(tài)變化表中有所述數(shù)據(jù),且當(dāng)天的數(shù)據(jù)中 沒有所述數(shù)據(jù),則所述數(shù)據(jù)為歸檔類。
[0022] 可選地,所述數(shù)據(jù)存儲(chǔ)規(guī)則包括分區(qū)名稱、數(shù)據(jù)時(shí)間和數(shù)據(jù)生命截止時(shí)間3個(gè)目 錄級(jí)別。
[0023] 可選地,所述分區(qū)名稱包括在線分區(qū)、過期分區(qū)和歸檔分區(qū)。
[0024] 可選地,所述數(shù)據(jù)存儲(chǔ)模塊還用于:所述在線類數(shù)據(jù)的一級(jí)目錄分區(qū)名稱為在線 分區(qū),二級(jí)目錄數(shù)據(jù)時(shí)間為最大時(shí)間,=級(jí)目錄數(shù)據(jù)生命截止時(shí)間為最大時(shí)間;所述過期類 數(shù)據(jù)的一級(jí)目錄分區(qū)名稱為過期分區(qū),二級(jí)目錄數(shù)據(jù)時(shí)間為變化時(shí)間,=級(jí)目錄數(shù)據(jù)生命 截止時(shí)間為變化時(shí)間;W及所述歸檔類數(shù)據(jù)的一級(jí)目錄分區(qū)名稱為歸檔分區(qū),二級(jí)目錄數(shù) 據(jù)時(shí)間為變化時(shí)間,=級(jí)目錄數(shù)據(jù)生命截止時(shí)間為最大時(shí)間。
[00巧]可選地,所述狀態(tài)更新模塊還用于:插入所述在線類數(shù)據(jù)的鍵名、鍵值、狀態(tài)變化 起始時(shí)間和狀態(tài)變化結(jié)束時(shí)間,其中,所述狀態(tài)變化起始時(shí)間為變化時(shí)間,所述狀態(tài)變化結(jié) 束時(shí)間為最大時(shí)間;W及將所述過期類數(shù)據(jù)的所述狀態(tài)變化結(jié)束時(shí)間設(shè)為變化時(shí)間。
[0026] 根據(jù)本發(fā)明的技術(shù)方案,僅在數(shù)據(jù)狀態(tài)發(fā)生變化時(shí),才需要對(duì)該數(shù)據(jù)進(jìn)行分類、存 儲(chǔ)及狀態(tài)更新等操作,對(duì)于未發(fā)生變化的數(shù)據(jù)無需進(jìn)行二次存儲(chǔ)或狀態(tài)更新,從而可W在 有效記錄數(shù)據(jù)變化的同時(shí),提高數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)檢索的效率,有效的節(jié)省數(shù)據(jù)存儲(chǔ)空間,而 且對(duì)過期數(shù)據(jù)的清理也十分容易和方便。
【附圖說明】
[0027] 附圖用于更好地理解本發(fā)明,不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。其中:
[0028] 圖1是根據(jù)本發(fā)明實(shí)施例的一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的方法的主要步驟 不意圖;
[0029] 圖2是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)分區(qū)存儲(chǔ)的示意圖;
[0030] 圖3是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)清理的示意圖;
[0031] 圖4是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)狀態(tài)變化表的示意圖;
[0032] 圖5是根據(jù)本發(fā)明實(shí)施例的一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的裝置的主要模塊 示意圖;
[0033] 圖6是本發(fā)明實(shí)施例與現(xiàn)有技術(shù)的存儲(chǔ)效果比較示意圖。
【具體實(shí)施方式】
[0034]W下結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例做出說明,其中包括本發(fā)明實(shí)施例的各種 細(xì)節(jié)W助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí) 至IJ,可W對(duì)運(yùn)里描述的實(shí)施例做出各種改變和修改,而不會(huì)背離本發(fā)明的范圍和精神。同 樣,為了清楚和簡(jiǎn)明,W下的描述中省略了對(duì)公知功能和結(jié)構(gòu)的描述。
[0035] 本發(fā)明的一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的方法,僅在數(shù)據(jù)項(xiàng)狀態(tài)發(fā)生變化時(shí), 才需要對(duì)該數(shù)據(jù)項(xiàng)進(jìn)行分類、存儲(chǔ)及狀態(tài)更新等操作,對(duì)于未發(fā)生變化的數(shù)據(jù)項(xiàng)無需進(jìn)行 二次存儲(chǔ)或狀態(tài)更新,從而可W在有效記錄數(shù)據(jù)變化的同時(shí),提高數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)檢索的 效率。
[0036] 圖1是根據(jù)本發(fā)明實(shí)施例的一種分布式數(shù)據(jù)平臺(tái)下數(shù)據(jù)存儲(chǔ)的方法的主要步驟 示意圖。如圖1所示,本發(fā)明的一種分布式數(shù)據(jù)平臺(tái)下數(shù)