一種數(shù)據(jù)采集方法以及etl組件的制作方法
【專利摘要】本發(fā)明實施例公開了一種數(shù)據(jù)采集方法以及ETL組件,所述方法包括:數(shù)據(jù)采集周期到達時,針對業(yè)務(wù)系統(tǒng)中的全量數(shù)據(jù)表,進行一次躍進式的增量數(shù)據(jù)采集:確定所述全量數(shù)據(jù)表已采集的次數(shù);根據(jù)所述全量數(shù)據(jù)表中的最小時間戳、預(yù)設(shè)的第一采集時長,以及確定的已采集的次數(shù),計算起始時間戳;根據(jù)所述起始時間戳,以及所述第一采集時長,計算終止時間戳;采集所述全量數(shù)據(jù)表中所述起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。應(yīng)用本發(fā)明,針對全量數(shù)據(jù)表進行數(shù)據(jù)采集時,可以減小對ETL組件所在的數(shù)據(jù)采集系統(tǒng)的性能影響,穩(wěn)定數(shù)據(jù)采集效率。
【專利說明】
一種數(shù)據(jù)采集方法以及ETL組件
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及數(shù)據(jù)采集技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)采集方法以及ETL組件。
【背景技術(shù)】
[0002]ETL(Extract1n-Transformat1n_Loading,數(shù)據(jù)抽取、轉(zhuǎn)換和加載)組件是構(gòu)建數(shù)據(jù)倉庫中極其重要的一部分。其按照預(yù)先設(shè)計的規(guī)則,提供對不同數(shù)據(jù)源的數(shù)據(jù)進行抽取、轉(zhuǎn)換、清洗的功能,集成和凈化來自于多個不同系統(tǒng)的數(shù)據(jù),最后將轉(zhuǎn)換完的數(shù)據(jù)增量或全部載入目標(biāo)數(shù)據(jù)庫中。其從不同的異構(gòu)數(shù)據(jù)源流得到統(tǒng)一的目標(biāo)數(shù)據(jù),作為聯(lián)機分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。
[0003]通常ETL組件進行數(shù)據(jù)抽取的對象有全量數(shù)據(jù)表,或增量數(shù)據(jù)表。針對增量數(shù)據(jù)表,ETL組件只需導(dǎo)出上次抽取后的新數(shù)據(jù);針對全量數(shù)據(jù)表,ETL組件就需要將整個數(shù)據(jù)表中所有數(shù)據(jù)抽取出來。
[0004]在實際應(yīng)用中,本發(fā)明的發(fā)明人發(fā)現(xiàn),當(dāng)ETL組件抽取業(yè)務(wù)系統(tǒng)中數(shù)據(jù)量比較大的全量數(shù)據(jù)表中的數(shù)據(jù)時,會對ETL組件所在的數(shù)據(jù)采集系統(tǒng)的內(nèi)存和1端口(輸入輸出端口)產(chǎn)生很大影響,導(dǎo)致內(nèi)存和1端口占用過多,系統(tǒng)出現(xiàn)卡頓現(xiàn)象,從而嚴(yán)重降低數(shù)據(jù)采集的效率,同時干擾其它數(shù)據(jù)采集任務(wù)。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明的目的在于提出一種數(shù)據(jù)采集方法以及ETL組件,用以針對全量數(shù)據(jù)表進行數(shù)據(jù)采集時,減小對ETL組件所在的數(shù)據(jù)采集系統(tǒng)的性能影響,穩(wěn)定數(shù)據(jù)采集效率。
[0006]基于上述目的,本發(fā)明實施例提供的一種數(shù)據(jù)采集方法,包括:
[0007]數(shù)據(jù)采集周期到達時,針對業(yè)務(wù)系統(tǒng)中的全量數(shù)據(jù)表,進行一次躍進式的增量數(shù)據(jù)采集:
[0008]確定所述全量數(shù)據(jù)表已采集的次數(shù);
[0009]根據(jù)所述全量數(shù)據(jù)表中的最小時間戳、預(yù)設(shè)的第一采集時長,以及確定的已采集的次數(shù),計算起始時間戳;
[0010]根據(jù)所述起始時間戳,以及所述第一采集時長,計算終止時間戳;
[0011]采集所述全量數(shù)據(jù)表中所述起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0012]進一步,所述方法還包括:
[0013]確定出所述業(yè)務(wù)系統(tǒng)中待采集的增量數(shù)據(jù)表。
[0014]進一步,在所述數(shù)據(jù)采集周期到達后,還包括:
[0015]根據(jù)本系統(tǒng)的當(dāng)前系統(tǒng)時間,以及預(yù)設(shè)的延遲時長計算出時間戳上限;
[0016]根據(jù)計算出的時間戳上限,以及預(yù)設(shè)的第二采集時長計算時間戳下限;
[0017]采集所述增量數(shù)據(jù)表中所述時間戳上限與時間戳下限所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0018]較佳地,所述延遲時長與所述第二采集時長相等。
[0019]較佳地,所述第一采集時長大于第二采集時長。
[0020]在本發(fā)明實施例的另一方面,還提供了一種ETL組件,包括:
[0021 ]系統(tǒng)時間確定模塊,用于在數(shù)據(jù)采集周期到達時,發(fā)送采集通知;
[0022]第一時間戳計算模塊,用于接收到所述采集通知后,針對業(yè)務(wù)系統(tǒng)中的全量數(shù)據(jù)表,根據(jù)所述全量數(shù)據(jù)表中的最小時間戳、預(yù)設(shè)的第一采集時長,以及確定的已采集的次數(shù),計算起始時間戳;根據(jù)所述起始時間戳,以及所述第一采集時長,計算終止時間戳;
[0023]第一數(shù)據(jù)采集模塊,用于采集所述全量數(shù)據(jù)表中所述起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0024]進一步,所述ETL組件還包括:
[0025]數(shù)據(jù)表確定模塊,用于確定出所述業(yè)務(wù)系統(tǒng)中待采集的數(shù)據(jù)表為全量數(shù)據(jù)表或增量數(shù)據(jù)表。
[0026]進一步,所述系統(tǒng)時間確定模塊還用于在數(shù)據(jù)采集周期到達時,確定本系統(tǒng)的當(dāng)前系統(tǒng)時間;以及
[0027]所述ETL組件還包括:
[0028]第二時間戳計算模塊,用于接收到所述采集通知后,根據(jù)所述當(dāng)前系統(tǒng)時間,以及預(yù)設(shè)的延遲時長計算出時間戳上限;根據(jù)計算出的時間戳上限,以及預(yù)設(shè)的第二采集時長計算時間戳下限;
[0029]第二數(shù)據(jù)采集模塊,用于根據(jù)所述數(shù)據(jù)表確定模塊的確定結(jié)果,采集所述增量數(shù)據(jù)表中所述時間戳上限與時間戳下限所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0030]本發(fā)明實施例的技術(shù)方案中,針對現(xiàn)有的全量數(shù)據(jù)表采集方法容易出現(xiàn)系統(tǒng)卡頓、死機的現(xiàn)象,對于全量數(shù)據(jù)表采用多次躍進式的增量數(shù)據(jù)采集方式,從而在多個數(shù)據(jù)采集周期中完成對全量數(shù)據(jù)表中所有數(shù)據(jù)的采集;由于一個數(shù)據(jù)采集周期中,僅采集起始時間戳與終止時間戳之間的數(shù)據(jù),限制了采集的數(shù)據(jù)量,有效地控制了數(shù)據(jù)采集頻率,避免短時間內(nèi)因需要采集的數(shù)據(jù)量過大,而過多占用內(nèi)存、或1端口而出現(xiàn)系統(tǒng)卡頓、或死機的現(xiàn)象;減小對ETL組件所在的數(shù)據(jù)采集系統(tǒng)的性能影響,穩(wěn)定數(shù)據(jù)采集效率,也避免了由于對全量數(shù)據(jù)表的數(shù)據(jù)采集任務(wù)而影響、干擾對其它增量數(shù)據(jù)表的數(shù)據(jù)采集任務(wù)。
[0031]進一步,本發(fā)明實施例的技術(shù)方案中,針對增量數(shù)據(jù)表將當(dāng)前系統(tǒng)時間延遲預(yù)設(shè)的延遲時長后作為時間戳上限,并依據(jù)此時間戳上限進行數(shù)據(jù)采集;避免了業(yè)務(wù)系統(tǒng)因時間差或網(wǎng)絡(luò)延遲而沒有及時記錄當(dāng)前時間下的數(shù)據(jù)而使得采集的數(shù)據(jù)丟失一部分當(dāng)前時間的數(shù)據(jù)的情況;也就是說,當(dāng)前時間記錄的數(shù)據(jù)將延遲預(yù)設(shè)的延遲時長后才會被采集,從而提尚數(shù)據(jù)米集的完整性。
【附圖說明】
[0032]圖1為本發(fā)明實施例的ETL組件進行數(shù)據(jù)采集的方法流程圖;
[0033]圖2為本發(fā)明實施例的ETL組件針對全量數(shù)據(jù)表進行一次躍進式的增量數(shù)據(jù)采集的方法流程圖;
[0034]圖3為本發(fā)明實施例的ETL組件針對增量數(shù)據(jù)表進行延遲式的增量數(shù)據(jù)采集的方法流程圖;
[0035]圖4為本發(fā)明實施例的ETL組件內(nèi)部結(jié)構(gòu)框圖。
【具體實施方式】
[0036]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
[0037]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0038]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“親接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。
[0039]需要說明的是,本發(fā)明實施例中所有使用“第一”和“第二”的表述均是為了區(qū)分兩個相同名稱非相同的實體或者非相同的參量,可見“第一” “第二”僅為了表述的方便,不應(yīng)理解為對本發(fā)明實施例的限定,后續(xù)實施例對此不再一一說明。
[0040]本發(fā)明實施例的技術(shù)方案中,針對全量數(shù)據(jù)表以多次的躍進式的增量數(shù)據(jù)采集代替?zhèn)鹘y(tǒng)的一次性采集方案,每次數(shù)據(jù)采集周期觸發(fā)一次躍進式的增量數(shù)據(jù)采集。具體地,數(shù)據(jù)采集周期到達時,針對業(yè)務(wù)系統(tǒng)中的全量數(shù)據(jù)表,進行一次躍進式的增量數(shù)據(jù)采集:確定所述全量數(shù)據(jù)表已采集的次數(shù);根據(jù)所述全量數(shù)據(jù)表中的最小時間戳、預(yù)設(shè)的第一采集時長,以及確定的已采集的次數(shù),計算起始時間戳;根據(jù)所述起始時間戳,以及所述第一采集時長,計算終止時間戳;采集所述全量數(shù)據(jù)表中所述起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0041]由于對于全量數(shù)據(jù)表采用多次躍進式的增量數(shù)據(jù)采集方式,從而可以在多個數(shù)據(jù)采集周期中完成對全量數(shù)據(jù)表中所有數(shù)據(jù)的采集;由于一個數(shù)據(jù)采集周期中,僅采集起始時間戳與終止時間戳之間的數(shù)據(jù),限制了采集的數(shù)據(jù)量,有效地控制了數(shù)據(jù)采集頻率,從而避免短時間內(nèi)因需要采集的數(shù)據(jù)量過大,而過多占用內(nèi)存、或1端口而出現(xiàn)系統(tǒng)卡頓、或死機的現(xiàn)象;減小對ETL組件所在的數(shù)據(jù)采集系統(tǒng)的性能影響,穩(wěn)定數(shù)據(jù)采集效率,也避免了由于對全量數(shù)據(jù)表的數(shù)據(jù)采集任務(wù)而影響、干擾對其它增量數(shù)據(jù)表的數(shù)據(jù)采集任務(wù)。
[0042 ]下面結(jié)合附圖詳細說明本發(fā)明的技術(shù)方案。
[0043]基于上述的思路,本發(fā)明實施例提供的一種ETL組件的數(shù)據(jù)采集方法,具體流程如圖1所示,包括如下步驟:
[0044]步驟S101:ETL組件在每次數(shù)據(jù)采集周期到達時,確定本ETL組件所在系統(tǒng)的當(dāng)前系統(tǒng)時間。
[0045]具體地,安裝有ETL組件的數(shù)據(jù)采集系統(tǒng)在每次數(shù)據(jù)采集周期到達時,確定本系統(tǒng)的當(dāng)前系統(tǒng)時間。
[0046]步驟S102:ETL組件確定出各業(yè)務(wù)系統(tǒng)中待采集的數(shù)據(jù)表為全量數(shù)據(jù)表或增量數(shù)據(jù)表。
[0047]更優(yōu)地,本發(fā)明的發(fā)明人還考慮到目前各業(yè)務(wù)系統(tǒng)中大多數(shù)數(shù)據(jù)表均為增量數(shù)據(jù)表(或稱增量同步數(shù)據(jù)表),但有時也存在全量數(shù)據(jù)表(或稱全量同步數(shù)據(jù)表)的情況。對于增量數(shù)據(jù)表,本發(fā)明采用延遲式的增量數(shù)據(jù)采集方法,則可以盡量避免采集時漏掉數(shù)據(jù),提高數(shù)據(jù)采集的完整性;而對于全量數(shù)據(jù)表,則采用躍進式的增量數(shù)據(jù)采集方法,從而解決采集全量數(shù)據(jù)表時系統(tǒng)卡頓、甚至死機的現(xiàn)象。
[0048]因此,本步驟中,對各業(yè)務(wù)系統(tǒng)中的每個待采集的數(shù)據(jù)表,確定該數(shù)據(jù)表為全量數(shù)據(jù)表,還是增量數(shù)據(jù)表,以便于進一步?jīng)Q定針對該表是采取延遲式的增量數(shù)據(jù)采集方法,還是采取躍進式的增量數(shù)據(jù)采集方法。
[0049]事實上,可以預(yù)先針對各業(yè)務(wù)系統(tǒng)中待采集的數(shù)據(jù)表逐一判斷其為全量數(shù)據(jù)表還是增量數(shù)據(jù)表,并進行記錄;在本步驟中,可以根據(jù)預(yù)先的記錄,確定每個待采集的數(shù)據(jù)表為全量數(shù)據(jù)表還是增量數(shù)據(jù)表。如何判斷全量數(shù)據(jù)表,以及增量數(shù)據(jù)表為本領(lǐng)域技術(shù)人員所熟知,此次不再贅述。
[0050]步驟S103:ETL組件針對增量數(shù)據(jù)表進行延遲式的增量數(shù)據(jù)采集。
[0051]步驟S104:ETL組件針對全量數(shù)據(jù)表進行一次躍進式的增量數(shù)據(jù)采集。
[0052]本發(fā)明實施例的技術(shù)方案中,針對全量數(shù)據(jù)表中的數(shù)據(jù)并不是一次性地進行采集,而是進行多次的躍進式的增量數(shù)據(jù)采集;每次躍進式的增量數(shù)據(jù)采集可以由數(shù)據(jù)采集周期的到達而觸發(fā)。也就是說,每次數(shù)據(jù)采集周期到達后,會對全量數(shù)據(jù)表進行一次增量式采集,直到該全量數(shù)據(jù)表的數(shù)據(jù)完全被采集。
[0053]上述步驟S104中提到的ETL組件針對全量數(shù)據(jù)表進行一次躍進式的增量數(shù)據(jù)采集的具體方法,流程如圖2所示,包括如下步驟:
[0054]步驟S201:針對一個全量數(shù)據(jù)表,ETL組件在該次躍進式的增量數(shù)據(jù)采集過程中,確定該全量數(shù)據(jù)表已采集的次數(shù)。
[0055]本步驟中,ETL組件針對一個全量數(shù)據(jù)表在當(dāng)前此次躍進式的增量數(shù)據(jù)采集過程中,首先確定之前針對該全量數(shù)據(jù)表已采集的次數(shù)。
[0056]事實上,ETL組件針對該全量數(shù)據(jù)表每進行一次躍進式的增量數(shù)據(jù)采集時,即可進行采集計數(shù)的累加;ETL組件根據(jù)記錄的采集計數(shù),確定之前針對該全量數(shù)據(jù)表進行躍進式的增量數(shù)據(jù)采集的次數(shù)。
[0057]步驟S202:ETL組件根據(jù)該全量數(shù)據(jù)表中的最小時間戳、預(yù)設(shè)的第一采集時長,以及確定的已采集的次數(shù),計算起始時間戳。
[0058]本步驟中,ETL組件根據(jù)如下公式I計算起始時間戳:
[0059]Tstart = Tmin+ff Xm (公式 I)
[0060]其中,Tstart表示起始時間戳,Tmin表示最小時間戳,W表示第一采集時長,m表示已采集的次數(shù)。
[0061 ]例如,全量數(shù)據(jù)表中的最小時間戳為2014年I月I日O時,第一采集時長為I小時,確定的已采集的次數(shù)為10,則根據(jù)上述的公式,可以計算出本次采集的起始時間戳為2014年I月I日10時。
[0062]本領(lǐng)域技術(shù)人員可以根據(jù)經(jīng)驗或?qū)嶋H情況設(shè)置第一采集時長;比如,可以設(shè)置第一采集時長為30分鐘或I小時。
[0063]步驟S203:ETL組件根據(jù)所述起始時間戳,以及所述第一采集時長,計算終止時間戳。
[0064]本步驟中,ETL組件將起始時間戳與第一采集時長相加,得到終止時間戳。
[0065]例如,起始時間戳為2014年I月I日10時,第一采集時長為I小時,則計算出終止時間戳為2014年I月I日11時。
[0066]步驟S204:ETL組件采集該全量數(shù)據(jù)表中所述起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0067]本步驟中,ETL組件在本次數(shù)據(jù)采集周期中僅采集全量數(shù)據(jù)表中起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。例如,在本次的躍進式的增量數(shù)據(jù)采集過程中,僅采集全量數(shù)據(jù)表中2014年I月I日10時至2014年I月I日11時記錄的數(shù)據(jù)。這樣,就限制了ETL組件在一次數(shù)據(jù)采集周期中采集的數(shù)據(jù)量,避免因為一定時間內(nèi)需要采集大量的數(shù)據(jù)而占用過多內(nèi)存和1端口導(dǎo)致系統(tǒng)的卡頓甚至死機。
[0068]此外,本發(fā)明的發(fā)明人還發(fā)現(xiàn),現(xiàn)有技術(shù)的ETL組件以時間戳方式針對增量數(shù)據(jù)表進行增量數(shù)據(jù)采集時,通常根據(jù)本系統(tǒng)的當(dāng)前系統(tǒng)時間,對各業(yè)務(wù)系統(tǒng)中相應(yīng)時間戳的數(shù)據(jù)進行采集。比如,當(dāng)前系統(tǒng)時間為8:00,則采集各業(yè)務(wù)系統(tǒng)中7:59?8:00之間的數(shù)據(jù)。此時,由于各業(yè)務(wù)系統(tǒng)的時間差,可能有的業(yè)務(wù)系統(tǒng)的當(dāng)前系統(tǒng)時間還未到8:00,或者由于網(wǎng)絡(luò)原因延遲了 8:00的數(shù)據(jù)記錄,那么ETL組件將無法獲取到這些業(yè)務(wù)系統(tǒng)的8:00所記錄的數(shù)據(jù),導(dǎo)致數(shù)據(jù)采集的不完整。
[0069]由此,本發(fā)明的技術(shù)方案中將采集數(shù)據(jù)的時間進行一定的延遲;例如,將8:00的記錄數(shù)據(jù)延遲到8:01進行采集;也就是說,將當(dāng)前系統(tǒng)時間減去一個延遲時長計算出一個采集數(shù)據(jù)的時間戳上限,進而再計算時間戳下限,所述時間戳上限與時間戳下限所標(biāo)示的時間范圍進行數(shù)據(jù)采集。例如,當(dāng)前系統(tǒng)時間為8:01,則采集各業(yè)務(wù)系統(tǒng)中7:59?8:00之間的數(shù)據(jù)。此時,由于各業(yè)務(wù)系統(tǒng)8:00的記錄數(shù)據(jù)已延遲到8:01進行采集;這樣,雖然業(yè)務(wù)系統(tǒng)有時間差,但適當(dāng)?shù)难舆t采集可以保證各業(yè)務(wù)系統(tǒng)均已記錄到8:00的數(shù)據(jù);同時,雖然有的業(yè)務(wù)系統(tǒng)因網(wǎng)絡(luò)原因會延遲記錄數(shù)據(jù),而適當(dāng)?shù)难舆t采集也可以盡量保證在8:01時,業(yè)務(wù)系統(tǒng)已記錄了延遲到達的8:00的數(shù)據(jù),從而盡量避免采集時漏掉數(shù)據(jù),提高數(shù)據(jù)采集的完整性。
[0070]也就是說,本發(fā)明的技術(shù)方案中采用延遲式的增量數(shù)據(jù)采集方案:ETL組件在數(shù)據(jù)采集周期到達時,確定本ETL組件所在系統(tǒng)的當(dāng)前系統(tǒng)時間;根據(jù)確定的當(dāng)前系統(tǒng)時間,以及預(yù)設(shè)的延遲時長計算出時間戳上限;根據(jù)計算出的時間戳上限,以及預(yù)設(shè)的第二采集時長計算時間戳下限;進而,采集各業(yè)務(wù)系統(tǒng)中所述時間戳上限與時間戳下限所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù);從而盡量避免采集時漏掉數(shù)據(jù),提高數(shù)據(jù)采集的完整性。
[0071]基于上述分析,上述步驟S103中提到的ETL組件針對增量數(shù)據(jù)表進行延遲式的增量數(shù)據(jù)采集的具體方法,流程如圖3所示,包括如下步驟:
[0072]步驟S301:ETL組件根據(jù)當(dāng)前系統(tǒng)時間,以及預(yù)設(shè)的延遲時長計算出時間戳上限。
[0073]本步驟中,ETL組件將當(dāng)前系統(tǒng)時間減去預(yù)設(shè)的延遲時長,得到時間戳上限。例如,預(yù)設(shè)的延遲時長為I分鐘,當(dāng)前系統(tǒng)時間為8:01,則計算得到時間戳上限為8:00。
[0074]本領(lǐng)域技術(shù)人員可以根據(jù)經(jīng)驗或?qū)嶋H情況設(shè)置延遲時長;較佳地,可設(shè)置延遲時長等于或大于I分鐘。
[0075]步驟S302:ETL組件根據(jù)計算出的時間戳上限,以及預(yù)設(shè)的第二采集時長計算時間戳下限。
[0076]本步驟中,ETL組件將時間戳上限減去第二采集時長,計算得到時間戳下限。例如,計算的時間戳上限為8:00,預(yù)設(shè)的第二采集時長為I分鐘,則計算出時間戳下限為7:59。
[0077]本領(lǐng)域技術(shù)人員可以根據(jù)經(jīng)驗或?qū)嶋H情況設(shè)置第二采集時長;較佳地,可以設(shè)置第二采集時長等于上述的延遲時長,設(shè)置上述的延遲時長等于數(shù)據(jù)采集周期。較佳地,上述的第一采集時長可以大于第二采集時長。
[0078]步驟S303:ETL組件采集各業(yè)務(wù)系統(tǒng)增量數(shù)據(jù)表中所述時間戳上限與時間戳下限所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0079]本步驟中,ETL組件根據(jù)計算的時間戳上、下限,針對各業(yè)務(wù)系統(tǒng)中的每個增量數(shù)據(jù)表,采集該增量數(shù)據(jù)表中時間戳上限與時間戳下限所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0080]本發(fā)明實施例的技術(shù)方案中,由于對于全量數(shù)據(jù)表采用多次躍進式的增量數(shù)據(jù)采集方式,從而可以在多個數(shù)據(jù)采集周期中完成對全量數(shù)據(jù)表中所有數(shù)據(jù)的采集;由于一個數(shù)據(jù)采集周期中,僅采集起始時間戳與終止時間戳之間的數(shù)據(jù),限制了采集的數(shù)據(jù)量,有效地控制了數(shù)據(jù)采集頻率,從而避免短時間內(nèi)因需要采集的數(shù)據(jù)量過大,而過多占用內(nèi)存、或1端口而出現(xiàn)系統(tǒng)卡頓、或死機的現(xiàn)象;減小對ETL組件所在的數(shù)據(jù)采集系統(tǒng)的性能影響,穩(wěn)定數(shù)據(jù)采集效率,也避免了由于對全量數(shù)據(jù)表的數(shù)據(jù)采集任務(wù)而影響、干擾對其它增量數(shù)據(jù)表的數(shù)據(jù)采集任務(wù)。
[0081]進一步,由于將當(dāng)前系統(tǒng)時間延遲預(yù)設(shè)的延遲時長后作為時間戳上限,并依據(jù)此時間戳上限進行數(shù)據(jù)采集;避免了業(yè)務(wù)系統(tǒng)因時間差或網(wǎng)絡(luò)延遲而沒有及時記錄當(dāng)前時間下的數(shù)據(jù)而使得采集的數(shù)據(jù)丟失一部分當(dāng)前時間的數(shù)據(jù)的情況;也就是說,當(dāng)前時間記錄的數(shù)據(jù)將延遲預(yù)設(shè)的延遲時長后才會被采集,從而提高數(shù)據(jù)采集的完整性。
[0082]基于上述的方法,本發(fā)明實施例提供的一種ETL組件的內(nèi)部結(jié)構(gòu),如圖4所示,其數(shù)據(jù)采集裝置中包括如下模塊:系統(tǒng)時間確定模塊401、第一時間戳計算模塊402、第一數(shù)據(jù)采集豐旲塊403。
[0083]其中,系統(tǒng)時間確定模塊401用于在數(shù)據(jù)采集周期到達時,發(fā)送采集通知;
[0084]第一時間戳計算模塊402用于接收到系統(tǒng)時間確定模塊401發(fā)送的采集通知后,針對業(yè)務(wù)系統(tǒng)中的全量數(shù)據(jù)表,根據(jù)所述全量數(shù)據(jù)表中的最小時間戳、預(yù)設(shè)的第一采集時長,以及確定的已采集的次數(shù),計算起始時間戳;根據(jù)所述起始時間戳,以及所述第一采集時長,計算終止時間戳。
[0085]第一數(shù)據(jù)采集模塊403用于根據(jù)第一時間戳計算模塊402的計算結(jié)果,采集所述全量數(shù)據(jù)表中所述起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0086]更優(yōu)地,本發(fā)明實施例的ETL組件中還可以包括:數(shù)據(jù)表確定模塊404。
[0087]數(shù)據(jù)表確定模塊404可以確定出所述業(yè)務(wù)系統(tǒng)中待采集的數(shù)據(jù)表為全量數(shù)據(jù)表或增量數(shù)據(jù)表。
[0088]進一步,上述系統(tǒng)時間確定模塊401還用于在數(shù)據(jù)采集周期到達時,確定本系統(tǒng)的當(dāng)前系統(tǒng)時間。[0089 ]進一步,本發(fā)明實施例的ETL組件中還可以包括:第二時間戳計算模塊405、第二數(shù)據(jù)采集模塊406。
[0090]第二時間戳計算模塊405用于接收到所述采集通知后,根據(jù)系統(tǒng)時間確定模塊401確定的當(dāng)前系統(tǒng)時間,以及預(yù)設(shè)的延遲時長計算出時間戳上限;根據(jù)計算出的時間戳上限,以及預(yù)設(shè)的第二采集時長計算時間戳下限;較佳地,所述延遲時長與所述采集時長相等;較佳地,所述第一采集時長大于第二采集時長。
[0091]第二數(shù)據(jù)采集模塊403用于根據(jù)第二時間戳計算模塊402計算的時間戳,采集數(shù)據(jù)表確定模塊404所確定的增量數(shù)據(jù)表中所述時間戳上限與時間戳下限所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。
[0092]其中各模塊對時間戳上、下限,或者起始、終止時間戳的具體計算可參照上述如圖1-3所示的方法流程中的具體計算方法,此處不再贅述。
[0093]本發(fā)明實施例的技術(shù)方案中,由于對于全量數(shù)據(jù)表采用多次躍進式的增量數(shù)據(jù)采集方式,從而可以在多個數(shù)據(jù)采集周期中完成對全量數(shù)據(jù)表中所有數(shù)據(jù)的采集;由于一個數(shù)據(jù)采集周期中,僅采集起始時間戳與終止時間戳之間的數(shù)據(jù),限制了采集的數(shù)據(jù)量,有效地控制了數(shù)據(jù)采集頻率,從而避免短時間內(nèi)因需要采集的數(shù)據(jù)量過大,而過多占用內(nèi)存、或1端口而出現(xiàn)系統(tǒng)卡頓、或死機的現(xiàn)象;減小對ETL組件所在的數(shù)據(jù)采集系統(tǒng)的性能影響,穩(wěn)定數(shù)據(jù)采集效率,也避免了由于對全量數(shù)據(jù)表的數(shù)據(jù)采集任務(wù)而影響、干擾對其它增量數(shù)據(jù)表的數(shù)據(jù)采集任務(wù)。
[0094]進一步,由于將當(dāng)前系統(tǒng)時間延遲預(yù)設(shè)的延遲時長后作為時間戳上限,并依據(jù)此時間戳上限進行數(shù)據(jù)采集;避免了業(yè)務(wù)系統(tǒng)因時間差或網(wǎng)絡(luò)延遲而沒有及時記錄當(dāng)前時間下的數(shù)據(jù)而使得采集的數(shù)據(jù)丟失一部分當(dāng)前時間的數(shù)據(jù)的情況;也就是說,當(dāng)前時間記錄的數(shù)據(jù)將延遲預(yù)設(shè)的延遲時長后才會被采集,從而提高數(shù)據(jù)采集的完整性。
[0095]本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計和制造,或者也可以包括通用計算機中的已知設(shè)備。這些設(shè)備具有存儲在其內(nèi)的計算機程序,這些計算機程序選擇性地激活或重構(gòu)。這樣的計算機程序可以被存儲在設(shè)備(例如,計算機)可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計算機可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、R0M(Read-0nly Memory,只讀存儲器)、RAM (Random Access Memory,隨即存儲器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦寫可編程只讀存儲器)、EEPR0M(E1 ectricalIy ErasableProgrammable Read-Only Memory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。
[0096]本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計算機程序指令來實現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數(shù)據(jù)處理方法的處理器來實現(xiàn),從而通過計算機或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。
[0097]本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
[0098]所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實施例或者不同實施例中的技術(shù)特征之間也可以進行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細節(jié)中提供。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1.一種數(shù)據(jù)采集方法,其特征在于,包括: 數(shù)據(jù)采集周期到達時,針對業(yè)務(wù)系統(tǒng)中的全量數(shù)據(jù)表,進行一次躍進式的增量數(shù)據(jù)采集: 確定所述全量數(shù)據(jù)表已采集的次數(shù); 根據(jù)所述全量數(shù)據(jù)表中的最小時間戳、預(yù)設(shè)的第一采集時長,以及確定的已采集的次數(shù),計算起始時間戳; 根據(jù)所述起始時間戳,以及所述第一采集時長,計算終止時間戳; 采集所述全量數(shù)據(jù)表中所述起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 確定出所述業(yè)務(wù)系統(tǒng)中待采集的增量數(shù)據(jù)表。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述數(shù)據(jù)采集周期到達后,還包括: 根據(jù)本系統(tǒng)的當(dāng)前系統(tǒng)時間,以及預(yù)設(shè)的延遲時長計算出時間戳上限; 根據(jù)計算出的時間戳上限,以及預(yù)設(shè)的第二采集時長計算時間戳下限; 采集所述增量數(shù)據(jù)表中所述時間戳上限與時間戳下限所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述延遲時長與所述第二采集時長相等。5.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述第一采集時長大于第二采集時長。6.一種ETL組件,其特征在于,包括: 系統(tǒng)時間確定模塊,用于在數(shù)據(jù)采集周期到達時,發(fā)送采集通知; 第一時間戳計算模塊,用于接收到所述采集通知后,針對業(yè)務(wù)系統(tǒng)中的全量數(shù)據(jù)表,根據(jù)所述全量數(shù)據(jù)表中的最小時間戳、預(yù)設(shè)的第一采集時長,以及確定的已采集的次數(shù),計算起始時間戳;根據(jù)所述起始時間戳,以及所述第一采集時長,計算終止時間戳; 第一數(shù)據(jù)采集模塊,用于采集所述全量數(shù)據(jù)表中所述起始時間戳與終止時間戳所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。7.根據(jù)權(quán)利要求6所述的ETL組件,其特征在于,還包括: 數(shù)據(jù)表確定模塊,用于確定出所述業(yè)務(wù)系統(tǒng)中待采集的數(shù)據(jù)表為全量數(shù)據(jù)表或增量數(shù)據(jù)表。8.根據(jù)權(quán)利要求7所述的ETL組件,其特征在于, 所述系統(tǒng)時間確定模塊還用于在數(shù)據(jù)采集周期到達時,確定本系統(tǒng)的當(dāng)前系統(tǒng)時間;以及 所述ETL組件還包括: 第二時間戳計算模塊,用于接收到所述采集通知后,根據(jù)所述當(dāng)前系統(tǒng)時間,以及預(yù)設(shè)的延遲時長計算出時間戳上限;根據(jù)計算出的時間戳上限,以及預(yù)設(shè)的第二采集時長計算時間戳下限; 第二數(shù)據(jù)采集模塊,用于根據(jù)所述數(shù)據(jù)表確定模塊的確定結(jié)果,采集所述增量數(shù)據(jù)表中所述時間戳上限與時間戳下限所標(biāo)示的時間范圍內(nèi)的數(shù)據(jù)。9.根據(jù)權(quán)利要求8所述的ETL組件,其特征在于,所述延遲時長與所述第二采集時長相等。10.根據(jù)權(quán)利要求8或9所述的ETL組件,其特征在于,所述第一采集時長大于第二采集時長。
【文檔編號】G06F17/30GK105843935SQ201610195431
【公開日】2016年8月10日
【申請日】2016年3月30日
【發(fā)明人】劉永華, 楊佳浩, 王孝慶
【申請人】樂視控股(北京)有限公司, 樂視云計算有限公司