亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種在etl中優(yōu)化任務處理的方法及系統(tǒng)的制作方法

文檔序號:10512174閱讀:304來源:國知局
一種在etl中優(yōu)化任務處理的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種在ETL中優(yōu)化任務處理的方法及系統(tǒng),其中,所述方法包括:根據(jù)ETL需調(diào)度的各個任務間的相互關系構造網(wǎng)絡圖,且所述網(wǎng)絡圖標識有各個任務的任務先后執(zhí)行順序;計算所述各個任務的執(zhí)行時間段和/或所述執(zhí)行時間段中涉及的具體時間點參數(shù),得到用于標識各個任務時間的計算結(jié)果;按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及所述任務先后執(zhí)行順序,以生成第一關系表;根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行順序重新排序,得到包含關鍵任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào)度所述關鍵任務的執(zhí)行處理。
【專利說明】
一種在ETL中優(yōu)化任務處理的方法及系統(tǒng)
技術領域
[0001] 本發(fā)明涉及業(yè)務支撐領域的檢測技術,尤其涉及一種在查詢萃取轉(zhuǎn)置加載(ETL, Extract-Transform-Load)中優(yōu)化任務處理的方法及系統(tǒng)。
【背景技術】
[0002] 本申請發(fā)明人在實現(xiàn)本申請實施例技術方案的過程中,至少發(fā)現(xiàn)相關技術中存在 如下技術問題:
[0003] 所謂ETL指將數(shù)據(jù)從來源端經(jīng)過萃取(extract)、轉(zhuǎn)置(transform)、加載(load) 至目的端的過程,主要應用于數(shù)據(jù)倉庫技術,是該數(shù)據(jù)倉庫中的關鍵技術,但其對象不限定 于數(shù)據(jù)倉庫。所述ETL主要包括數(shù)據(jù)的清洗、轉(zhuǎn)換和加載,采用所述ETL技術,用戶能從數(shù) 據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗,最終按照預先定義好的數(shù)據(jù)倉庫模型,將數(shù)據(jù)加載 到數(shù)據(jù)倉庫中去。
[0004] 以應用于數(shù)據(jù)倉庫技術而言,由于ETL中包含眾多的調(diào)度任務作業(yè),如何有效管 理這些調(diào)度,提高ETL執(zhí)行效率,是提高整個數(shù)據(jù)倉庫處理能力的關鍵。采用現(xiàn)有ETL解決 方案和產(chǎn)品,大多使用分布式的架構和體系,通過并行增加服務器或者并行執(zhí)行任務來提 高ETL的處理速度,通過并行的方式來提高ETL的處理能力,通過增加硬件開銷來換取處理 能力的提升,也就是說,現(xiàn)有技術是通過額外增加硬件來換取處理能力的提升,以提高ETL 調(diào)度多任務的效率,但是會存在增加硬件開銷及提高制造成本的問題,對于這個問題,相關 技術中并未存在有效的解決方案。

【發(fā)明內(nèi)容】

[0005] 有鑒于此,本發(fā)明實施例希望提供一種在ETL中優(yōu)化任務處理的方法及系統(tǒng),至 少解決了現(xiàn)有技術存在的問題。
[0006] 本發(fā)明實施例的技術方案是這樣實現(xiàn)的:
[0007] 本發(fā)明實施例的一種在ETL中優(yōu)化任務處理的方法,所述方法包括:
[0008] 根據(jù)ETL需調(diào)度的各個任務間的相互關系構造網(wǎng)絡圖,且所述網(wǎng)絡圖標識有各個 任務的任務先后執(zhí)行順序;
[0009] 計算所述各個任務的執(zhí)行時間段和/或所述執(zhí)行時間段中涉及的具體時間點參 數(shù),得到用于標識各個任務時間的計算結(jié)果;
[0010] 按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及所述任務先后 執(zhí)行順序,以生成第一關系表;
[0011] 根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行順序重新排序,得到包含 關鍵任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào)度所述關鍵任務的執(zhí)行處理。
[0012] 上述方案中,所述根據(jù)ETL需調(diào)度的各個任務間的相互關系構造網(wǎng)絡圖,包括:
[0013] 獲取各個節(jié)點的位置,至少兩個節(jié)點構成一個任務;
[0014] 根據(jù)所述各個節(jié)點的位置對應的位置關系和任務依賴因素來建立所述ETL需調(diào) 度的各個任務間的相互關系。
[0015] 上述方案中,所述計算所述各個任務的執(zhí)行時間段,包括:
[0016] 獲取第一時間數(shù)據(jù),所述第一時間數(shù)據(jù)用于表征符合第一條件所達到的任務最快 可能完成時間;
[0017] 獲取第二時間數(shù)據(jù),所述第二時間數(shù)據(jù)用于表征符合第二條件所達到的任務最可 能完成時間;
[0018] 獲取第三時間數(shù)據(jù),所述第三時間數(shù)據(jù)用于表征符合第三條件所達到的任務最慢 可能完成時間;
[0019] 根據(jù)所述第一時間數(shù)據(jù)、所述第二時間數(shù)據(jù)和所述第三時間數(shù)據(jù)得到所述各個任 務對應的期望時間數(shù)據(jù),并將所述期望時間數(shù)據(jù)作為所述各個任務的執(zhí)行時間段。
[0020] 上述方案中,所述按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系 及所述任務先后執(zhí)行順序,以生成第一關系表,包括:
[0021] 所述預設規(guī)則為存在相互關系的各個任務中,在當前任務未完成時不允許所述當 前任務后續(xù)的緊后任務開始執(zhí)行;
[0022] 提取存在相互關系的各個任務,得到所述當前任務和所述緊后任務;
[0023] 按照所述任務先后執(zhí)行順序,建立包含所述當前任務和所述緊后任務的所述第一 關系表;
[0024] 所述第一關系表包含各個任務中所述當前任務的任務編號,和所述緊后任務的任 務編號。
[0025] 上述方案中,根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行順序重新排 序,得到包含關鍵任務的第二關系表,包括:
[0026] 根據(jù)所述計算結(jié)果遍歷所述第一關系表中的各個任務,對任務先后執(zhí)行順序重新 排序,判斷出所述當前任務和所述緊后任務在所述第一關系表中排序靠前時,將所述當前 任務和所述緊后任務確定為所述關鍵任務;
[0027] 將所述當前任務和所述緊后任務插入所述第二關系表,并從所述第一關系表中刪 除所述當前任務和所述緊后任務,同時更新所述第二關系表中的任務執(zhí)行優(yōu)先級;
[0028] 所述第二關系表包含各個任務中所述當前任務的任務編號,所述緊后任務的任務 編號,和任務執(zhí)行優(yōu)先級。
[0029] 上述方案中,所述任務執(zhí)行優(yōu)先級不是固定不變的,是隨著所述計算結(jié)果的變化 重新排序后的動態(tài)調(diào)整結(jié)果。
[0030] 上述方案中,所述根據(jù)所述第二關系表優(yōu)選調(diào)度所述關鍵任務的執(zhí)行處理,包 括:
[0031] 在判斷出所述第一關系表為空時,結(jié)束對所述第一關系表的遍歷后,讀取所述第 -關系表;
[0032] 對所述第二關系表的各個任務中當前任務和緊后任務按照所述任務執(zhí)行優(yōu)先級 的順序進行任務優(yōu)化,以優(yōu)化調(diào)度所述關鍵任務的執(zhí)行處理。
[0033] 本發(fā)明實施例的一種在ETL中優(yōu)化任務處理的系統(tǒng),所述系統(tǒng)包括:
[0034] 構造單元,用于根據(jù)ETL需調(diào)度的各個任務間的相互關系構造網(wǎng)絡圖,且所述網(wǎng) 絡圖標識有各個任務的任務先后執(zhí)行順序;
[0035] 計算單元,用于計算所述各個任務的執(zhí)行時間段和/或所述執(zhí)行時間段中涉及的 具體時間點參數(shù),得到用于標識各個任務時間的計算結(jié)果;
[0036] 掃描單元,用于按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及 所述任務先后執(zhí)行順序,以生成第一關系表;
[0037] 表生成及調(diào)度單元,用于根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行 順序重新排序,得到包含關鍵任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào)度所述關鍵 任務的執(zhí)行處理。
[0038] 上述方案中,所述計算單元,進一步包括:
[0039] 第一獲取子單元,用于獲取第一時間數(shù)據(jù),所述第一時間數(shù)據(jù)用于表征符合第一 條件所達到的任務最快可能完成時間;
[0040] 第二獲取子單元,用于獲取第二時間數(shù)據(jù),所述第二時間數(shù)據(jù)用于表征符合第二 條件所達到的任務最可能完成時間;
[0041] 第三獲取子單元,用于獲取第三時間數(shù)據(jù),所述第三時間數(shù)據(jù)用于表征符合第三 條件所達到的任務最慢可能完成時間;
[0042] 運算子單元,用于根據(jù)所述第一時間數(shù)據(jù)、所述第二時間數(shù)據(jù)和所述第三時間數(shù) 據(jù)得到所述各個任務對應的期望時間數(shù)據(jù),并將所述期望時間數(shù)據(jù)作為所述各個任務的執(zhí) 行時間段。
[0043] 上述方案中,所述掃描單元,進一步包括:
[0044] 提取子單元,用于在所述預設規(guī)則為存在相互關系的各個任務中,在當前任務未 完成時不允許所述當前任務后續(xù)的緊后任務開始執(zhí)行的情況下,提取存在相互關系的各個 任務,得到所述當前任務和所述緊后任務;
[0045] 第一關系表建立子單元,用于按照所述任務先后執(zhí)行順序,建立包含所述當前任 務和所述緊后任務的所述第一關系表;所述第一關系表包含各個任務中所述當前任務的任 務編號,和所述緊后任務的任務編號。
[0046] 上述方案中,所述表生成及調(diào)度單元,進一步包括:
[0047] 遍歷及判斷子單元,用于根據(jù)所述計算結(jié)果遍歷所述第一關系表中的各個任務, 對任務先后執(zhí)行順序重新排序,判斷出所述當前任務和所述緊后任務在所述第一關系表中 排序靠前時,將所述當前任務和所述緊后任務確定為所述關鍵任務;
[0048] 插入及更新子單元,用于將所述當前任務和所述緊后任務插入所述第二關系表, 并從所述第一關系表中刪除所述當前任務和所述緊后任務,同時更新所述第二關系表中的 任務執(zhí)行優(yōu)先級;所述第二關系表包含各個任務中所述當前任務的任務編號,所述緊后任 務的任務編號,和任務執(zhí)行優(yōu)先級;
[0049] 上述方案中,所述表生成及調(diào)度單元,進一步還包括:
[0050] 讀取子單元,在通過所述遍歷及判斷子單元判斷出所述第一關系表為空時,結(jié)束 對所述第一關系表的遍歷后,讀取所述第二關系表;
[0051] 優(yōu)化處理子單元,用于對所述第二關系表的各個任務中當前任務和緊后任務按照 所述任務執(zhí)行優(yōu)先級的順序進行任務優(yōu)化,以優(yōu)先調(diào)度所述關鍵任務的執(zhí)行處理。
[0052] 本發(fā)明實施例的在ETL中優(yōu)化任務處理的方法包括:根據(jù)ETL需調(diào)度的各個任務 間的相互關系構造網(wǎng)絡圖,且所述網(wǎng)絡圖標識有各個任務的任務先后執(zhí)行順序;計算所述 各個任務的執(zhí)行時間段和/或所述執(zhí)行時間段中涉及的具體時間點參數(shù),得到用于標識各 個任務時間的計算結(jié)果;按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及 所述任務先后執(zhí)行順序,以生成第一關系表;根據(jù)所述計算結(jié)果對所述第一關系表中的任 務先后執(zhí)行順序重新排序,得到包含關鍵任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào) 度所述關鍵任務的執(zhí)行處理。
[0053] 采用本發(fā)明實施例,能構造得到網(wǎng)絡圖,網(wǎng)絡圖由各個任務間的相互關系構成并 標識有各個任務的任務先后執(zhí)行順序,計算得到用于標識各個任務時間的計算結(jié)果,按照 預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及所述任務先后執(zhí)行順序,以生 成第一關系表,根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行順序重新排序,得 到包含關鍵任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào)度所述關鍵任務的執(zhí)行處理, 通過這些軟件層面實現(xiàn)的技術,本發(fā)明實施例是一種無需增加硬件從而避免硬件開銷高及 避免提高制造成本的方案,解決了現(xiàn)有技術存在的問題。
【附圖說明】
[0054] 圖1為本發(fā)明實施例的方法流程示意圖;
[0055] 圖2為應用本發(fā)明實施例的一應用場景的ETL優(yōu)化流程圖;
[0056] 圖3為應用本發(fā)明實施例的另一應用場景的ETL優(yōu)化流程圖。
【具體實施方式】
[0057] 下面結(jié)合附圖對技術方案的實施作進一步的詳細描述。
[0058] 本發(fā)明實施例的在ETL中優(yōu)化任務處理的方法,如圖1所示,包括:
[0059] 步驟101、根據(jù)ETL需調(diào)度的各個任務間的相互關系構造網(wǎng)絡圖,且所述網(wǎng)絡圖標 識有各個任務的任務先后執(zhí)行順序。
[0060] 步驟102、計算所述各個任務的執(zhí)行時間段和/或所述執(zhí)行時間段中涉及的具體 時間點參數(shù),得到用于標識各個任務時間的計算結(jié)果。
[0061] 步驟103、按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及所述 任務先后執(zhí)行順序,以生成第一關系表。
[0062] 步驟104、根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行順序重新排序, 得到包含關鍵任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào)度所述關鍵任務的執(zhí)行處 理。
[0063] 在本發(fā)明實施例一實施方式中,所述根據(jù)ETL需調(diào)度的各個任務間的相互關系構 造網(wǎng)絡圖,包括:獲取各個節(jié)點的位置,至少兩個節(jié)點構成一個任務;根據(jù)所述各個節(jié)點的 位置對應的位置關系和任務依賴因素來建立所述ETL需調(diào)度的各個任務間的相互關系。
[0064] 在本發(fā)明實施例一實施方式中,所述計算所述各個任務的執(zhí)行時間段,包括:獲 取第一時間數(shù)據(jù),所述第一時間數(shù)據(jù)用于表征符合第一條件所達到的任務最快可能完成時 間;獲取第二時間數(shù)據(jù),所述第二時間數(shù)據(jù)用于表征符合第二條件所達到的任務最可能完 成時間;獲取第三時間數(shù)據(jù),所述第三時間數(shù)據(jù)用于表征符合第三條件所達到的任務最慢 可能完成時間;根據(jù)所述第一時間數(shù)據(jù)、所述第二時間數(shù)據(jù)和所述第三時間數(shù)據(jù)得到所述 各個任務對應的期望時間數(shù)據(jù),并將所述期望時間數(shù)據(jù)作為所述各個任務的執(zhí)行時間段。
[0065] 在本發(fā)明實施例一實施方式中,所述按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個 任務間的相互關系及所述任務先后執(zhí)行順序,以生成第一關系表,包括:所述預設規(guī)則為存 在相互關系的各個任務中,在當前任務未完成時不允許所述當前任務后續(xù)的緊后任務開始 執(zhí)行;提取存在相互關系的各個任務,得到所述當前任務和所述緊后任務;按照所述任務 先后執(zhí)行順序,建立包含所述當前任務和所述緊后任務的所述第一關系表;所述第一關系 表包含各個任務中所述當前任務的任務編號,和所述緊后任務的任務編號。
[0066] 在本發(fā)明實施例一實施方式中,根據(jù)所述計算結(jié)果對所述第一關系表中的任務先 后執(zhí)行順序重新排序,得到包含關鍵任務的第二關系表,包括:根據(jù)所述計算結(jié)果遍歷所述 第一關系表中的各個任務,對任務先后執(zhí)行順序重新排序,判斷出所述當前任務和所述緊 后任務在所述第一關系表中排序靠前時,將所述當前任務和所述緊后任務確定為所述關鍵 任務;將所述當前任務和所述緊后任務插入所述第二關系表,并從所述第一關系表中刪除 所述當前任務和所述緊后任務,同時更新所述第二關系表中的任務執(zhí)行優(yōu)先級;所述第二 關系表包含各個任務中所述當前任務的任務編號,所述緊后任務的任務編號,和任務執(zhí)行 優(yōu)先級。
[0067] 在本發(fā)明實施例一實施方式中,所述任務執(zhí)行優(yōu)先級不是固定不變的,是隨著所 述計算結(jié)果的變化重新排序后的動態(tài)調(diào)整結(jié)果。
[0068] 在本發(fā)明實施例一實施方式中,所述根據(jù)所述第二關系表優(yōu)選調(diào)度所述關鍵任務 的執(zhí)行處理,包括:在判斷出所述第一關系表為空時,結(jié)束對所述第一關系表的遍歷后,讀 取所述第二關系表;對所述第二關系表的各個任務中當前任務和緊后任務按照所述任務執(zhí) 行優(yōu)先級的順序進行任務優(yōu)化,以優(yōu)化調(diào)度所述關鍵任務的執(zhí)行處理。
[0069] 本發(fā)明實施例的在ETL中優(yōu)化任務處理的系統(tǒng),所述系統(tǒng)包括:
[0070] 構造單元,用于根據(jù)ETL需調(diào)度的各個任務間的相互關系構造網(wǎng)絡圖,且所述網(wǎng) 絡圖標識有各個任務的任務先后執(zhí)行順序;
[0071] 計算單元,用于計算所述各個任務的執(zhí)行時間段和/或所述執(zhí)行時間段中涉及的 具體時間點參數(shù),得到用于標識各個任務時間的計算結(jié)果;
[0072] 掃描單元,用于按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及 所述任務先后執(zhí)行順序,以生成第一關系表;
[0073] 表生成及調(diào)度單元,用于根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行 順序重新排序,得到包含關鍵任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào)度所述關鍵 任務的執(zhí)行處理。
[0074] 在本發(fā)明實施例一實施方式中,所述計算單元,進一步包括:
[0075] 第一獲取子單元,用于獲取第一時間數(shù)據(jù),所述第一時間數(shù)據(jù)用于表征符合第一 條件所達到的任務最快可能完成時間;
[0076] 第二獲取子單元,用于獲取第二時間數(shù)據(jù),所述第二時間數(shù)據(jù)用于表征符合第二 條件所達到的任務最可能完成時間;
[0077] 第三獲取子單元,用于獲取第三時間數(shù)據(jù),所述第三時間數(shù)據(jù)用于表征符合第三 條件所達到的任務最慢可能完成時間;
[0078] 運算子單元,用于根據(jù)所述第一時間數(shù)據(jù)、所述第二時間數(shù)據(jù)和所述第三時間數(shù) 據(jù)得到所述各個任務對應的期望時間數(shù)據(jù),并將所述期望時間數(shù)據(jù)作為所述各個任務的執(zhí) 行時間段。
[0079] 在本發(fā)明實施例一實施方式中,所述掃描單元,進一步包括:
[0080] 提取子單元,用于在所述預設規(guī)則為存在相互關系的各個任務中,在當前任務未 完成時不允許所述當前任務后續(xù)的緊后任務開始執(zhí)行的情況下,提取存在相互關系的各個 任務,得到所述當前任務和所述緊后任務;
[0081] 第一關系表建立子單元,用于按照所述任務先后執(zhí)行順序,建立包含所述當前任 務和所述緊后任務的所述第一關系表;所述第一關系表包含各個任務中所述當前任務的任 務編號,和所述緊后任務的任務編號。
[0082] 在本發(fā)明實施例一實施方式中,所述表生成及調(diào)度單元,進一步包括:
[0083] 遍歷及判斷子單元,用于根據(jù)所述計算結(jié)果遍歷所述第一關系表中的各個任務, 對任務先后執(zhí)行順序重新排序,判斷出所述當前任務和所述緊后任務在所述第一關系表中 排序靠前時,將所述當前任務和所述緊后任務確定為所述關鍵任務;
[0084] 插入及更新子單元,用于將所述當前任務和所述緊后任務插入所述第二關系表, 并從所述第一關系表中刪除所述當前任務和所述緊后任務,同時更新所述第二關系表中的 任務執(zhí)行優(yōu)先級;所述第二關系表包含各個任務中所述當前任務的任務編號,所述緊后任 務的任務編號,和任務執(zhí)行優(yōu)先級;
[0085] 在本發(fā)明實施例一實施方式中,所述表生成及調(diào)度單元,進一步還包括:
[0086] 讀取子單元,在通過所述遍歷及判斷子單元判斷出所述第一關系表為空時,結(jié)束 對所述第一關系表的遍歷后,讀取所述第二關系表;
[0087] 優(yōu)化處理子單元,用于對所述第二關系表的各個任務中當前任務和緊后任務按照 所述任務執(zhí)行優(yōu)先級的順序進行任務優(yōu)化,以優(yōu)先調(diào)度所述關鍵任務的執(zhí)行處理。
[0088] 以一個現(xiàn)實應用場景為例對本發(fā)明實施例闡述如下:
[0089] 現(xiàn)有ETL方案和產(chǎn)品中,大多使用分布式的架構和體系,通過并行增加服務器或 者并行執(zhí)行任務來提高ETL的處理速度,很少通過考慮ETL任務自身的優(yōu)化來縮短運行時 間,這是會增加硬件成本和硬件開銷的。對于這個問題,本應用場景采用本發(fā)明實施例,是 設計一種軟件算法,即:利用ETL中各個節(jié)點的位置關系和任務依賴,繪制節(jié)點和任務相互 關系的網(wǎng)絡圖,然后以執(zhí)行時間為主要計算單元,找出ETL中的關鍵任務和關鍵的執(zhí)行過 程,通過優(yōu)化關鍵任務和關鍵的執(zhí)行過程來達到降低整個ETL任務族的執(zhí)行時間的目的。 也就是說,是將軟件算法引入ETL的任務處理中,通過時間參數(shù)的計算,找出關鍵工作,針 對關鍵工作進行優(yōu)化,可以縮短整個任務的總時間,來達到提高ETL執(zhí)行效率的目的。另 外,由于是將軟件算法納入到一個動態(tài)處理的體系里,達到實時計算、持續(xù)優(yōu)化的目的。
[0090] 舉例來說,所述節(jié)點可以指兩個數(shù)據(jù)表(表一和表二),在表一和表二之間存在一 種關聯(lián)或交互等,即在表一和表二間建立一種任務,執(zhí)行該任務,也就是說,ETL中各個節(jié)點 間存在位置關系,至少任意兩個節(jié)點間構成一個任務,形成任務依賴,所以可以稱之為;每 個任務的最小單元是節(jié)點,節(jié)點可以是接口或者數(shù)據(jù)庫表,而在每個任務中還包括執(zhí)行存 儲過程或者SQL語句的控制流。通過ETL調(diào)度的配置,可以建立整個ETL任務之間的相互 關系。
[0091] 應用場景一:
[0092] 如圖2所示為應用本發(fā)明實施例的一應用場景的ETL優(yōu)化流程圖,包括:
[0093] 步驟201 :建立任務之間的相互關系,根據(jù)任務間的相互關系構造任務之間的網(wǎng) 絡圖。
[0094] 這里,通過配置ETL調(diào)度任務,可以得到所有任務之間的相互關系。通過有向圖標 注出各個任務之間的執(zhí)行順序和相互依賴關系。
[0095] 步驟202 :計算各個任務的執(zhí)行時間。
[0096] 這里,時間的計算可以利用經(jīng)驗采用最可能時間的方式,或者利用三點時間估計 法確定的方式來實現(xiàn)。
[0097] 針對所述利用三點時間估計法確定的方式而言,a為任務最快可能完成時間,m為 任務最可能完成時間,b為任務最慢可能完成時間,利用這三個時間來確定每個任務的期望
[0098] 這里需要指出的是,本步驟得到的時間是一個由起點和終點所構成時間段的概 念,而后續(xù)步驟203得到的時間是時間點的概念,該時間點可以是起點,可以是終端,也可 以是位于時間段內(nèi)的一個具體位置點。
[0099] 步驟203 :計算涉及任務的各個時間參數(shù)。
[0100] 這里,一個任務(i,j)的最早可能開始時間用tES(i,j)表示,需要指出是,這個時 間并不是任務(i,j)的執(zhí)行時間,而是任務(i,j)開始運行的時間,依賴于所有跟節(jié)點i有 關的,在節(jié)點i之前的任務都完成以后才能開始的時間,所以是取的所有i之前的任務(k, i)的最早開始時間和任務(k,i)的執(zhí)行時間之和的最大值。最早完成時間用tEF(i,j)表 示,所述t ES(i,j)和所述tEF(i,j)通過以下公式⑴計算。每個任務開始前,其前面依賴的 任務必須全部執(zhí)行完成。
[0101] 公式⑴中的i,j,k代表節(jié)點標號,節(jié)點標號從1到n,如果節(jié)點i,j之間存在 任務就標注為tu,如果節(jié)點k,i之間存在任務就標注為t ki,則所述tES (k, i)表示節(jié)點k,i 之間存在任務(k,i)對應的最早可能開始時間,所述tES(i,j)表示節(jié)點i,j之間存在任務 (i,j)對應的最早可能開始時間;t ES(0, j)表示一個起始,就是一個初始化的意思,0不是實 際存在的節(jié)點,是一個虛節(jié)點,表示所有任務在開始的時候都由一個起始節(jié)點觸發(fā),就是一 個開始符,這個節(jié)點和后續(xù)實際節(jié)點組成的虛任務的最早開始時間都是〇 ;t(i,j)就是任 務(i,j)的執(zhí)行完成時間

[0103] 這里,一個任務的最晚開始時間用Ui,j)表示,最晚必須完成時間用kF(i,j)表 示,所述t LS(i, j)和所述tLF(i, j)通過以下公式(2)計算。
[0104] 公式⑵中的i,j,k,η代表節(jié)點標號,節(jié)點標號從1到n,如果節(jié)點i,η之間 存在任務就標注為t in,如果節(jié)點j,k之間存在任務就標注為tjk,則所述Uj,k)表示節(jié) 點j,k之間存在任務(j,k)對應的最晚可能開始時間,所述Ui,j)表示節(jié)點i,j之間 存在任務(i,j)對應的最晚可能開始時間;t(i,j)就是任務(i,j)的執(zhí)行完成時間,就是
_算的時間;??Ρ·(;?,η)是任務(i,n)的最晚結(jié)束時間,t EF(i,n)就是任務(i,n) 的最早結(jié)束時間,這個節(jié)點η已經(jīng)是最后一個節(jié)點了,它和前面的節(jié)點i組成的任務(i,η) 其實就是最后要執(zhí)行的任務了,這個任務執(zhí)行的時候前面所有的任務都已經(jīng)執(zhí)行完了,這 樣,這個任務(i,η)最早結(jié)束和最晚結(jié)束沒有什么區(qū)別,則tji,n) = tEF(i,η)表示的意 思就是二者時間也相等的意思;Ui,j)表示任務(i,j)對應的最晚可能開始時間,它表示 的任務(i,j)最晚必須開始的時間,是依賴于所有跟節(jié)點j后續(xù)相關的節(jié)點k,取的是任務 (j,k)的最晚開始時間減去任務(i,j)的執(zhí)行時間的最小值。
[0106] 任務的總時差用R(i,j)表示,通過以下公式(3)計算,表示延遲任務開始的最大 時間幅度,R(i,j) = tLF(i,j)-tEF(i,j) (3)
[0107] 任務的單時差用r(i,j)表示,通過以下公式(4)計算,表示不影響后面的任務的 最早開始時間的條件下,這個任務可以延遲開始的最大時間幅度;
[0108] r(i,j) = tES(j, k)-tEF(i, j) (4)
[0109] 步驟204 :利用以下如程序代碼段PI所揭示的軟件算法原理構成的預設規(guī)則動態(tài) 掃描任務相關關系,找到關鍵任務和關鍵執(zhí)行過程。
[0110] 這里,針對所述軟件算法原理而言,該原理包括:
[0111] 首先,建立為每個節(jié)點i標號,從1到n,如果節(jié)點i,j之間存在任務就標注為b, 然后建立只有任務和其緊后任務的關系表ta Sk_relati〇n,該表包含兩個字段,一個是某任 務編號,另一個是該任務的緊后任務編號,這個表里插入所有的ETL先后關系。
[0112] 然后,建立一個關鍵任務關系表kpi_task_relati〇n,該表是含有三個字段,任務 編號、緊后任務編號和優(yōu)先級,這個表初始為空。
[0113] 接著,通過遍歷task_relation,根據(jù)網(wǎng)絡計劃的方法,找到關鍵任務,插入到 kpi_task_relation,并且設置優(yōu)先級為1。
[0114] 最后,從task_relation表中刪除已經(jīng)插入kpi_task_relation的任務關系,重新 遍歷task_relation,同樣將結(jié)果插入kpi_task_relation,并且設置優(yōu)先級為2.依次類 推,直到task_relation只有一條記錄,將這一條記錄插入kpi_task_relation,設置最低 優(yōu)先級。
[0115] 步驟205 :進行持續(xù)的任務優(yōu)化。
[0116] 這里,根據(jù)kpi_task_relation的優(yōu)先級,依次對任務進行優(yōu)化,優(yōu)化完成后,重 新開始遍歷task_relation,生成新的kpi_task_relation表再次對任務進行優(yōu)化,直到 kpi_task_relation里優(yōu)先級高的任務無優(yōu)化的可能為止,就達到了使ETL執(zhí)行效率整體 優(yōu)化提尚的目的。
[0117] 應用場景二:
[0118] 如圖3所示為應用本發(fā)明實施例的一應用場景的ETL優(yōu)化流程圖,包括:
[0119] 步驟301、構造任務之間的網(wǎng)絡圖,計算各任務執(zhí)行時間。
[0120] 步驟302、建立只包含任務和緊后任務的task_relation表。
[0121] 步驟 303、遍歷 task_relation 表。
[0122] 步驟304、判斷該任務和緊后任務是否為關鍵任務,如果是,則執(zhí)行步驟305;否 貝 1J,不予處理。
[0123] 步驟306、將任務和緊后任務插入kip_task_relation表,并更新優(yōu)先級。
[0124] 步驟307、判斷task_relation是否為空,如果是,執(zhí)行步驟308,否則,轉(zhuǎn)入執(zhí)行步 驟 303。
[0125] 步驟308、根據(jù)kip_task_relation表中任務和緊后任務的優(yōu)先級順序進行任務 優(yōu)化。
[0126] 這里需要指出的是,執(zhí)行完本步驟后,轉(zhuǎn)入步驟302,以持續(xù)優(yōu)化,重新建立task_ relation表來達到持續(xù)優(yōu)化的目的。
[0127] 這里需要指出的是,應用場景一中步驟204所述涉及的軟件算法,及應用場景二 中步驟304用于查找該任務和緊后任務是否為關鍵任務的算法都是通過以下程序代碼段 P1實現(xiàn),該程序代碼段P1為整個ETL優(yōu)化過程找到關鍵任務的程序代碼:


[0131] 綜上所述,本發(fā)明實施例主要包括:通過任務之間的關系,采用程序,找到ETL中 的關鍵任務和關鍵執(zhí)行過程,可以有針對性的對關鍵任務進行優(yōu)化,提高ETL執(zhí)行效率。并 且該程序還可以實現(xiàn)實時計算、持續(xù)優(yōu)化任務的目的。
[0132] 采用本發(fā)明實施例的有益效果為:本發(fā)明實施例中查詢關鍵任務,進一步還包括 查詢關鍵任務的關鍵執(zhí)行過程,進而根據(jù)查詢結(jié)果進行優(yōu)化的技術是通過軟件算法實現(xiàn), 該算法是"找出關鍵工作,針對關鍵工作進行優(yōu)化",從而,可以縮短整個任務的執(zhí)行總時 間,從而達到提高ETL執(zhí)行效率的目的;而且,本發(fā)明實施例無需要像現(xiàn)有技術一般,必須 額外增加硬件來提升ETL執(zhí)行效率,可見,采用本發(fā)明實施例也不會增加制造成本,僅僅針 對ETL任務本身進行優(yōu)化,并沒有硬件的開銷;另外,本發(fā)明實施例的技術不只是一次性優(yōu) 化,而是利用軟件算法實現(xiàn)持續(xù)優(yōu)化任務的目的。
[0133] 本發(fā)明實施例所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn) 品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明 實施例的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn) 出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備 (可以是個人計算機、服務器、或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或 部分。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨 機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介 質(zhì)。這樣,本發(fā)明實施例不限制于任何特定的硬件和軟件結(jié)合。
[0134] 相應的,本發(fā)明實施例還提供一種計算機存儲介質(zhì),其中存儲有計算機程序,該計 算機程序用于執(zhí)行本發(fā)明實施例的在ETL中優(yōu)化任務處理的方法。
[0135] 以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
【主權項】
1. 一種在ETL中優(yōu)化任務處理的方法,其特征在于,所述方法包括: 根據(jù)ETL需調(diào)度的各個任務間的相互關系構造網(wǎng)絡圖,且所述網(wǎng)絡圖標識有各個任務 的任務先后執(zhí)行順序; 計算所述各個任務的執(zhí)行時間段和/或所述執(zhí)行時間段中涉及的具體時間點參數(shù),得 到用于標識各個任務時間的計算結(jié)果; 按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及所述任務先后執(zhí)行 順序,以生成第一關系表; 根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行順序重新排序,得到包含關鍵 任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào)度所述關鍵任務的執(zhí)行處理。2. 根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)ETL需調(diào)度的各個任務間的相互 關系構造網(wǎng)絡圖,包括: 獲取各個節(jié)點的位置,至少兩個節(jié)點構成一個任務; 根據(jù)所述各個節(jié)點的位置對應的位置關系和任務依賴因素來建立所述ETL需調(diào)度的 各個任務間的相互關系。3. 根據(jù)權利要求1所述的方法,其特征在于,所述計算所述各個任務的執(zhí)行時間段,包 括: 獲取第一時間數(shù)據(jù),所述第一時間數(shù)據(jù)用于表征符合第一條件所達到的任務最快可能 完成時間; 獲取第二時間數(shù)據(jù),所述第二時間數(shù)據(jù)用于表征符合第二條件所達到的任務最可能完 成時間; 獲取第三時間數(shù)據(jù),所述第三時間數(shù)據(jù)用于表征符合第三條件所達到的任務最慢可能 完成時間; 根據(jù)所述第一時間數(shù)據(jù)、所述第二時間數(shù)據(jù)和所述第三時間數(shù)據(jù)得到所述各個任務對 應的期望時間數(shù)據(jù),并將所述期望時間數(shù)據(jù)作為所述各個任務的執(zhí)行時間段。4. 根據(jù)權利要求1所述的方法,其特征在于,所述按照預設規(guī)則掃描所述網(wǎng)絡圖中的 所述各個任務間的相互關系及所述任務先后執(zhí)行順序,以生成第一關系表,包括: 所述預設規(guī)則為存在相互關系的各個任務中,在當前任務未完成時不允許所述當前任 務后續(xù)的緊后任務開始執(zhí)行; 提取存在相互關系的各個任務,得到所述當前任務和所述緊后任務; 按照所述任務先后執(zhí)行順序,建立包含所述當前任務和所述緊后任務的所述第一關系 表; 所述第一關系表包含各個任務中所述當前任務的任務編號,和所述緊后任務的任務編 號。5. 根據(jù)權利要求4所述的方法,其特征在于,根據(jù)所述計算結(jié)果對所述第一關系表中 的任務先后執(zhí)彳丁順序重新排序,得到包含關鍵任務的第^關系表,包括: 根據(jù)所述計算結(jié)果遍歷所述第一關系表中的各個任務,對任務先后執(zhí)行順序重新排 序,判斷出所述當前任務和所述緊后任務在所述第一關系表中排序靠前時,將所述當前任 務和所述緊后任務確定為所述關鍵任務; 將所述當前任務和所述緊后任務插入所述第二關系表,并從所述第一關系表中刪除所 述當前任務和所述緊后任務,同時更新所述第二關系表中的任務執(zhí)行優(yōu)先級; 所述第二關系表包含各個任務中所述當前任務的任務編號,所述緊后任務的任務編 號,和任務執(zhí)行優(yōu)先級。6. 根據(jù)權利要求5所述的方法,其特征在于,所述任務執(zhí)行優(yōu)先級不是固定不變的,是 隨著所述計算結(jié)果的變化重新排序后的動態(tài)調(diào)整結(jié)果。7. 根據(jù)權利要求6所述的方法,其特征在于,所述根據(jù)所述第二關系表優(yōu)選調(diào)度所述 關鍵任務的執(zhí)行處理,包括: 在判斷出所述第一關系表為空時,結(jié)束對所述第一關系表的遍歷后,讀取所述第二關 系表; 對所述第二關系表的各個任務中當前任務和緊后任務按照所述任務執(zhí)行優(yōu)先級的順 序進行任務優(yōu)化,以優(yōu)化調(diào)度所述關鍵任務的執(zhí)行處理。8. -種在ETL中優(yōu)化任務處理的系統(tǒng),其特征在于,所述系統(tǒng)包括: 構造單元,用于根據(jù)ETL需調(diào)度的各個任務間的相互關系構造網(wǎng)絡圖,且所述網(wǎng)絡圖 標識有各個任務的任務先后執(zhí)行順序; 計算單元,用于計算所述各個任務的執(zhí)行時間段和/或所述執(zhí)行時間段中涉及的具體 時間點參數(shù),得到用于標識各個任務時間的計算結(jié)果; 掃描單元,用于按照預設規(guī)則掃描所述網(wǎng)絡圖中的所述各個任務間的相互關系及所述 任務先后執(zhí)行順序,以生成第一關系表; 表生成及調(diào)度單元,用于根據(jù)所述計算結(jié)果對所述第一關系表中的任務先后執(zhí)行順序 重新排序,得到包含關鍵任務的第二關系表,根據(jù)所述第二關系表優(yōu)化調(diào)度所述關鍵任務 的執(zhí)行處理。9. 根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述計算單元,進一步包括: 第一獲取子單元,用于獲取第一時間數(shù)據(jù),所述第一時間數(shù)據(jù)用于表征符合第一條件 所達到的任務最快可能完成時間; 第二獲取子單元,用于獲取第二時間數(shù)據(jù),所述第二時間數(shù)據(jù)用于表征符合第二條件 所達到的任務最可能完成時間; 第三獲取子單元,用于獲取第三時間數(shù)據(jù),所述第三時間數(shù)據(jù)用于表征符合第三條件 所達到的任務最慢可能完成時間; 運算子單元,用于根據(jù)所述第一時間數(shù)據(jù)、所述第二時間數(shù)據(jù)和所述第三時間數(shù)據(jù)得 到所述各個任務對應的期望時間數(shù)據(jù),并將所述期望時間數(shù)據(jù)作為所述各個任務的執(zhí)行時 間段。10. 根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述掃描單元,進一步包括: 提取子單元,用于在所述預設規(guī)則為存在相互關系的各個任務中,在當前任務未完成 時不允許所述當前任務后續(xù)的緊后任務開始執(zhí)行的情況下,提取存在相互關系的各個任 務,得到所述當前任務和所述緊后任務; 第一關系表建立子單元,用于按照所述任務先后執(zhí)行順序,建立包含所述當前任務和 所述緊后任務的所述第一關系表;所述第一關系表包含各個任務中所述當前任務的任務編 號,和所述緊后任務的任務編號。11. 根據(jù)權利要求10所述的系統(tǒng),其特征在于,所述表生成及調(diào)度單元,進一步包括: 遍歷及判斷子單元,用于根據(jù)所述計算結(jié)果遍歷所述第一關系表中的各個任務,對任 務先后執(zhí)行順序重新排序,判斷出所述當前任務和所述緊后任務在所述第一關系表中排序 靠前時,將所述當前任務和所述緊后任務確定為所述關鍵任務; 插入及更新子單元,用于將所述當前任務和所述緊后任務插入所述第二關系表,并從 所述第一關系表中刪除所述當前任務和所述緊后任務,同時更新所述第二關系表中的任務 執(zhí)行優(yōu)先級;所述第二關系表包含各個任務中所述當前任務的任務編號,所述緊后任務的 任務編號,和任務執(zhí)行優(yōu)先級。12.根據(jù)權利要求11所述的系統(tǒng),其特征在于,所述表生成及調(diào)度單元,進一步還包 括: 讀取子單元,在通過所述遍歷及判斷子單元判斷出所述第一關系表為空時,結(jié)束對所 述第一關系表的遍歷后,讀取所述第二關系表; 優(yōu)化處理子單元,用于對所述第二關系表的各個任務中當前任務和緊后任務按照所述 任務執(zhí)行優(yōu)先級的順序進行任務優(yōu)化,以優(yōu)先調(diào)度所述關鍵任務的執(zhí)行處理。
【文檔編號】G06F17/30GK105868190SQ201510025286
【公開日】2016年8月17日
【申請日】2015年1月19日
【發(fā)明人】劉毅, 董云龍, 李湛, 田江濤
【申請人】中國移動通信集團河北有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1