本發(fā)明實(shí)施例涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)的處理方法及裝置。
背景技術(shù):
數(shù)據(jù)抽取主要指對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行抽取的過程,常見的數(shù)據(jù)抽取方式包括全量抽取和增量抽取,其中,全量抽取是指將數(shù)據(jù)源中的數(shù)據(jù)原封不動(dòng)的從數(shù)據(jù)庫中抽取出來;而增量抽取指從數(shù)據(jù)庫中抽取自上次抽取以來新增、修改和/或刪除的數(shù)據(jù)。在數(shù)據(jù)庫的抽取-轉(zhuǎn)換-加載(Extract-Transform-Load,ETL)過程中,增量抽取的方法較全量抽取的應(yīng)用更為廣范。
目前,常見的增量抽取方式可以基于觸發(fā)器、時(shí)間戳、全表對(duì)比和/或日志對(duì)比等。上述幾種方式在其工作特性上各有優(yōu)劣,但實(shí)際應(yīng)用中最廣泛的是基于時(shí)間戳的增量抽取。具體地,基于時(shí)間戳的增量抽取可概括為:在源數(shù)據(jù)表上增加時(shí)間戳字段(相當(dāng)于一個(gè)更新標(biāo)識(shí)字段),在更新修改表數(shù)據(jù)時(shí),也同時(shí)修改時(shí)間戳字段的值,當(dāng)進(jìn)行數(shù)據(jù)抽取時(shí),通過比較系統(tǒng)時(shí)間與時(shí)間戳字段的值來決定抽取哪些數(shù)據(jù)。基于時(shí)間戳的增量抽取存在的不足表現(xiàn)在:有些數(shù)據(jù)庫中的數(shù)據(jù)表直接被設(shè)計(jì)為無時(shí)間戳字段,由此無法得出哪些數(shù)據(jù)在何時(shí)進(jìn)行了新增、修改或者刪除。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)的處理方法及裝置,簡單高效地實(shí)現(xiàn)了對(duì)不存在更新標(biāo)識(shí)字段的數(shù)據(jù)表中更新數(shù)據(jù)的增量抽取。
一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)的處理方法,包括:
獲取當(dāng)前數(shù)據(jù)表的屬性信息;
根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息查找關(guān)聯(lián)的增量數(shù)據(jù)表,其中,所述增量數(shù)據(jù)表中包含當(dāng)前處理周期內(nèi)獲取的當(dāng)前增量數(shù)據(jù);
根據(jù)所述增量數(shù)據(jù)表中的當(dāng)前增量數(shù)據(jù),確定所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù)。
另一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)的處理裝置,包括:
信息獲取模塊,用于獲取當(dāng)前數(shù)據(jù)表的屬性信息;
關(guān)聯(lián)表確定模塊,用于根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息查找關(guān)聯(lián)的增量數(shù)據(jù)表,其中,所述增量數(shù)據(jù)表中包含當(dāng)前處理周期內(nèi)獲取的當(dāng)前增量數(shù)據(jù);
目標(biāo)數(shù)據(jù)確定模塊,用于根據(jù)所述增量數(shù)據(jù)表中的當(dāng)前增量數(shù)據(jù),確定所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù)。
本發(fā)明實(shí)施例中提供的一種數(shù)據(jù)的處理方法及裝置,該方法首先獲取當(dāng)前數(shù)據(jù)表的屬性信息;然后根據(jù)屬性信息確定與當(dāng)前數(shù)據(jù)表關(guān)聯(lián)的增量數(shù)據(jù)表,其中,增量數(shù)據(jù)表中包含了當(dāng)前處理周期內(nèi)更新的增量數(shù)據(jù);最后,基于增量數(shù)據(jù)表的增量數(shù)據(jù)確定了當(dāng)前數(shù)據(jù)表中更新的增量數(shù)據(jù)。利用該方法,能夠?qū)Σ痪邆涓聵?biāo)識(shí)字段的數(shù)據(jù)庫表中更新數(shù)據(jù)簡單高效地進(jìn)行跨數(shù)據(jù)倉庫的增量抽取,與現(xiàn)有的數(shù)據(jù)的增量抽取方式相比,本發(fā)明實(shí)施例提供的處理方法具有更好的增量抽取性能,能夠節(jié)省數(shù)據(jù)處理的處理時(shí)間。
附圖說明
圖1為本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)的處理方法的流程示意圖;
圖2為本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)的處理方法的流程示意圖;
圖3為本發(fā)明實(shí)施例三提供的一種數(shù)據(jù)的處理方法的優(yōu)選實(shí)施例的流程示意圖;
圖4為本發(fā)明實(shí)施例四提供的一種數(shù)據(jù)的處理裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實(shí)施例一
圖1為本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)的處理方法的流程示意圖,該處理方法適用于跨數(shù)據(jù)倉庫增量抽取更新數(shù)據(jù)的情況,該方法可以由數(shù)據(jù)的處理裝置執(zhí)行,其中該裝置可由軟件和/或硬件實(shí)現(xiàn)。
需要說明的是,本發(fā)明實(shí)施例的處理方法可以對(duì)不具備更新標(biāo)識(shí)字段的源數(shù)據(jù)表實(shí)現(xiàn)進(jìn)行跨數(shù)據(jù)倉庫的增量抽取,即從源數(shù)據(jù)倉庫不具備更新數(shù)據(jù)標(biāo)識(shí)的源數(shù)據(jù)表中抽取更新數(shù)據(jù)并存儲(chǔ)到目標(biāo)數(shù)據(jù)倉庫的目標(biāo)數(shù)據(jù)表中??梢岳斫獾氖?,源數(shù)據(jù)倉庫中的源數(shù)據(jù)表和目標(biāo)數(shù)據(jù)倉庫的目標(biāo)數(shù)據(jù)表一一對(duì)應(yīng)。此外,執(zhí)行本發(fā)明實(shí)施例處理方法的數(shù)據(jù)的處理裝置集成在所述目標(biāo)數(shù)據(jù)倉庫所在的服務(wù)平臺(tái)上。
如圖1所示,本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)的處理方法,包括如下操作:
S101、獲取當(dāng)前數(shù)據(jù)表的屬性信息。
在本實(shí)施例中,所述當(dāng)前數(shù)據(jù)表具體可以是位于目標(biāo)數(shù)據(jù)倉庫中的一個(gè)目標(biāo)數(shù)據(jù)表,且是當(dāng)前正在進(jìn)行數(shù)據(jù)處理的目標(biāo)數(shù)據(jù)表,所述當(dāng)前數(shù)據(jù)表具體可用于存放源數(shù)據(jù)倉庫相應(yīng)源數(shù)據(jù)表中的更新數(shù)據(jù),其中,所述更新數(shù)據(jù)可稱為所述當(dāng)前數(shù)據(jù)表的增量數(shù)據(jù)。
在本實(shí)施例中,所述屬性信息具體可指所述當(dāng)前數(shù)據(jù)表中各列所具有的字段信息。示例性地,假設(shè)當(dāng)前數(shù)據(jù)表為所在數(shù)據(jù)倉庫中的一個(gè)學(xué)生選課信息表,則可以獲取到所述學(xué)生選課信息表的屬性信息為學(xué)號(hào)、姓名、數(shù)據(jù)結(jié)構(gòu)、匯編語言等表中各列所具有的字段信息。
S102、根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息查找關(guān)聯(lián)的增量數(shù)據(jù)表,其中,所述增量數(shù)據(jù)表中包含當(dāng)前處理周期內(nèi)獲取的當(dāng)前增量數(shù)據(jù)。
在本實(shí)施例中,所述增量數(shù)據(jù)表具體也可以是位于目標(biāo)數(shù)據(jù)倉庫中的一個(gè)目標(biāo)數(shù)據(jù)表。可以理解的是,所述增量數(shù)據(jù)表與所述當(dāng)前數(shù)據(jù)表基于屬性信息存在關(guān)聯(lián),即,可以理解為所述當(dāng)前數(shù)據(jù)表中的至少一個(gè)列字段也相應(yīng)的存在于所述增量數(shù)據(jù)表中,其中,所述至少一個(gè)列字段可稱為增量數(shù)據(jù)表與所述當(dāng)前數(shù)據(jù)表的關(guān)聯(lián)字段。示例性地,在確定當(dāng)前數(shù)據(jù)表為一個(gè)學(xué)生選課信息表時(shí),假設(shè)增量數(shù)據(jù)表為一個(gè)學(xué)生基本信息表,且獲取到該學(xué)生基本信息表中的屬性信息有學(xué)號(hào)、姓名、性別、籍貫、出生年月等列字段信息,則可確定該學(xué)生基本信息表與所述學(xué)生選課信息表基于學(xué)號(hào)和/或姓名存在關(guān)聯(lián)。
在本實(shí)施例中,對(duì)源數(shù)據(jù)倉庫的數(shù)據(jù)表中更新數(shù)據(jù)的增量抽取是基于設(shè)定的時(shí)間周期進(jìn)行的。本實(shí)施例將設(shè)定的時(shí)間周期看作一個(gè)處理周期,在一個(gè)處理周期內(nèi),可以將所述源數(shù)據(jù)倉庫各源數(shù)據(jù)表中的更新數(shù)據(jù)抽取到目標(biāo)數(shù)據(jù)倉庫與各源數(shù)據(jù)表對(duì)應(yīng)的目標(biāo)數(shù)據(jù)表中,且可將所抽取的更新數(shù)據(jù)稱為目標(biāo)數(shù)據(jù)表中的增量數(shù)據(jù)。
需要說明的是,基于所述屬性信息與所述當(dāng)前數(shù)據(jù)表存在關(guān)聯(lián)的數(shù)據(jù)表很多,但只有已經(jīng)在當(dāng)前處理周期內(nèi)獲得了當(dāng)前增量數(shù)據(jù)的數(shù)據(jù)表才可作為與所述當(dāng)前數(shù)據(jù)表關(guān)聯(lián)的增量數(shù)據(jù)表,由此才能基于增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)來確定所述當(dāng)前數(shù)據(jù)表在當(dāng)前處理周期內(nèi)的增量數(shù)據(jù)。此外,由于所述增量數(shù)據(jù)表在源數(shù)據(jù)倉庫中對(duì)應(yīng)的源數(shù)據(jù)表有可能具備更新標(biāo)識(shí)字段,所以本實(shí)施例對(duì)所述增量數(shù)據(jù)表獲得當(dāng)前增量數(shù)據(jù)采用的方法沒有限定,可以基于現(xiàn)有的增量抽取方法,也可基于本實(shí)施例提供的處理方法。
S103、根據(jù)所述增量數(shù)據(jù)表中的當(dāng)前增量數(shù)據(jù),確定所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù)。
在本實(shí)施例中,基于步驟S102獲得所述當(dāng)前數(shù)據(jù)表的增量數(shù)據(jù)表后,可以基于所述增量數(shù)據(jù)表中的當(dāng)前增量數(shù)據(jù)來確定所述當(dāng)前數(shù)據(jù)表在當(dāng)前處理周期內(nèi)的目標(biāo)增量數(shù)據(jù)。具體地,首先可以確定與所述當(dāng)前數(shù)據(jù)表存在建立關(guān)聯(lián)時(shí)所基于的關(guān)聯(lián)字段;然后可以確定所述關(guān)聯(lián)字段在當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值;之后,可以基于關(guān)聯(lián)字段對(duì)應(yīng)的增量數(shù)據(jù)值在源數(shù)據(jù)倉庫的源數(shù)據(jù)表中確定包含所述增量數(shù)據(jù)值的所有更新數(shù)據(jù);最終,可以獲取包含所述增量數(shù)據(jù)值的所有更新數(shù)據(jù)并作為目標(biāo)增量數(shù)據(jù)寫入所述當(dāng)前數(shù)據(jù)表中,由此完成當(dāng)前數(shù)據(jù)表對(duì)相應(yīng)源數(shù)據(jù)表中當(dāng)前處理周期內(nèi)所產(chǎn)生更新數(shù)據(jù)的增量抽取。
本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)的處理方法,首先獲取當(dāng)前數(shù)據(jù)表的屬性信息;然后根據(jù)屬性信息確定與當(dāng)前數(shù)據(jù)表關(guān)聯(lián)的增量數(shù)據(jù)表,其中,增量數(shù)據(jù)表中包含了當(dāng)前處理周期內(nèi)更新的增量數(shù)據(jù);最后,基于增量數(shù)據(jù)表的增量數(shù)據(jù)確定了當(dāng)前數(shù)據(jù)表中更新的增量數(shù)據(jù)。利用該方法,能夠?qū)Σ痪邆涓聵?biāo)識(shí)字段的數(shù)據(jù)庫表中更新數(shù)據(jù)簡單高效地進(jìn)行跨數(shù)據(jù)倉庫的增量抽取,與現(xiàn)有的數(shù)據(jù)的增量抽取方式相比,該處理方法具有更好的增量抽取性能,能夠節(jié)省數(shù)據(jù)處理的處理時(shí)間。
實(shí)施例二
圖2為本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)的處理方法的流程示意圖,本發(fā)明實(shí)施例二以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,在本實(shí)施例中,將根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息查找關(guān)聯(lián)的增量數(shù)據(jù)表,具體優(yōu)化為:根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息,確定所述當(dāng)前數(shù)據(jù)表中的關(guān)聯(lián)鍵;根據(jù)所述關(guān)聯(lián)鍵確定與所述當(dāng)前數(shù)據(jù)表相關(guān)聯(lián)的增量數(shù)據(jù)表。
進(jìn)一步地,將根據(jù)所述增量數(shù)據(jù)表中的當(dāng)前增量數(shù)據(jù),確定所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù),具體優(yōu)化為:獲取所述關(guān)聯(lián)鍵在所述增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值并存儲(chǔ);根據(jù)所存儲(chǔ)的增量數(shù)據(jù)值查找所述當(dāng)前數(shù)據(jù)表中的目標(biāo)增量數(shù)據(jù)。
如圖2所示,本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)的處理方法,包括如下操作:
S201、獲取當(dāng)前數(shù)據(jù)表的屬性信息。
示例性地,獲取當(dāng)前數(shù)據(jù)表中各列的字段信息。
S202、根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息,確定所述當(dāng)前數(shù)據(jù)表中的關(guān)聯(lián)鍵。
在本實(shí)施例中,所述關(guān)聯(lián)鍵具體可理解為能夠與當(dāng)前數(shù)據(jù)表所在數(shù)據(jù)倉庫中其他數(shù)據(jù)表建立表間引用關(guān)系的列字段,例如,當(dāng)前數(shù)據(jù)表中存在一個(gè)“學(xué)號(hào)”的列字段,當(dāng)前數(shù)據(jù)表所在數(shù)據(jù)倉庫的其他數(shù)據(jù)表中也有存在“學(xué)號(hào)”這個(gè)列字段的關(guān)聯(lián)數(shù)據(jù)表,則可認(rèn)為“學(xué)號(hào)”為所述當(dāng)前數(shù)據(jù)表與所述關(guān)聯(lián)數(shù)據(jù)表的關(guān)聯(lián)鍵。
S203、根據(jù)所述關(guān)聯(lián)鍵確定與所述當(dāng)前數(shù)據(jù)表相關(guān)聯(lián)的增量數(shù)據(jù)表。
在本實(shí)施例中,可以在當(dāng)前數(shù)據(jù)表所在數(shù)據(jù)倉庫中確定其他數(shù)據(jù)表的屬性信息,由此可以確定出包含所述關(guān)聯(lián)鍵的關(guān)聯(lián)數(shù)據(jù)表,并可認(rèn)為所述關(guān)聯(lián)數(shù)據(jù)表與所述當(dāng)前數(shù)據(jù)表存在表間引用關(guān)系,之后,需要進(jìn)一步確定所述關(guān)聯(lián)數(shù)據(jù)表是否已獲取到當(dāng)前處理周期內(nèi)對(duì)應(yīng)的當(dāng)前增量數(shù)據(jù),若存在,則可將所述關(guān)聯(lián)數(shù)據(jù)表作為所述增量數(shù)據(jù)表,即,所述增量數(shù)據(jù)表中包含當(dāng)前處理周期內(nèi)獲取的當(dāng)前增量數(shù)據(jù)。
進(jìn)一步地,所述當(dāng)前數(shù)據(jù)表和所述增量數(shù)據(jù)表位于大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫中。
一般地,源數(shù)據(jù)倉庫通常用于存儲(chǔ)用戶在實(shí)際應(yīng)用中產(chǎn)生的數(shù)據(jù)信息,該數(shù)據(jù)信息隨著實(shí)際應(yīng)用中數(shù)據(jù)的變化而發(fā)生變化,僅用于記錄用戶最新產(chǎn)生的數(shù)據(jù)信息,而無法記錄之前的歷史數(shù)據(jù),因此,設(shè)定了特定的目標(biāo)數(shù)據(jù)倉庫來記錄源數(shù)據(jù)倉庫中各數(shù)據(jù)表對(duì)應(yīng)的歷史數(shù)據(jù)信息。然而,隨著數(shù)據(jù)信息量的不斷增加,傳統(tǒng)的目標(biāo)數(shù)據(jù)倉庫已不能記錄海量的歷史數(shù)據(jù)信息,由此產(chǎn)生了大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫,以用于記錄和積累海量的歷史數(shù)據(jù)信息,并用于分析和挖掘歷史數(shù)據(jù)信息中的有用信息。
在本實(shí)施例中,為了積累更多的歷史數(shù)據(jù)信息,就在大數(shù)據(jù)平臺(tái)上設(shè)置了數(shù)據(jù)倉庫,并將所述大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫作為本實(shí)施例中的目標(biāo)數(shù)據(jù)倉庫??梢源_定的是,所述當(dāng)前數(shù)據(jù)表以及所述增量數(shù)據(jù)表均位于所述大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫中。
S204、獲取所述關(guān)聯(lián)鍵在所述增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值并存儲(chǔ)。
在本實(shí)施例中,基于步驟S203確定的增量數(shù)據(jù)表包含了當(dāng)前處理周期內(nèi)獲取的當(dāng)前增量數(shù)據(jù),可以基于所述增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)來確定所述當(dāng)前數(shù)據(jù)表中的目標(biāo)增量數(shù)據(jù)。具體地,首先可以基于步驟S204在所述增量數(shù)據(jù)表中確定所述關(guān)聯(lián)鍵在所述增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值,并可以對(duì)所確定的增量數(shù)據(jù)值進(jìn)行存儲(chǔ)。
進(jìn)一步地,所述獲取所述關(guān)聯(lián)鍵在所述增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值并存儲(chǔ),包括:通過設(shè)定的數(shù)據(jù)庫查詢語句查找所述關(guān)聯(lián)鍵在所述增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值;根據(jù)所述增量數(shù)據(jù)值的數(shù)據(jù)量大小確定所述增量數(shù)據(jù)值的存儲(chǔ)方式,并按照所述存儲(chǔ)方式存儲(chǔ)所述增量數(shù)據(jù)值。
在本實(shí)施例中,確定所述增量數(shù)據(jù)表在當(dāng)前處理周期內(nèi)對(duì)應(yīng)的當(dāng)前增量數(shù)據(jù)以及確定所述關(guān)聯(lián)鍵之后,可以設(shè)定與所述關(guān)聯(lián)鍵相關(guān)的數(shù)據(jù)庫查詢語句獲取當(dāng)前增量數(shù)據(jù)中與所述關(guān)聯(lián)鍵對(duì)應(yīng)的增量數(shù)據(jù)值,其中,所述數(shù)據(jù)庫查詢語句具體可理解為基于結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)編寫的查詢語句。
一般地,對(duì)于所獲取的所述增量數(shù)據(jù)值可以直接緩存在運(yùn)行內(nèi)存中,用于后續(xù)的處理操作,然而,由于本實(shí)施例中所述增量數(shù)據(jù)表位于所述大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫,所獲得增量數(shù)據(jù)值的數(shù)據(jù)量有可能很大,如果直接將數(shù)據(jù)量較大的增量數(shù)據(jù)值緩存在運(yùn)行內(nèi)存中,有可能影響運(yùn)算性能,此時(shí)可以考慮將所述增量數(shù)據(jù)值存放在本地文件中,在之后處理中可以從本地文件中調(diào)用所述增量數(shù)據(jù)值。因此,本實(shí)施例可以基于所述增量數(shù)據(jù)值的數(shù)據(jù)量大小來確定存儲(chǔ)方式,以使數(shù)據(jù)處理保持良好的運(yùn)算性能。
在本實(shí)施例中,基于所述增量數(shù)據(jù)值的數(shù)據(jù)量大小確定存儲(chǔ)方式時(shí),本實(shí)施例不限定數(shù)據(jù)量大小與存儲(chǔ)方式的對(duì)應(yīng)關(guān)系,可以由技術(shù)人員在實(shí)際應(yīng)用中根據(jù)具體地應(yīng)用具體設(shè)定。示例性地,對(duì)傳統(tǒng)數(shù)據(jù)倉庫進(jìn)行數(shù)據(jù)處理時(shí),如果獲取的增量數(shù)據(jù)值的數(shù)據(jù)量大小為10M,則可確定其存儲(chǔ)方式為本地存儲(chǔ),而對(duì)大數(shù)據(jù)平臺(tái)上的數(shù)據(jù)倉庫進(jìn)行數(shù)據(jù)處理時(shí),若數(shù)據(jù)量大小也為10M,則由于大數(shù)據(jù)平臺(tái)中為分布式處理,因此仍可考慮將所述增量數(shù)據(jù)值直接緩存到運(yùn)行內(nèi)存中。
S205、根據(jù)所存儲(chǔ)的增量數(shù)據(jù)值查找所述當(dāng)前數(shù)據(jù)表中的目標(biāo)增量數(shù)據(jù)。
在本實(shí)施例中,所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù)為所述源數(shù)據(jù)倉庫中對(duì)應(yīng)源數(shù)據(jù)表在當(dāng)前處理周期內(nèi)的更新數(shù)據(jù),因此,需要從所述源數(shù)據(jù)據(jù)表中獲取當(dāng)前處理周期內(nèi)的更新數(shù)據(jù)。本實(shí)施例可以基于所述增量數(shù)據(jù)值從源數(shù)據(jù)倉庫對(duì)應(yīng)于當(dāng)前數(shù)據(jù)表的源數(shù)據(jù)表中獲取與所述增量數(shù)據(jù)值關(guān)聯(lián)的更新數(shù)據(jù),以作為所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù)。
在本實(shí)施例中,基于所存儲(chǔ)的增量數(shù)據(jù)值來確定所述目標(biāo)增量數(shù)據(jù)的原因在于:所存儲(chǔ)的增量數(shù)據(jù)值為所述關(guān)聯(lián)鍵在所述增量數(shù)據(jù)表中對(duì)應(yīng)的增量數(shù)據(jù)值,由于所述關(guān)聯(lián)鍵也屬于所述當(dāng)前數(shù)據(jù)表,所以關(guān)聯(lián)鍵對(duì)應(yīng)的增量數(shù)據(jù)值也可視為關(guān)聯(lián)鍵在當(dāng)前數(shù)據(jù)表中對(duì)應(yīng)的增量數(shù)據(jù)值。因此,在確定所述當(dāng)前數(shù)據(jù)表關(guān)聯(lián)鍵對(duì)應(yīng)的增量數(shù)據(jù)值后,就可以基于該關(guān)聯(lián)鍵的增量數(shù)據(jù)值確定當(dāng)前數(shù)據(jù)表中其他列字段對(duì)應(yīng)的更新數(shù)據(jù)。
進(jìn)一步地,所述根據(jù)所存儲(chǔ)的增量數(shù)據(jù)值查找所述當(dāng)前數(shù)據(jù)表中的目標(biāo)增量數(shù)據(jù),包括:根據(jù)所存儲(chǔ)的增量數(shù)據(jù)值生成查詢請(qǐng)求,并發(fā)送所述查詢請(qǐng)求至源數(shù)據(jù)倉庫;獲取所述源數(shù)據(jù)倉庫的源數(shù)據(jù)表中與所述查詢請(qǐng)求對(duì)應(yīng)的更新數(shù)據(jù),其中,所述源數(shù)據(jù)表對(duì)應(yīng)于所述當(dāng)前數(shù)據(jù)表;按照預(yù)先指定的路徑將所述更新數(shù)據(jù)作為目標(biāo)增量數(shù)據(jù)寫入所述當(dāng)前數(shù)據(jù)表。
在本實(shí)施例中,可以獲取基于SQL編寫的包含所述增量數(shù)據(jù)值的查詢請(qǐng)求,之后需要發(fā)送所述查詢請(qǐng)求給所述源數(shù)據(jù)倉庫,源數(shù)據(jù)倉庫獲取所述查詢請(qǐng)求后可對(duì)所述當(dāng)前數(shù)據(jù)表對(duì)應(yīng)的源數(shù)據(jù)表進(jìn)行查詢,并從所述源數(shù)據(jù)表中確定包含所述增量數(shù)據(jù)值的更新數(shù)據(jù),最后當(dāng)前數(shù)據(jù)表所在數(shù)據(jù)倉庫可以獲取到源數(shù)據(jù)表中確定的更新數(shù)據(jù)。在本實(shí)施例中,在獲取到所述更新數(shù)據(jù)之后,可以基于所述當(dāng)前數(shù)據(jù)表在相應(yīng)數(shù)據(jù)倉庫中的具體位置路徑將所述更新數(shù)據(jù)作為目標(biāo)增量數(shù)據(jù)寫入所述當(dāng)前數(shù)據(jù)表。
進(jìn)一步地,所述大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫基于集成在大數(shù)據(jù)平臺(tái)中的信息交互組件與其他數(shù)據(jù)倉庫進(jìn)行信息交互。
在本實(shí)施例中,在基于所述查詢請(qǐng)求確定所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù)時(shí),需要源數(shù)據(jù)倉庫與目標(biāo)數(shù)據(jù)倉庫進(jìn)行信息交互,對(duì)于大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫而言,可以基于集成在大數(shù)據(jù)平臺(tái)中的信息交互組件來實(shí)現(xiàn)與其他數(shù)據(jù)倉庫的信息交互。示例性地,所述信息交互組件可以是大數(shù)據(jù)平臺(tái)常用的開源組件,如Sqoop組件,也可以是技術(shù)人員基于信息交互的要求編寫的并集成在大數(shù)據(jù)平臺(tái)中的交互組件。
本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)的處理方法,具體化了增量數(shù)據(jù)表的獲取過程,還具體化了基于增量數(shù)據(jù)表確定目標(biāo)增量數(shù)據(jù)的過程,同時(shí)將當(dāng)前數(shù)據(jù)表所在的數(shù)據(jù)倉庫優(yōu)化為大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫,由此來存儲(chǔ)更多的歷史數(shù)據(jù),以用于分析挖掘更有價(jià)值的數(shù)據(jù)信息。利用該方法,能夠?qū)⒃磾?shù)據(jù)倉庫不具備更新標(biāo)識(shí)字段的數(shù)據(jù)庫表中的更新數(shù)據(jù)簡單高效地增量抽取到大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫中,與現(xiàn)有的數(shù)據(jù)的增量抽取方式相比,該處理方法具有更好的增量抽取性能,能夠節(jié)省數(shù)據(jù)處理的處理時(shí)間。
實(shí)施例三
圖3為本發(fā)明實(shí)施例三提供的一種數(shù)據(jù)的處理方法的優(yōu)選實(shí)施例的流程示意圖。本發(fā)明實(shí)施例的應(yīng)用背景為:作為目標(biāo)數(shù)據(jù)倉庫的大數(shù)據(jù)平臺(tái)下的數(shù)據(jù)倉庫無法接觸生產(chǎn)系統(tǒng),僅能從與生產(chǎn)系統(tǒng)相連的源數(shù)據(jù)倉庫中提供歷史數(shù)據(jù),此外,源數(shù)據(jù)倉庫中包括了基本客戶信息表、網(wǎng)站客戶表、線下客戶表以及貴賓客戶表等,其中,僅有基本客戶信息表中具備更新標(biāo)識(shí)字段,其余各數(shù)據(jù)表均不具備所述更新標(biāo)識(shí)字段,且網(wǎng)站客戶表、線下客戶表以及貴賓客戶表等均基于各自的關(guān)聯(lián)鍵與基本客戶信息表相關(guān)聯(lián)。
基于上述表述,可以基于本實(shí)施例提供的數(shù)據(jù)的處理方法來實(shí)現(xiàn)源數(shù)據(jù)倉庫各數(shù)據(jù)表中更新數(shù)據(jù)到目標(biāo)數(shù)據(jù)倉庫的增量抽取,且執(zhí)行數(shù)據(jù)的處理方法的處理裝置同目標(biāo)數(shù)據(jù)倉庫一樣集成在所述大數(shù)據(jù)平臺(tái)上。
如圖3所示,本發(fā)明實(shí)施例提供的數(shù)據(jù)的處理方法的優(yōu)選實(shí)施例,具體包括如下操作:
S301、確定基本客戶信息表在當(dāng)前處理周期內(nèi)的當(dāng)前增量數(shù)據(jù)。
示例性地,由于所述基本客戶信息表具備更新標(biāo)識(shí)字段,所以可以基于現(xiàn)有的增量抽取方法獲取當(dāng)前處理周期內(nèi)的當(dāng)前增量數(shù)據(jù)。
S302、確定目標(biāo)數(shù)據(jù)倉庫中的當(dāng)前數(shù)據(jù)表,并確定所述當(dāng)前數(shù)據(jù)表與基本客戶信息表關(guān)聯(lián)的關(guān)聯(lián)鍵。
示例性地,可以在大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫中確定當(dāng)前待處理的數(shù)據(jù)表,作為當(dāng)前數(shù)據(jù)表,所述當(dāng)前數(shù)據(jù)表可以是與網(wǎng)站客戶表、線下客戶表以及貴賓客戶表等對(duì)應(yīng)的目標(biāo)數(shù)據(jù)表。在確定所述當(dāng)前數(shù)據(jù)表后,可以確定所述基本客戶信息表與所述當(dāng)前數(shù)據(jù)表建立表間關(guān)系是依據(jù)的關(guān)聯(lián)鍵。
S303、根據(jù)數(shù)據(jù)查詢語句確定所述關(guān)聯(lián)鍵在所述當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值并存儲(chǔ)。
示例性地,在確定所述關(guān)聯(lián)鍵后,可以獲取基于SQL編寫的數(shù)據(jù)查詢語句,并根據(jù)所述數(shù)據(jù)查詢語句在所述基本客戶信息表的當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值,之后,根據(jù)所獲取增量數(shù)據(jù)值的數(shù)據(jù)量大小確定存儲(chǔ)方式,并基于所述存儲(chǔ)方式存儲(chǔ)所述增量數(shù)據(jù)值。
S304、根據(jù)所存儲(chǔ)的增量數(shù)據(jù)值生成查詢請(qǐng)求,并發(fā)送所述查詢請(qǐng)求至源數(shù)據(jù)倉庫。
示例性地,為了獲取所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù),可以生成包含所述增量數(shù)據(jù)值的查詢請(qǐng)求,并將所述查詢請(qǐng)求傳遞給大數(shù)據(jù)平臺(tái)上的信息交互組件(如Sqoop組件),由該組件將所述查詢請(qǐng)求發(fā)送至于客戶生產(chǎn)系統(tǒng)相連的源數(shù)據(jù)倉庫。
S305、獲取所述查詢請(qǐng)求在所述源數(shù)據(jù)倉庫的源數(shù)據(jù)表中對(duì)應(yīng)的更新數(shù)據(jù),其中,所述源數(shù)據(jù)表對(duì)應(yīng)于所述當(dāng)前數(shù)據(jù)表。
示例性地,對(duì)于源數(shù)據(jù)倉庫而言,源數(shù)據(jù)倉庫接收到所述查詢請(qǐng)求后,在對(duì)應(yīng)于所述當(dāng)前數(shù)據(jù)表的源數(shù)據(jù)表中查詢包含所述增量數(shù)據(jù)值的更新數(shù)據(jù),所述源數(shù)據(jù)倉庫將所述更新數(shù)據(jù)基于所述信息交互組件發(fā)送給作為大數(shù)據(jù)平臺(tái)下的數(shù)據(jù)倉庫;對(duì)于大數(shù)據(jù)平臺(tái)下的數(shù)據(jù)倉庫而言,獲取所述源數(shù)據(jù)倉庫端發(fā)送的更新數(shù)據(jù)。
S306、基于指定路徑將所述更新數(shù)據(jù)作為目標(biāo)增量數(shù)據(jù)寫入所述當(dāng)前數(shù)據(jù)表。
示例性地,在獲取所述更新數(shù)據(jù)后,可以將所述更新數(shù)據(jù)作為目標(biāo)增量數(shù)據(jù)基于指定的具體路徑寫入所述當(dāng)前數(shù)據(jù)表中。由此實(shí)現(xiàn)源數(shù)據(jù)倉庫不具備更新標(biāo)識(shí)字段數(shù)據(jù)表中更新數(shù)據(jù)到大數(shù)據(jù)平臺(tái)下數(shù)據(jù)倉庫的增量抽取。
本發(fā)明實(shí)施例三提供的一種數(shù)據(jù)的處理方法,具體描述了在設(shè)定應(yīng)用背景下更新數(shù)據(jù)從源數(shù)據(jù)倉庫到大數(shù)據(jù)平臺(tái)下數(shù)據(jù)倉庫的增量抽取。該處理方法與現(xiàn)有的數(shù)據(jù)的增量抽取方式相比,具有更好的增量抽取性能,能夠節(jié)省數(shù)據(jù)處理的處理時(shí)間,從而實(shí)現(xiàn)了增量抽取的多樣化。
實(shí)施例四
圖4為本發(fā)明實(shí)施例四提供的一種數(shù)據(jù)的處理裝置的結(jié)構(gòu)框圖。該處理裝置適用于跨數(shù)據(jù)倉庫增量抽取更新數(shù)據(jù)的情況,其中,該裝置可由軟件和/或硬件實(shí)現(xiàn),并一般和用于存放增量數(shù)據(jù)的數(shù)據(jù)倉庫集成在同一個(gè)服務(wù)平臺(tái)上。如圖4所示,該處理裝置包括:信息獲取模塊41、關(guān)聯(lián)表確定模塊42以及目標(biāo)數(shù)據(jù)確定模塊43。
其中,信息獲取模塊41,用于獲取當(dāng)前數(shù)據(jù)表的屬性信息;
關(guān)聯(lián)表確定模塊42,用于根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息查找關(guān)聯(lián)的增量數(shù)據(jù)表,其中,所述增量數(shù)據(jù)表中包含當(dāng)前處理周期內(nèi)獲取的當(dāng)前增量數(shù)據(jù);
目標(biāo)數(shù)據(jù)確定模塊43,用于根據(jù)所述增量數(shù)據(jù)表中的當(dāng)前增量數(shù)據(jù),確定所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù)。
在本實(shí)施例中,該處理裝置首先通過信息獲取模塊41獲取當(dāng)前數(shù)據(jù)表的屬性信息;然后通過關(guān)聯(lián)表確定模塊42根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息查找關(guān)聯(lián)的增量數(shù)據(jù)表;最后通過目標(biāo)數(shù)據(jù)確定模塊43根據(jù)所述增量數(shù)據(jù)表中的當(dāng)前增量數(shù)據(jù),確定所述當(dāng)前數(shù)據(jù)表的目標(biāo)增量數(shù)據(jù)。
本發(fā)明實(shí)施例四提供的一種數(shù)據(jù)的處理裝置,能夠?qū)Σ痪邆涓聵?biāo)識(shí)字段的數(shù)據(jù)庫表中更新數(shù)據(jù)簡單高效地進(jìn)行跨數(shù)據(jù)倉庫的增量抽取,與現(xiàn)有的數(shù)據(jù)的增量抽取裝置相比,該處理裝置具有更好的增量抽取性能,能夠節(jié)省數(shù)據(jù)處理的處理時(shí)間。
進(jìn)一步地,關(guān)聯(lián)表確定模塊42,具體用于:
根據(jù)所述當(dāng)前數(shù)據(jù)表中的屬性信息,確定所述當(dāng)前數(shù)據(jù)表中的關(guān)聯(lián)鍵;根據(jù)所述關(guān)聯(lián)鍵確定與所述當(dāng)前數(shù)據(jù)表相關(guān)聯(lián)的增量數(shù)據(jù)表。
進(jìn)一步地,目標(biāo)數(shù)據(jù)確定模塊43,具體包括:
數(shù)據(jù)值存儲(chǔ)單元,用于獲取所述關(guān)聯(lián)鍵在所述增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值并存儲(chǔ);目標(biāo)數(shù)據(jù)獲取單元,用于根據(jù)所存儲(chǔ)的增量數(shù)據(jù)值查找所述當(dāng)前數(shù)據(jù)表中的目標(biāo)增量數(shù)據(jù)。
進(jìn)一步地,所述數(shù)據(jù)值存儲(chǔ)單元,具體用于:
通過設(shè)定的數(shù)據(jù)庫查詢語句查找所述關(guān)聯(lián)鍵在所述增量數(shù)據(jù)表的當(dāng)前增量數(shù)據(jù)中對(duì)應(yīng)的增量數(shù)據(jù)值;根據(jù)所述增量數(shù)據(jù)值的數(shù)據(jù)量大小確定所述增量數(shù)據(jù)值的存儲(chǔ)方式,并按照所述存儲(chǔ)方式存儲(chǔ)所述增量數(shù)據(jù)值。
進(jìn)一步地,所述目標(biāo)數(shù)據(jù)獲取單元,具體用于:
根據(jù)所存儲(chǔ)的增量數(shù)據(jù)值生成查詢請(qǐng)求,并發(fā)送所述查詢請(qǐng)求至源數(shù)據(jù)倉庫;獲取所述源數(shù)據(jù)倉庫的源數(shù)據(jù)表中與所述查詢請(qǐng)求對(duì)應(yīng)的更新數(shù)據(jù),其中,所述源數(shù)據(jù)表對(duì)應(yīng)于所述當(dāng)前數(shù)據(jù)表;按照預(yù)先指定的路徑將所述更新數(shù)據(jù)作為目標(biāo)增量數(shù)據(jù)寫入所述當(dāng)前數(shù)據(jù)表。
在上述實(shí)施例的基礎(chǔ)上,所述當(dāng)前數(shù)據(jù)表和所述增量數(shù)據(jù)表位于大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫中。
進(jìn)一步地,所述大數(shù)據(jù)平臺(tái)的數(shù)據(jù)倉庫基于集成在大數(shù)據(jù)平臺(tái)中的信息交互組件與其他數(shù)據(jù)倉庫進(jìn)行信息交互。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。