一種數(shù)據(jù)的動態(tài)加載處理方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種數(shù)據(jù)的動態(tài)加載處理方法及系統(tǒng),所述方法包括:獲取當(dāng)前系統(tǒng)的待加載的原子任務(wù);根據(jù)所述的原子任務(wù)生成組合任務(wù);動態(tài)采集當(dāng)前系統(tǒng)的即時中央處理器CPU使用率、即時輸入/輸出IO使用率;根據(jù)所述的即時CPU使用率、即時IO使用率加載所述的組合任務(wù)。通過將原ETL任務(wù)中的源表——目標(biāo)表關(guān)系視為一個原子任務(wù),對其進(jìn)行動態(tài)組合,使得ETL任務(wù)具備較高的靈活性,實現(xiàn)原子任務(wù)較高層次的復(fù)用度,動態(tài)組合任務(wù)加載,做到系統(tǒng)資源得以充分的利用,最大程度地優(yōu)化提升數(shù)據(jù)倉庫對外提供服務(wù)質(zhì)量。
【專利說明】一種數(shù)據(jù)的動態(tài)加載處理方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明關(guān)于計算機數(shù)據(jù)【技術(shù)領(lǐng)域】,特別是關(guān)于計算機數(shù)據(jù)的抽取、轉(zhuǎn)換、裝載技術(shù),具體的講是一種數(shù)據(jù)的動態(tài)加載處理方法及系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)據(jù)倉庫是一個龐大的數(shù)據(jù)海洋,海量的數(shù)據(jù)都是通過ETL(Extract TransformLoad、數(shù)據(jù)抽取、轉(zhuǎn)換、裝載)任務(wù)來完成加載轉(zhuǎn)換的。隨著計算機技術(shù)的日益發(fā)展,數(shù)據(jù)倉庫的規(guī)模不斷壯大,納入的數(shù)據(jù)源與日俱增,其時效性也參差不齊。
[0003]現(xiàn)有技術(shù)中的ETL任務(wù),是將進(jìn)相同數(shù)據(jù)倉庫模型實體的不同源表全部組合在同一個加載任務(wù)中,僅當(dāng)該任務(wù)的所有上游源表到齊后,才開始加載轉(zhuǎn)換。因此,通過現(xiàn)有技術(shù)中的ETL任務(wù)來完成加載轉(zhuǎn)換存在如下問題:
[0004]1、加載任務(wù)若集中在一段時間內(nèi)爆發(fā),爆發(fā)前上游數(shù)據(jù)到達(dá)卻不加載,會導(dǎo)致系統(tǒng)空閑;爆發(fā)后若系統(tǒng)繁忙壓力較大,會導(dǎo)致加載速度受限于系統(tǒng)資源。
[0005]2、涉及批量中關(guān)鍵路徑上的作業(yè),只能通過固定拆分任務(wù)實現(xiàn)調(diào)整,不夠自動、靈活。
[0006]因此,如何提出一種基于數(shù)據(jù)的動態(tài)加載處理的方案,其能夠克服數(shù)據(jù)倉庫ETL任務(wù)內(nèi)容固定組合所帶來的不利影響是本領(lǐng)域亟待解決的技術(shù)難題。
【發(fā)明內(nèi)容】
[0007]為了克服現(xiàn)有技術(shù)存在的數(shù)據(jù)倉庫ETL任務(wù)內(nèi)容固定組合所帶來的不利影響的技術(shù)問題,本發(fā)明提供了一種數(shù)據(jù)的動態(tài)加載處理方法及系統(tǒng),將原ETL任務(wù)中的源表——目標(biāo)表關(guān)系視為一個原子任務(wù),對其進(jìn)行動態(tài)組合,實現(xiàn)較優(yōu)原子組合,以充分利用系統(tǒng)資源,提高ETL效率,提高數(shù)據(jù)倉庫對外數(shù)據(jù)服務(wù)效益。
[0008]本發(fā)明的目的之一是,提供一種數(shù)據(jù)的動態(tài)加載處理方法,包括:獲取當(dāng)前系統(tǒng)的待加載的原子任務(wù);根據(jù)所述的原子任務(wù)生成組合任務(wù);動態(tài)采集當(dāng)前系統(tǒng)的即時中央處理器CPU使用率、即時輸入/輸出IO使用率;根據(jù)所述的即時CPU使用率、即時IO使用率加載所述的組合任務(wù)。
[0009]本發(fā)明的目的之一是,提供了一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng),所述的系統(tǒng)具體包括:原子任務(wù)獲取裝置,用于獲取當(dāng)前系統(tǒng)的待加載的原子任務(wù);組合任務(wù)生成裝置,用于根據(jù)所述的原子任務(wù)生成組合任務(wù);即時使用率采集裝置,用于動態(tài)采集當(dāng)前系統(tǒng)的即時中央處理器CPU使用率、即時輸入/輸出IO使用率;組合任務(wù)加載裝置,用于根據(jù)所述的即時CPU使用率、即時IO使用率加載所述的組合任務(wù)。
[0010]本發(fā)明的有益效果在于,提供了一種數(shù)據(jù)的動態(tài)加載處理方法及系統(tǒng),通過將原ETL任務(wù)中的源表——目標(biāo)表關(guān)系視為一個原子任務(wù),對其進(jìn)行動態(tài)組合,使得ETL任務(wù)具備較高的靈活性,實現(xiàn)原子任務(wù)較高層次的復(fù)用度,動態(tài)組合任務(wù)加載,做到系統(tǒng)資源得以充分的利用,最大程度地優(yōu)化提升數(shù)據(jù)倉庫對外提供服務(wù)質(zhì)量。[0011]為讓本發(fā)明的上述和其他目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,作詳細(xì)說明如下。
【專利附圖】
【附圖說明】
[0012]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0013]圖1為本發(fā)明實施例提供的一種數(shù)據(jù)的動態(tài)加載處理方法的流程圖;
[0014]圖2為圖1中的步驟S102的具體流程圖;
[0015]圖3為圖1中的步驟S104的實施方式一的具體流程圖;
[0016]圖4為圖1中的步驟S104的實施方式二的具體流程圖;
[0017]圖5為圖1中的步驟S104的實施方式三的具體流程圖;
[0018]圖6為圖3中的步驟S304的具體流程圖;
[0019]圖7為圖3中的步驟S305的具體流程圖;
[0020]圖8為本發(fā)明提供的一種數(shù)據(jù)的動態(tài)加載處理方法在具體實例中的流程圖;
[0021]圖9為本發(fā)明實施例提供的一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng)的結(jié)構(gòu)框圖;
[0022]圖10為本發(fā)明實施例提供的一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng)中組合任務(wù)生成裝置200的結(jié)構(gòu)框圖;
[0023]圖11為本發(fā)明實施例提供的一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng)中組合任務(wù)加載裝置400的實施方式一的結(jié)構(gòu)框圖;
[0024]圖12為本發(fā)明實施例提供的一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng)中組合任務(wù)加載裝置400的實施方式二的結(jié)構(gòu)框圖;
[0025]圖13為本發(fā)明實施例提供的一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng)中組合任務(wù)加載裝置400的實施方式三的結(jié)構(gòu)框圖;
[0026]圖14為本發(fā)明實施例提供的一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng)中資源確定模塊404的結(jié)構(gòu)框圖;
[0027]圖15為本發(fā)明實施例提供的一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng)中加載模塊405的結(jié)構(gòu)框圖。
【具體實施方式】
[0028]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0029]本發(fā)明提出一種數(shù)據(jù)的動態(tài)加載處理方法,克服了數(shù)據(jù)倉庫ETL任務(wù)內(nèi)容固定組合所帶來的不利影響,將原ETL任務(wù)中的源表一目標(biāo)表關(guān)系視為一個原子任務(wù),不同的任務(wù)按需動態(tài)地組合多個原子任務(wù),實現(xiàn)較優(yōu)原子組合,以充分利用系統(tǒng)資源,提高ETL效率,提高數(shù)據(jù)倉庫對外數(shù)據(jù)服務(wù)效益。[0030]圖1為本發(fā)明提出的一種數(shù)據(jù)的動態(tài)加載處理方法的具體流程圖,由圖1可知,所述的方法包括:
[0031]SlOl:獲取當(dāng)前系統(tǒng)的待加載的原子任務(wù)。
[0032]在具體的實施例中,原子任務(wù)的格式定義如下:ATOM_S-TBL_T-TBL_YYYYMMDD,去找,S-TBL表示源表、T-TBL表示目標(biāo)表、YYYYMMDD表示加載日期。
[0033]當(dāng)前系統(tǒng)中存儲有原子定義的描述,如表1所示,原子的具體內(nèi)容如表2所示。
[0034]表1
【權(quán)利要求】
1.一種數(shù)據(jù)的動態(tài)加載處理方法,其特征是,所述的方法具體包括: 獲取當(dāng)前系統(tǒng)的待加載的原子任務(wù); 根據(jù)所述的原子任務(wù)生成組合任務(wù); 動態(tài)采集當(dāng)前系統(tǒng)的即時中央處理器CPU使用率、即時輸入/輸出IO使用率; 根據(jù)所述的即時CPU使用率、即時IO使用率加載所述的組合任務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征是,根據(jù)所述的原子任務(wù)生成組合任務(wù)具體包括: 確定所述原子任務(wù)的目標(biāo)表; 確定所述原子任務(wù)的源表; 根據(jù)所述原子任務(wù)的源表以及目標(biāo)表對所述的原子任務(wù)進(jìn)行組合,生成組合任務(wù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征是,根據(jù)所述的即時CPU使用率、即時IO使用率加載所述的組合任務(wù)具體包括: 獲取當(dāng)前系統(tǒng)的CPU使用上限以及IO使用上限; 根據(jù)所述的即時CPU使用率、當(dāng)前系統(tǒng)的CPU使用上限判斷所述的即時CPU使用率是否飽和; 當(dāng)判斷為否時,根據(jù)所述的即時IO使用率、當(dāng)前系統(tǒng)的IO使用上限繼續(xù)判斷所述的即時IO使用率是否飽和; 當(dāng)判斷為否時,確定所述組合任務(wù)的加載所需資源; 根據(jù)所述的加載所需資源、所述的CPU使用上限以及IO使用上限加載所述的組合任務(wù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征是,確定所述組合任務(wù)的加載所需資源具體包括: 獲取所述原子任務(wù)的原子生成記錄、運行時間以及數(shù)據(jù)規(guī)模; 根據(jù)所述的運行時間以及數(shù)據(jù)規(guī)模確定原子數(shù)據(jù)加載效率; 根據(jù)所述的原子數(shù)據(jù)加載效率以及原子生成記錄確定所述組合任務(wù)的加載完成時間; 獲取所述原子任務(wù)的到達(dá)時間區(qū)間; 當(dāng)所述組合任務(wù)的加載完成時間在所述的到達(dá)時間區(qū)間內(nèi)時,獲取所述原子任務(wù)的資源消耗; 根據(jù)所述的資源消耗以及原子生成記錄確定所述組合任務(wù)的加載所需資源。
5.根據(jù)權(quán)利要求3所述的方法,其特征是,根據(jù)所述的加載所需資源、所述的CPU使用上限以及IO使用上限加載所述的組合任務(wù)具體包括: 根據(jù)所述加載所需資源確定所述組合任務(wù)加載所需的CPU使用率以及IO使用率; 判斷所述組合任務(wù)加載所需的CPU使用率是否超出當(dāng)前系統(tǒng)的CPU使用上限; . 當(dāng)判斷為否時,繼續(xù)判斷所述組合任務(wù)加載所需的IO使用率是否超出當(dāng)前系統(tǒng)的IO使用上限; 當(dāng)判斷為否時,加載所述的組合任務(wù)。
6.根據(jù)權(quán)利要求2所述的方法,其特征是,根據(jù)所述的即時CPU使用率、即時IO使用率加載所述的組合任務(wù)具體包括:獲取當(dāng)前系統(tǒng)的CPU使用上限以及IO使用上限; 根據(jù)所述的即時CPU使用率、當(dāng)前系統(tǒng)的CPU使用上限判斷所述的即時CPU使用率是否飽和; 當(dāng)判斷為否時,根據(jù)所述的即時IO使用率、當(dāng)前系統(tǒng)的IO使用上限繼續(xù)判斷所述的即時IO使用率是否飽和; 當(dāng)判斷為是時,獲取所述原子任務(wù)的運行時間、資源消耗; 根據(jù)所述的運行時間、資源消耗確定所述原子任務(wù)的屬性偏向; 根據(jù)所述原子任務(wù)的屬性偏向確定所述組合任務(wù)的屬性偏向; 判斷所述組合任務(wù)的屬性偏向是否為CPU型; 當(dāng)判斷為是時,加載所述的組合任務(wù)。
7.根據(jù)權(quán)利要求2所述的方法,其特征是,根據(jù)所述的即時CPU使用率、即時IO使用率加載所述的組合任務(wù)具體包括: 獲取當(dāng)前系統(tǒng)的CPU使用上限以及IO使用上限; 根據(jù)所述的即時CPU使 用率、當(dāng)前系統(tǒng)的CPU使用上限判斷所述的即時CPU使用率是否飽和; 當(dāng)判斷為是時,根據(jù)所述的即時IO使用率、當(dāng)前系統(tǒng)的IO使用上限繼續(xù)判斷所述的即時IO使用率是否飽和; 當(dāng)判斷為否時,獲取所述原子任務(wù)的運行時間、資源消耗; 根據(jù)所述的運行時間、資源消耗確定所述原子任務(wù)的屬性偏向; 根據(jù)所述原子任務(wù)的屬性偏向確定所述組合任務(wù)的屬性偏向; 判斷所述組合任務(wù)的屬性偏向是否為IO型; 當(dāng)判斷為是時,加載所述的組合任務(wù)。
8.一種數(shù)據(jù)的動態(tài)加載處理系統(tǒng),其特征是,所述的系統(tǒng)具體包括: 原子任務(wù)獲取裝置,用于獲取當(dāng)前系統(tǒng)的待加載的原子任務(wù); 組合任務(wù)生成裝置,用于根據(jù)所述的原子任務(wù)生成組合任務(wù); 即時使用率采集裝置,用于動態(tài)采集當(dāng)前系統(tǒng)的即時中央處理器CPU使用率、即時輸入/輸出IO使用率; 組合任務(wù)加載裝置,用于根據(jù)所述的即時CPU使用率、即時IO使用率加載所述的組合任務(wù)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征是,所述的組合任務(wù)生成裝置具體包括: 目標(biāo)表確定模塊,用于確定所述原子任務(wù)的目標(biāo)表; 源表確定模塊,用于確定所述原子任務(wù)的源表; 組合模塊,用于根據(jù)所述原子任務(wù)的源表以及目標(biāo)表對所述的原子任務(wù)進(jìn)行組合,生成組合任務(wù)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征是,所述的組合任務(wù)加載裝置具體包括: 使用上限獲取模塊,用于獲取當(dāng)前系統(tǒng)的CPU使用上限以及IO使用上限; CPU判斷模塊,用于根據(jù)所述的即時CPU使用率、當(dāng)前系統(tǒng)的CPU使用上限判斷所述的即時CPU使用率是否飽和; 第一 IO判斷模塊,用于當(dāng)所述的CPU判斷模塊判斷為否時,根據(jù)所述的即時IO使用率、當(dāng)前系統(tǒng)的IO使用上限繼續(xù)判斷所述的即時IO使用率是否飽和; 資源確定模塊,用于當(dāng)所述的IO判斷模塊判斷為否時,確定所述組合任務(wù)的加載所需資源; 加載模塊,用于根據(jù)所述的加載所需資源、所述的CPU使用上限以及IO使用上限加載所述的組合任務(wù)。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征是,所述的資源確定模塊具體包括: 數(shù)據(jù)獲取單元,用于獲取所述原子任務(wù)的原子生成記錄、運行時間以及數(shù)據(jù)規(guī)模; 加載效率確定單元,用于根據(jù)所述的運行時間以及數(shù)據(jù)規(guī)模確定原子數(shù)據(jù)加載效率; 加載時間確定單元,用于根據(jù)所述的原子數(shù)據(jù)加載效率以及原子生成記錄確定所述組合任務(wù)的加載完成時間; 時間區(qū)間獲取單元,用于獲取所述原子任務(wù)的到達(dá)時間區(qū)間; 資源消耗獲取單元,用于當(dāng)所述組合任務(wù)的加載完成時間在所述的到達(dá)時間區(qū)間內(nèi)時,獲取所述原子任務(wù)的資源消耗; 所需資源確定單元,用于根據(jù)所述的資源消耗以及原子生成記錄確定所述組合任務(wù)的加載所需資源。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征是,所述的加載模塊具體包括: 使用率確定單元,用于根據(jù)所述加載所需資源確定所述組合任務(wù)加載所需的CPU使用率以及IO使用率; 第一判斷單元,用于判斷所述組合任務(wù)加載所需的CPU使用率是否超出當(dāng)前系統(tǒng)的CPU使用上限; 第二判斷單元,用于當(dāng)所述的第一判斷單元判斷為否時,繼續(xù)判斷所述組合任務(wù)加載所需的IO使用率是否超出當(dāng)前系統(tǒng)的IO使用上限; 組合任務(wù)加載單元,用于當(dāng)所述的第二判斷單元判斷為否時,加載所述的組合任務(wù)。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征是,所述的組合任務(wù)加載裝置還包括: 運行時間獲取模塊,用于當(dāng)所述IO判斷模塊判斷為是時,獲取所述原子任務(wù)的運行時間、資源消耗; 原子屬性偏向確定模塊,用于根據(jù)所述的運行時間、資源消耗確定所述原子任務(wù)的屬性偏向; 組合屬性偏向確定模塊,用于根據(jù)所述原子任務(wù)的屬性偏向確定所述組合任務(wù)的屬性偏向; 第一屬性偏向判斷模塊,用于判斷所述組合任務(wù)的屬性偏向是否為CPU型; 組合任務(wù)加載模塊,用于當(dāng)所述的第一屬性偏向判斷模塊判斷為是時,加載所述的組合任務(wù)。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征是,所述的組合任務(wù)加載裝置還包括: 第二 IO判斷模塊,用于當(dāng)所述的CPU判斷模塊判斷為是時,根據(jù)所述的即時IO使用率、當(dāng)前系統(tǒng)的IO使用上限繼續(xù)判斷所述的即時IO使用率是否飽和; 資源消耗獲取模塊,用于當(dāng)所述的第二 IO判斷模塊判斷為否時,獲取所述原子任務(wù)的運行時間、資源消耗; 第二屬性偏向判斷模塊,用于判斷所述組合任務(wù)的屬性偏向是否為IO型;組合任務(wù)加載模塊,用于當(dāng)所述的第二屬性偏向判斷模塊判斷為是時,加載所述的組合任務(wù) 。
【文檔編號】G06F9/50GK104008178SQ201410252721
【公開日】2014年8月27日 申請日期:2014年6月9日 優(yōu)先權(quán)日:2014年6月9日
【發(fā)明者】江軍華, 黃兆斌, 李卓輝, 徐煒 申請人:中國工商銀行股份有限公司