數(shù)據(jù)抽取裝置和方法
【專利摘要】本發(fā)明提供了一種數(shù)據(jù)抽取裝置,包括:開關(guān)狀態(tài)載入單元,用于載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài);數(shù)據(jù)抽取控制器,用于根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量抽取類型;當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與歸檔指定的數(shù)據(jù);數(shù)據(jù)抽取單元,用于根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)抽取。本發(fā)明還提供了一種數(shù)據(jù)抽取方法。通過(guò)本發(fā)明的技術(shù)方案,可以在現(xiàn)有的數(shù)據(jù)抽取方式基礎(chǔ)上,充分利用單對(duì)象類型完成多對(duì)象類型的數(shù)據(jù)抽取,建立多對(duì)象類型參與的數(shù)據(jù)抽取的通用、統(tǒng)一抽取思路。
【專利說(shuō)明】數(shù)據(jù)抽取裝置和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體地,涉及一種數(shù)據(jù)抽取裝置和一種數(shù)據(jù)抽取 方法。
[0002]
【背景技術(shù)】
[0003] 目前大數(shù)據(jù)隨處可見,越來(lái)越多的企業(yè)開始規(guī)劃數(shù)據(jù)倉(cāng)庫(kù),通過(guò)數(shù)據(jù)挖掘和商業(yè) 分析工具來(lái)協(xié)助企業(yè)做出明智的業(yè)務(wù)經(jīng)營(yíng)決策。企業(yè)各個(gè)業(yè)務(wù)系統(tǒng)產(chǎn)生的數(shù)據(jù)通過(guò)ETL工 具向數(shù)據(jù)倉(cāng)庫(kù)提供高質(zhì)量的數(shù)據(jù)。ETL包括數(shù)據(jù)的抽取,轉(zhuǎn)換和加載3個(gè)環(huán)節(jié),數(shù)據(jù)抽取面 向各種數(shù)據(jù)來(lái)源,比如異構(gòu)數(shù)據(jù)庫(kù),文件等,如何從這些數(shù)據(jù)源正確穩(wěn)定高效的抽取數(shù)據(jù)是 ETL設(shè)計(jì)過(guò)程中必須考慮的關(guān)鍵問(wèn)題之一。目前流行的抽取方法均存在一定的局限性。
[0004] 1.全量抽取:每次將業(yè)務(wù)系統(tǒng)的所有數(shù)據(jù)全部通過(guò)ETL工具加載到數(shù)據(jù)倉(cāng)庫(kù),抽 取簡(jiǎn)單,但當(dāng)數(shù)據(jù)量越來(lái)越大時(shí),這種方式存在性能瓶頸,導(dǎo)致不能實(shí)時(shí)更新數(shù)據(jù)。
[0005] 2.基于觸發(fā)方式的推式增量抽?。簲?shù)據(jù)抽取的性能較高,能實(shí)時(shí)更新數(shù)據(jù),但要求 在業(yè)務(wù)數(shù)據(jù)庫(kù)中建立觸發(fā)器或程序編碼推數(shù)據(jù)到數(shù)據(jù)倉(cāng)庫(kù),需要對(duì)業(yè)務(wù)系統(tǒng)或業(yè)務(wù)數(shù)據(jù)庫(kù) 進(jìn)行調(diào)整,不但影響業(yè)務(wù)系統(tǒng)的穩(wěn)定和業(yè)務(wù)數(shù)據(jù)的安全性,同時(shí)對(duì)業(yè)務(wù)系統(tǒng)有一定的性能 影響。
[0006] 3.基于時(shí)間戳的增量抽?。汉皖愃朴|發(fā)器一樣,性能也比較好,過(guò)程相對(duì)清楚簡(jiǎn) 單,但對(duì)業(yè)務(wù)系統(tǒng)強(qiáng)制要求有時(shí)間戳字段,同時(shí),數(shù)據(jù)更新時(shí)修改時(shí)間戳字段,而且對(duì)于刪 除的數(shù)據(jù)需要記錄在庫(kù),不能徹底刪除,在數(shù)據(jù)準(zhǔn)確性上有一定的限制。
[0007] 4.全表比對(duì)增量抽?。和ㄟ^(guò)全表比對(duì)來(lái)確定數(shù)據(jù)的增刪改,性能較差。
[0008] 5.數(shù)據(jù)庫(kù)日志對(duì)比:通過(guò)分析數(shù)據(jù)庫(kù)自身的日志來(lái)判斷變化的數(shù)據(jù),受數(shù)據(jù)庫(kù)類 型和版本的限制,不支持異構(gòu)數(shù)據(jù)庫(kù)。
[0009] 因此,需要一種新的數(shù)據(jù)抽取技術(shù),可以在現(xiàn)有的數(shù)據(jù)抽取方式基礎(chǔ)上,充分利用 單對(duì)象類型完成多對(duì)象類型的數(shù)據(jù)抽取,建立多對(duì)象類型參與的數(shù)據(jù)抽取的通用、統(tǒng)一抽 取思路。
[0010]
【發(fā)明內(nèi)容】
[0011] 本發(fā)明正是基于上述問(wèn)題,提出了一種新的數(shù)據(jù)抽取技術(shù),可以在現(xiàn)有的數(shù)據(jù)抽 取方式基礎(chǔ)上,充分利用單對(duì)象類型完成多對(duì)象類型的數(shù)據(jù)抽取,建立多對(duì)象類型參與的 數(shù)據(jù)抽取的通用、統(tǒng)一抽取思路。
[0012] 有鑒于此,本發(fā)明提出了一種數(shù)據(jù)抽取裝置,包括:開關(guān)狀態(tài)載入單元,用于載入 控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài); 數(shù)據(jù)抽取控制器,用于根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還 是增量抽取類型;當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與歸 檔指定的數(shù)據(jù);數(shù)據(jù)抽取單元,用于根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn) 行數(shù)據(jù)抽取。在該技術(shù)方案中,可以在進(jìn)行數(shù)據(jù)抽取時(shí)根據(jù)數(shù)據(jù)開關(guān)信息和業(yè)務(wù)日期來(lái)進(jìn) 行增量抽取,有效規(guī)避了目前抽取方式的局限,而且數(shù)據(jù)倉(cāng)庫(kù)和業(yè)務(wù)數(shù)據(jù)庫(kù)獨(dú)立運(yùn)行,利于 企業(yè)控制業(yè)務(wù)系統(tǒng)的穩(wěn)定和業(yè)務(wù)數(shù)據(jù)的安全性。
[0013] 在上述技術(shù)方案中,優(yōu)選地,所述開關(guān)狀態(tài)載入單元,具體包括:狀態(tài)載入模塊,用 于載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài);狀態(tài)保存模塊,用于基于載入的控制開關(guān) 在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),調(diào)取并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài)。在該 技術(shù)方案中,即使在業(yè)務(wù)系統(tǒng)存在物理刪除的情況下也能進(jìn)行增量抽取,滿足了增量抽取 的數(shù)據(jù)完備性高,對(duì)源業(yè)務(wù)系統(tǒng)性能等影響小。
[0014] 在上述技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)抽取控制器,具體包括:抽取類型判斷模塊, 用于根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量抽取類型; 數(shù)據(jù)計(jì)算模塊,用于當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與 歸檔指定的數(shù)據(jù)。在該技術(shù)方案中,可以根據(jù)基于業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)開關(guān)作為數(shù)據(jù)增量抽 取的依據(jù),當(dāng)開關(guān)在打開、最新關(guān)閉或被重新打開后又被關(guān)閉的三種情況下對(duì)對(duì)應(yīng)的數(shù)據(jù) 做重新抽取,篩選與歸檔。
[0015] 在上述技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)抽取單元,具體包括:初始化全量抽取模塊, 用于根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)的初始化全量抽??;日常 增量抽取模塊,用于根據(jù)初始化全量抽取的數(shù)據(jù),進(jìn)行數(shù)據(jù)的日常增量抽取。在該技術(shù)方案 中,主要通過(guò)比較業(yè)務(wù)系統(tǒng)的數(shù)據(jù)開關(guān)狀態(tài),來(lái)實(shí)現(xiàn)對(duì)應(yīng)業(yè)務(wù)數(shù)據(jù)的增量抽取。
[0016] 在上述技術(shù)方案中,優(yōu)選地,所述初始化全量抽取模塊進(jìn)行數(shù)據(jù)的初始化全量抽 取的操作,進(jìn)一步包括:⑴裝載開關(guān)的當(dāng)前狀態(tài)到上次抽取狀態(tài);⑵按全量方式控制數(shù)據(jù) 抽??;⑶全量抽取業(yè)務(wù)數(shù)據(jù),做數(shù)據(jù)倉(cāng)庫(kù)的初始化操作;和/或,所述日常增量抽取模塊進(jìn) 行數(shù)據(jù)的日常增量抽取的操作,進(jìn)一步包括:⑴裝載本次開關(guān)狀態(tài)到本次抽取狀態(tài)位;⑵ 通過(guò)本次與上次抽取的狀態(tài)計(jì)算出需要增量數(shù)據(jù)抽取的時(shí)間點(diǎn);⑶根據(jù)計(jì)算得到的數(shù)據(jù)抽 取時(shí)間,增量抽取、過(guò)濾裝載數(shù)據(jù);⑷將當(dāng)前開關(guān)狀態(tài)數(shù)據(jù)轉(zhuǎn)存到上次抽取狀態(tài)位置,方便 下次抽取時(shí)使用。在該技術(shù)方案中,增量抽取的數(shù)據(jù)量小,從而抽取性能高等特性。
[0017] 根據(jù)本發(fā)明的又一個(gè)方面,還提出了一種數(shù)據(jù)抽取方法,包括:步驟202 :載入控 制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài);步 驟204 :根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量抽取類 型;當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與歸檔指定的數(shù) 據(jù);步驟206 :根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)抽取。在該技術(shù) 方案中,可以在進(jìn)行數(shù)據(jù)抽取時(shí)根據(jù)數(shù)據(jù)開關(guān)信息和業(yè)務(wù)日期來(lái)進(jìn)行增量抽取,有效規(guī)避 了目前抽取方式的局限,而且數(shù)據(jù)倉(cāng)庫(kù)和業(yè)務(wù)數(shù)據(jù)庫(kù)獨(dú)立運(yùn)行,利于企業(yè)控制業(yè)務(wù)系統(tǒng)的 穩(wěn)定和業(yè)務(wù)數(shù)據(jù)的安全性。
[0018] 在上述技術(shù)方案中,優(yōu)選地,所述步驟202,具體包括:步驟302 :載入控制開關(guān)在 本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài);步驟304 :基于載入的控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀 態(tài),調(diào)取并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài)。在該技術(shù)方案中,即使在業(yè)務(wù)系統(tǒng) 存在物理刪除的情況下也能進(jìn)行增量抽取,滿足了增量抽取的數(shù)據(jù)完備性高,對(duì)源業(yè)務(wù)系 統(tǒng)性能等影響小。
[0019] 在上述技術(shù)方案中,優(yōu)選地,所述步驟204,具體包括:步驟402:根據(jù)載入的開關(guān) 狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量抽取類型;步驟404 :當(dāng)本次抽取 數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與歸檔指定的數(shù)據(jù)。在該技術(shù)方案 中,可以根據(jù)基于業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)開關(guān)作為數(shù)據(jù)增量抽取的依據(jù),當(dāng)開關(guān)在打開、最新關(guān) 閉或被重新打開后又被關(guān)閉的三種情況下對(duì)對(duì)應(yīng)的數(shù)據(jù)做重新抽取,篩選與歸檔。
[0020] 在上述技術(shù)方案中,優(yōu)選地,所述步驟206,具體包括:步驟502:根據(jù)計(jì)算得到的 需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)的初始化全量抽??;步驟504 :根據(jù)初始化全 量抽取的數(shù)據(jù),進(jìn)行數(shù)據(jù)的日常增量抽取。在該技術(shù)方案中,主要通過(guò)比較業(yè)務(wù)系統(tǒng)的數(shù)據(jù) 開關(guān)狀態(tài),來(lái)實(shí)現(xiàn)對(duì)應(yīng)業(yè)務(wù)數(shù)據(jù)的增量抽取。
[0021] 在上述技術(shù)方案中,優(yōu)選地,所述步驟502進(jìn)行數(shù)據(jù)的初始化全量抽取的操作,進(jìn) 一步包括:⑴裝載開關(guān)的當(dāng)前狀態(tài)到上次抽取狀態(tài);⑵按全量方式控制數(shù)據(jù)抽取;⑶全量 抽取業(yè)務(wù)數(shù)據(jù),做數(shù)據(jù)倉(cāng)庫(kù)的初始化操作;和/或,所述步驟504進(jìn)行數(shù)據(jù)的日常增量抽取 的操作,進(jìn)一步包括:⑴裝載本次開關(guān)狀態(tài)到本次抽取狀態(tài)位;⑵通過(guò)本次與上次抽取的 狀態(tài)計(jì)算出需要增量數(shù)據(jù)抽取的時(shí)間點(diǎn);⑶根據(jù)計(jì)算得到的數(shù)據(jù)抽取時(shí)間,增量抽取、過(guò)濾 裝載數(shù)據(jù);⑷將當(dāng)前開關(guān)狀態(tài)數(shù)據(jù)轉(zhuǎn)存到上次抽取狀態(tài)位置,方便下次抽取時(shí)使用。在該技 術(shù)方案中,增量抽取的數(shù)據(jù)量小,從而抽取性能高等特性。
[0022] 通過(guò)以上技術(shù)方案,可以在現(xiàn)有的數(shù)據(jù)抽取方式基礎(chǔ)上,充分利用單對(duì)象類型完 成多對(duì)象類型的數(shù)據(jù)抽取,建立多對(duì)象類型參與的數(shù)據(jù)抽取的通用、統(tǒng)一抽取思路。
[0023]
【專利附圖】
【附圖說(shuō)明】
[0024] 圖1示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)抽取裝置的框圖; 圖2示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)抽取方法的流程圖; 圖3示出了根據(jù)本發(fā)明的實(shí)施例的開關(guān)狀態(tài)載入單元的流程圖; 圖4示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)抽取控制器的流程圖; 圖5示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)抽取單元的流程圖; 圖6示出了根據(jù)本發(fā)明的實(shí)施例的根據(jù)數(shù)據(jù)開關(guān)做增量數(shù)據(jù)抽取的原理圖; 圖7出了根據(jù)本發(fā)明的實(shí)施例的全量抽取的邏輯的流程圖; 圖8出了根據(jù)本發(fā)明的實(shí)施例的日常增量抽取的流程圖。
[0025]
【具體實(shí)施方式】
[0026] 為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施 例及實(shí)施例中的特征可以相互組合。
[0027] 在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來(lái)實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開 的具體實(shí)施例的限制。
[0028] 圖1示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)抽取裝置的框圖。
[0029] 如圖1所示,根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)抽取裝置100,包括:開關(guān)狀態(tài)載入單元 102,用于載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí) 的開關(guān)狀態(tài);數(shù)據(jù)抽取控制器104,用于根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是 全量抽取類型還是增量抽取類型;當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需 要抽取、篩選與歸檔指定的數(shù)據(jù);數(shù)據(jù)抽取單元106,用于根據(jù)計(jì)算得到的需要抽取、過(guò)濾 和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)抽取。在該技術(shù)方案中,可以在進(jìn)行數(shù)據(jù)抽取時(shí)根據(jù)數(shù)據(jù)開關(guān) 信息和業(yè)務(wù)日期來(lái)進(jìn)行增量抽取,有效規(guī)避了目前抽取方式的局限,而且數(shù)據(jù)倉(cāng)庫(kù)和業(yè)務(wù) 數(shù)據(jù)庫(kù)獨(dú)立運(yùn)行,利于企業(yè)控制業(yè)務(wù)系統(tǒng)的穩(wěn)定和業(yè)務(wù)數(shù)據(jù)的安全性。
[0030] 在上述技術(shù)方案中,優(yōu)選地,開關(guān)狀態(tài)載入單元102,具體包括:狀態(tài)載入模塊 1022,用于載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài);狀態(tài)保存模塊1024,用于基于載 入的控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),調(diào)取并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開 關(guān)狀態(tài)。在該技術(shù)方案中,即使在業(yè)務(wù)系統(tǒng)存在物理刪除的情況下也能進(jìn)行增量抽取,滿足 了增量抽取的數(shù)據(jù)完備性高,對(duì)源業(yè)務(wù)系統(tǒng)性能等影響小。
[0031] 在上述技術(shù)方案中,優(yōu)選地,數(shù)據(jù)抽取控制器104,具體包括:抽取類型判斷模塊 1042,用于根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量抽取 類型;數(shù)據(jù)計(jì)算模塊1044,用于當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要 抽取、篩選與歸檔指定的數(shù)據(jù)。在該技術(shù)方案中,可以根據(jù)基于業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)開關(guān)作為 數(shù)據(jù)增量抽取的依據(jù),當(dāng)開關(guān)在打開、最新關(guān)閉或被重新打開后又被關(guān)閉的三種情況下對(duì) 對(duì)應(yīng)的數(shù)據(jù)做重新抽取,篩選與歸檔。
[0032] 在上述技術(shù)方案中,優(yōu)選地,數(shù)據(jù)抽取單元106,具體包括:初始化全量抽取模塊 1062,用于根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)的初始化全量抽 ??;日常增量抽取模塊1066,用于根據(jù)初始化全量抽取的數(shù)據(jù),進(jìn)行數(shù)據(jù)的日常增量抽取。 在該技術(shù)方案中,主要通過(guò)比較業(yè)務(wù)系統(tǒng)的數(shù)據(jù)開關(guān)狀態(tài),來(lái)實(shí)現(xiàn)對(duì)應(yīng)業(yè)務(wù)數(shù)據(jù)的增量抽 取。
[0033] 在上述技術(shù)方案中,優(yōu)選地,初始化全量抽取模塊1062進(jìn)行數(shù)據(jù)的初始化全量抽 取的操作,進(jìn)一步包括:⑴裝載開關(guān)的當(dāng)前狀態(tài)到上次抽取狀態(tài);⑵按全量方式控制數(shù)據(jù) 抽取;⑶全量抽取業(yè)務(wù)數(shù)據(jù),做數(shù)據(jù)倉(cāng)庫(kù)的初始化操作;和/或,日常增量抽取模塊1064進(jìn) 行數(shù)據(jù)的日常增量抽取的操作,進(jìn)一步包括:⑴裝載本次開關(guān)狀態(tài)到本次抽取狀態(tài)位;⑵ 通過(guò)本次與上次抽取的狀態(tài)計(jì)算出需要增量數(shù)據(jù)抽取的時(shí)間點(diǎn);⑶根據(jù)計(jì)算得到的數(shù)據(jù)抽 取時(shí)間,增量抽取、過(guò)濾裝載數(shù)據(jù);⑷將當(dāng)前開關(guān)狀態(tài)數(shù)據(jù)轉(zhuǎn)存到上次抽取狀態(tài)位置,方便 下次抽取時(shí)使用。在該技術(shù)方案中,增量抽取的數(shù)據(jù)量小,從而抽取性能高等特性。
[0034] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)抽取方法的流程圖。
[0035] 如圖2所示,根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)抽取方法,包括:步驟202 :載入控制開關(guān) 在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài);步驟204 : 根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量抽取類型;當(dāng)本 次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與歸檔指定的數(shù)據(jù);步驟 206 :根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)抽取。在該技術(shù)方案中, 可以在進(jìn)行數(shù)據(jù)抽取時(shí)根據(jù)數(shù)據(jù)開關(guān)信息和業(yè)務(wù)日期來(lái)進(jìn)行增量抽取,有效規(guī)避了目前抽 取方式的局限,而且數(shù)據(jù)倉(cāng)庫(kù)和業(yè)務(wù)數(shù)據(jù)庫(kù)獨(dú)立運(yùn)行,利于企業(yè)控制業(yè)務(wù)系統(tǒng)的穩(wěn)定和業(yè) 務(wù)數(shù)據(jù)的安全性。
[0036] 在上述技術(shù)方案中,優(yōu)選地,如圖3所示,步驟202,具體包括:步驟302 :載入控制 開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài);步驟304 :基于載入的控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的 開關(guān)狀態(tài),調(diào)取并保存控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài)。在該技術(shù)方案中,即使在業(yè) 務(wù)系統(tǒng)存在物理刪除的情況下也能進(jìn)行增量抽取,滿足了增量抽取的數(shù)據(jù)完備性高,對(duì)源 業(yè)務(wù)系統(tǒng)性能等影響小。
[0037] 在上述技術(shù)方案中,優(yōu)選地,如圖4所示,步驟204,具體包括:步驟402:根據(jù)載入 的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量抽取類型;步驟404 :當(dāng)本 次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與歸檔指定的數(shù)據(jù)。在該技 術(shù)方案中,可以根據(jù)基于業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)開關(guān)作為數(shù)據(jù)增量抽取的依據(jù),當(dāng)開關(guān)在打開、 最新關(guān)閉或被重新打開后又被關(guān)閉的三種情況下對(duì)對(duì)應(yīng)的數(shù)據(jù)做重新抽取,篩選與歸檔。
[0038] 在上述技術(shù)方案中,優(yōu)選地,如圖5所示,步驟206,具體包括:步驟502:根據(jù)計(jì)算 得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)的初始化全量抽??;步驟504 :根據(jù)初 始化全量抽取的數(shù)據(jù),進(jìn)行數(shù)據(jù)的日常增量抽取。在該技術(shù)方案中,主要通過(guò)比較業(yè)務(wù)系統(tǒng) 的數(shù)據(jù)開關(guān)狀態(tài),來(lái)實(shí)現(xiàn)對(duì)應(yīng)業(yè)務(wù)數(shù)據(jù)的增量抽取。
[0039] 在上述技術(shù)方案中,優(yōu)選地,步驟502進(jìn)行數(shù)據(jù)的初始化全量抽取的操作,進(jìn)一步 包括:⑴裝載開關(guān)的當(dāng)前狀態(tài)到上次抽取狀態(tài);⑵按全量方式控制數(shù)據(jù)抽取;⑶全量抽取 業(yè)務(wù)數(shù)據(jù),做數(shù)據(jù)倉(cāng)庫(kù)的初始化操作;和/或,步驟504進(jìn)行數(shù)據(jù)的日常增量抽取的操作,進(jìn) 一步包括:⑴裝載本次開關(guān)狀態(tài)到本次抽取狀態(tài)位;⑵通過(guò)本次與上次抽取的狀態(tài)計(jì)算出 需要增量數(shù)據(jù)抽取的時(shí)間點(diǎn);(3)根據(jù)計(jì)算得到的數(shù)據(jù)抽取時(shí)間,增量抽取、過(guò)濾裝載數(shù)據(jù); ⑷將當(dāng)前開關(guān)狀態(tài)數(shù)據(jù)轉(zhuǎn)存到上次抽取狀態(tài)位置,方便下次抽取時(shí)使用。在該技術(shù)方案中, 增量抽取的數(shù)據(jù)量小,從而抽取性能高等特性。
[0040] 本發(fā)明的技術(shù)方案,提供了一種基于數(shù)據(jù)開關(guān)的數(shù)據(jù)抽取方法與裝置。企業(yè)在實(shí) 際工作中,經(jīng)常需要對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行加載清洗和轉(zhuǎn)換,但隨著數(shù)據(jù)量越來(lái)越大,每次對(duì)數(shù)據(jù) 進(jìn)行全量抽取變得越來(lái)越困難,而根據(jù)時(shí)間戳、觸發(fā)器、全表比對(duì)等進(jìn)行增量抽取又存在很 多局限性。但考慮到實(shí)際業(yè)務(wù)中,企業(yè)內(nèi)部為了保證業(yè)務(wù)數(shù)據(jù)的穩(wěn)定性,通常會(huì)設(shè)置數(shù)據(jù)開 關(guān)。因此,本發(fā)明的技術(shù)方案在進(jìn)行數(shù)據(jù)抽取時(shí)根據(jù)數(shù)據(jù)開關(guān)信息和業(yè)務(wù)日期來(lái)進(jìn)行增量 抽取,有效規(guī)避了目前抽取方式的局限,而且數(shù)據(jù)倉(cāng)庫(kù)和業(yè)務(wù)數(shù)據(jù)庫(kù)獨(dú)立運(yùn)行,利于企業(yè)控 制業(yè)務(wù)系統(tǒng)的穩(wěn)定和業(yè)務(wù)數(shù)據(jù)的安全性。
[0041] 隨著大數(shù)據(jù)時(shí)代的來(lái)臨,對(duì)數(shù)據(jù)抽取、過(guò)濾與變換的需求也越來(lái)越復(fù)雜,對(duì)于數(shù)據(jù) 抽取的方法的要求也越來(lái)越苛刻。而數(shù)據(jù)抽取的方法呈現(xiàn)出在某些情況下表現(xiàn)的非常的優(yōu) 越,而在另一些情況下又表現(xiàn)的不盡如人意,甚至完全不適用。
[0042] 本發(fā)明的技術(shù)方案,主要適用于以下情況: 1、業(yè)務(wù)系統(tǒng)存在數(shù)據(jù)開關(guān),并且記錄每一個(gè)開關(guān)的操作版本;2、數(shù)據(jù)開關(guān)在關(guān)閉后可 以允許再次打開,也可以允許無(wú)法打開,但最終應(yīng)趨于關(guān)閉;3、數(shù)據(jù)開關(guān)被關(guān)閉的對(duì)應(yīng)數(shù)據(jù) 將無(wú)法修改,如果要修改必須重新打開數(shù)據(jù)開關(guān)。本發(fā)明的技術(shù)方案,主要通過(guò)比較業(yè)務(wù)系 統(tǒng)的數(shù)據(jù)開關(guān)狀態(tài),來(lái)實(shí)現(xiàn)對(duì)應(yīng)業(yè)務(wù)數(shù)據(jù)的增量抽取。
[0043]為了有效地解決現(xiàn)有技術(shù)存在的問(wèn)題,在此設(shè)計(jì)出了一種根據(jù)數(shù)據(jù)開關(guān)做增量數(shù) 據(jù)抽取的裝置,該裝置有以下三個(gè)部分組成,參見圖6 : 開關(guān)狀態(tài)載入單元:其主要作用是為了載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的狀態(tài),并保 存上次抽取的開關(guān)狀態(tài),以便于數(shù)據(jù)抽取控制器分別判斷需要重新抽取、篩選與歸檔的那 部分?jǐn)?shù)據(jù)。
[0044]數(shù)據(jù)抽取控制器:其需要根據(jù)開關(guān)狀態(tài)載入單元載入的開關(guān)狀態(tài)判斷出做全量抽 取還是增量抽取,做增量抽取的時(shí)候,分別計(jì)算出需要抽取、篩選與歸檔的那部分?jǐn)?shù)據(jù)。 [0045]數(shù)據(jù)抽取單元:根據(jù)數(shù)據(jù)抽取控制器抽取、過(guò)濾與歸檔指定的數(shù)據(jù)。該數(shù)據(jù)抽取單 元的數(shù)據(jù)抽取一共分為兩個(gè)部分,即初始化全量抽取和日常增量抽取。其中全量抽取的邏 輯比較簡(jiǎn)單,可分為兩步:具體步驟參見圖7。
[0046] 日常增量抽取步驟參見圖8。注:該方法在第2步中的比對(duì)原則如下: (1)本次開關(guān)打開,數(shù)據(jù)需要重新對(duì)應(yīng)抽取和歸檔; ⑵本次開關(guān)關(guān)閉,當(dāng)上次開關(guān)是打開的,需要重新抽取對(duì)應(yīng)數(shù)據(jù)并歸檔; ⑶本次開關(guān)關(guān)閉,上次也關(guān)閉,但中間曾經(jīng)打開過(guò),需要重新抽取對(duì)應(yīng)數(shù)據(jù)并歸檔。
[0047]下面我們來(lái)看一個(gè)存貨核算的具體例子。存貨核算模塊需要按每一個(gè)會(huì)計(jì)月和成 本域的組合做月結(jié)帳操作,一旦月結(jié)以后對(duì)應(yīng)成本域與會(huì)計(jì)月組合的單據(jù)等一些信息就無(wú) 法修改,而月結(jié)這個(gè)操作又由于可能會(huì)出現(xiàn)錯(cuò)誤而被允許重新打開修改,而打開修改也是 有規(guī)律的,即月結(jié)會(huì)按照會(huì)計(jì)月的順序進(jìn)行月結(jié),即如果要結(jié)后一個(gè)月,前一個(gè)月必須已經(jīng) 是結(jié)賬的,而如果要反結(jié)賬上一個(gè)月,后面的月份需要先做反結(jié)賬操作。在存貨核算模塊 中,數(shù)據(jù)量非常的大,全量抽取非常消耗資源與時(shí)間,但由于數(shù)據(jù)量大,有一些業(yè)務(wù)系統(tǒng)對(duì) 一些數(shù)據(jù)庫(kù)業(yè)務(wù)表直接進(jìn)行了物理刪除操作,使得通過(guò)時(shí)間戳的方式進(jìn)行數(shù)據(jù)增量抽取變 的不可能。
[0048]下面我們就使用本發(fā)明來(lái)進(jìn)行數(shù)據(jù)的增量抽取、過(guò)濾和歸檔。首先確定作為數(shù)據(jù) 開關(guān)的月結(jié)數(shù)據(jù)表主要字段的表結(jié)構(gòu)如下:
【權(quán)利要求】
1. 一種數(shù)據(jù)抽取裝置,其特征在于,包括: 開關(guān)狀態(tài)載入單元,用于載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),并保存控制開 關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài); 數(shù)據(jù)抽取控制器,用于根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類 型還是增量抽取類型;當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選 與歸檔指定的數(shù)據(jù); 數(shù)據(jù)抽取單元,用于根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)抽 取。
2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)抽取裝置,其特征在于,所述開關(guān)狀態(tài)載入單元,具體包 括: 狀態(tài)載入模塊,用于載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài); 狀態(tài)保存模塊,用于基于載入的控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),調(diào)取并保存 控制開關(guān)在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài)。
3. 根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)抽取裝置,其特征在于,所述數(shù)據(jù)抽取控制器,具體 包括: 抽取類型判斷模塊,用于根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取 類型還是增量抽取類型; 數(shù)據(jù)計(jì)算模塊,用于當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩 選與歸檔指定的數(shù)據(jù)。
4. 根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)抽取裝置,其特征在于,所述數(shù)據(jù)抽取單元,具體包 括: 初始化全量抽取模塊,用于根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù) 據(jù)的初始化全量抽取; 日常增量抽取模塊,用于根據(jù)初始化全量抽取的數(shù)據(jù),進(jìn)行數(shù)據(jù)的日常增量抽取。
5. 根據(jù)權(quán)利要求4所述的數(shù)據(jù)抽取裝置,其特征在于,所述初始化全量抽取模塊進(jìn)行 數(shù)據(jù)的初始化全量抽取的操作,進(jìn)一步包括: ⑴裝載開關(guān)的當(dāng)前狀態(tài)到上次抽取狀態(tài); ⑵按全量方式控制數(shù)據(jù)抽??; ⑶全量抽取業(yè)務(wù)數(shù)據(jù),做數(shù)據(jù)倉(cāng)庫(kù)的初始化操作; 和/或, 所述日常增量抽取模塊進(jìn)行數(shù)據(jù)的日常增量抽取的操作,進(jìn)一步包括: ⑴裝載本次開關(guān)狀態(tài)到本次抽取狀態(tài)位; ⑵通過(guò)本次與上次抽取的狀態(tài)計(jì)算出需要增量數(shù)據(jù)抽取的時(shí)間點(diǎn); ⑶根據(jù)計(jì)算得到的數(shù)據(jù)抽取時(shí)間,增量抽取、過(guò)濾裝載數(shù)據(jù); ⑷將當(dāng)前開關(guān)狀態(tài)數(shù)據(jù)轉(zhuǎn)存到上次抽取狀態(tài)位置,方便下次抽取時(shí)使用。
6. -種數(shù)據(jù)抽取方法,其特征在于,包括: 步驟202 :載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),并保存控制開關(guān)在上次抽取 數(shù)據(jù)時(shí)的開關(guān)狀態(tài); 步驟204 :根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量 抽取類型;當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與歸檔指定 的數(shù)據(jù); 步驟206 :根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)抽取。
7. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)抽取方法,其特征在于,所述步驟202,具體包括: 步驟302 :載入控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài); 步驟304 :基于載入的控制開關(guān)在本次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài),調(diào)取并保存控制開關(guān) 在上次抽取數(shù)據(jù)時(shí)的開關(guān)狀態(tài)。
8. 根據(jù)權(quán)利要求6或7所述的數(shù)據(jù)抽取方法,其特征在于,所述步驟204,具體包括: 步驟402 :根據(jù)載入的開關(guān)狀態(tài),判斷本次抽取數(shù)據(jù)的類型是全量抽取類型還是增量 抽取類型; 步驟404:當(dāng)本次抽取數(shù)據(jù)的類型是增量抽取類型時(shí),分別計(jì)算需要抽取、篩選與歸檔 指定的數(shù)據(jù)。
9. 根據(jù)權(quán)利要求6或7所述的數(shù)據(jù)抽取方法,其特征在于,所述步驟206,具體包括: 步驟502 :根據(jù)計(jì)算得到的需要抽取、過(guò)濾和歸檔指定的數(shù)據(jù),進(jìn)行數(shù)據(jù)的初始化全量 抽??; 步驟504 :根據(jù)初始化全量抽取的數(shù)據(jù),進(jìn)行數(shù)據(jù)的日常增量抽取。
10. 根據(jù)權(quán)利要求9所述的數(shù)據(jù)抽取方法,其特征在于,所述步驟502進(jìn)行數(shù)據(jù)的初始 化全量抽取的操作,進(jìn)一步包括: ⑴裝載開關(guān)的當(dāng)前狀態(tài)到上次抽取狀態(tài); ⑵按全量方式控制數(shù)據(jù)抽??; ⑶全量抽取業(yè)務(wù)數(shù)據(jù),做數(shù)據(jù)倉(cāng)庫(kù)的初始化操作; 和/或, 所述步驟504進(jìn)行數(shù)據(jù)的日常增量抽取的操作,進(jìn)一步包括: ⑴裝載本次開關(guān)狀態(tài)到本次抽取狀態(tài)位; ⑵通過(guò)本次與上次抽取的狀態(tài)計(jì)算出需要增量數(shù)據(jù)抽取的時(shí)間點(diǎn); ⑶根據(jù)計(jì)算得到的數(shù)據(jù)抽取時(shí)間,增量抽取、過(guò)濾裝載數(shù)據(jù); ⑷將當(dāng)前開關(guān)狀態(tài)數(shù)據(jù)轉(zhuǎn)存到上次抽取狀態(tài)位置,方便下次抽取時(shí)使用。
【文檔編號(hào)】G06F17/30GK104361133SQ201410750223
【公開日】2015年2月18日 申請(qǐng)日期:2014年12月10日 優(yōu)先權(quán)日:2014年12月10日
【發(fā)明者】姜亞健, 胡沛蘭 申請(qǐng)人:用友軟件股份有限公司