国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法和裝置與流程

      文檔序號(hào):12863591閱讀:218來(lái)源:國(guó)知局
      一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法和裝置與流程
      本發(fā)明涉及計(jì)算機(jī)
      技術(shù)領(lǐng)域
      ,尤其涉及一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法和裝置、電子設(shè)備和計(jì)算機(jī)可讀介質(zhì)。
      背景技術(shù)
      :目前,企業(yè)在建立公司內(nèi)部的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)后,不同部門的用戶獲取需要的數(shù)據(jù)時(shí),會(huì)在數(shù)據(jù)倉(cāng)庫(kù)上開發(fā)相應(yīng)的數(shù)據(jù)任務(wù),每一個(gè)任務(wù)包括若干業(yè)務(wù)數(shù)據(jù)處理邏輯,通過(guò)在數(shù)據(jù)倉(cāng)庫(kù)上的執(zhí)行,最終得到需要的數(shù)據(jù)結(jié)果。由于使用數(shù)據(jù)倉(cāng)庫(kù)獲取數(shù)據(jù)的人數(shù)眾多,而系統(tǒng)資源有限,為確保每個(gè)用戶的正常使用,因此給予分配用戶一定的任務(wù)并發(fā)數(shù)控制。例如分配給一個(gè)用戶可以并發(fā)執(zhí)行3個(gè)任務(wù),即分配給該用戶3個(gè)獨(dú)享的任務(wù)進(jìn)程資源,這樣該用戶執(zhí)行自己任務(wù)時(shí)不被其他用戶因搶占資源而無(wú)法執(zhí)行。當(dāng)用戶任務(wù)全部執(zhí)行完成后,釋放資源,可以供其他用戶使用。這種處理方式,既能保證所有用戶的任務(wù)可執(zhí)行,也保證資源的靈活配置。但是在給一個(gè)用戶分配任務(wù)進(jìn)程資源后,當(dāng)用戶輸入需要執(zhí)行的一些任務(wù)后,這些任務(wù)的執(zhí)行順序是隨機(jī)的,這里隨機(jī)執(zhí)行產(chǎn)生的原因有可能是用戶手動(dòng)操作執(zhí)行任務(wù)的順序,也可能用戶設(shè)置任務(wù)自動(dòng)執(zhí)行,但服務(wù)器端啟動(dòng)任務(wù)是隨機(jī)的?,F(xiàn)有技術(shù)方法的缺點(diǎn)是用戶執(zhí)行的n個(gè)任務(wù)輸入后,是隨機(jī)的分配給任務(wù)資源進(jìn)程中處理,并沒有考慮每個(gè)任務(wù)的不同的執(zhí)行情況,例如對(duì)資源的占用情況等,沒有考慮對(duì)用戶的所有任務(wù)進(jìn)行合理的計(jì)劃,以及用戶任務(wù)與對(duì)其分配的資源進(jìn)程隊(duì)列之間的匹配,所以會(huì)造成用戶占用系統(tǒng)資源較長(zhǎng)、資源使用率較低,當(dāng)數(shù)據(jù)倉(cāng)庫(kù)上使用人數(shù)眾多時(shí),導(dǎo)致整體資源浪費(fèi)較多。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明實(shí)施例提供一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法和裝置,能夠通過(guò)計(jì)算用戶的任務(wù)資源占用時(shí)長(zhǎng)和分配隊(duì)列總資源占用的情況,將任務(wù)分配到任務(wù)隊(duì)列中。為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法。本發(fā)明實(shí)施例公開的自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法,包括:采集用戶的任務(wù)在數(shù)據(jù)倉(cāng)庫(kù)中運(yùn)行的歷史數(shù)據(jù);對(duì)所述歷史數(shù)據(jù)進(jìn)行處理,統(tǒng)計(jì)出任務(wù)的資源占用時(shí)長(zhǎng);根據(jù)所述資源占用時(shí)長(zhǎng)對(duì)所述任務(wù)進(jìn)行排序;根據(jù)排序的結(jié)果以及用戶的資源進(jìn)程數(shù),將任務(wù)分配到任務(wù)隊(duì)列中??蛇x地,根據(jù)排序的結(jié)果以及用戶的資源進(jìn)程數(shù),將任務(wù)分配到任務(wù)隊(duì)列中包括:按照任務(wù)的資源占用時(shí)長(zhǎng)從大到小的順序,依次將任務(wù)分配到總時(shí)長(zhǎng)最小的任務(wù)隊(duì)列中,并且將任務(wù)的資源占用時(shí)長(zhǎng)疊加到接收所述任務(wù)的任務(wù)隊(duì)列的總時(shí)長(zhǎng)中??蛇x地,還包括:判斷用戶的任務(wù)個(gè)數(shù)是否小于或等于用戶的資源進(jìn)程數(shù);若是,則將任務(wù)一對(duì)一且隨機(jī)地分配到任務(wù)隊(duì)列中;否則,按照任務(wù)的資源占用時(shí)長(zhǎng)從大到小的順序,依次將任務(wù)分配到總時(shí)長(zhǎng)最小的任務(wù)隊(duì)列中,并且將任務(wù)的資源占用時(shí)長(zhǎng)疊加到接收所述任務(wù)的任務(wù)隊(duì)列的總時(shí)長(zhǎng)中??蛇x地,根據(jù)所述資源占用時(shí)長(zhǎng)將用戶的任務(wù)按照從大到小或從小到大的順序進(jìn)行排序;并且,獲取用戶的資源進(jìn)程號(hào)。可選地,還包括:根據(jù)任務(wù)的類型設(shè)置采集歷史數(shù)據(jù)的時(shí)間段,并將采集到的所述歷史數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)表中,所述歷史數(shù)據(jù)包括:運(yùn)行的日期、用戶名、任務(wù)編號(hào)、任務(wù)名稱和任務(wù)開始時(shí)間、任務(wù)結(jié)束時(shí)間??蛇x地,所述對(duì)所述歷史數(shù)據(jù)進(jìn)行處理,統(tǒng)計(jì)出任務(wù)的資源占用時(shí)長(zhǎng)包括:根據(jù)采集的歷史數(shù)據(jù),計(jì)算出每一個(gè)任務(wù)的平均資源占用時(shí)長(zhǎng)。為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的裝置。本發(fā)明實(shí)施例公開的自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的裝置,包括:采集模塊,用于采集用戶的任務(wù)在數(shù)據(jù)倉(cāng)庫(kù)中運(yùn)行的歷史數(shù)據(jù);處理模塊,用于對(duì)所述歷史數(shù)據(jù)進(jìn)行處理,統(tǒng)計(jì)出任務(wù)的資源占用時(shí)長(zhǎng);排序模塊,用于根據(jù)所述資源占用時(shí)長(zhǎng)對(duì)所述任務(wù)進(jìn)行排序;分配模塊,用于根據(jù)排序的結(jié)果以及用戶的資源進(jìn)程數(shù),將任務(wù)分配到任務(wù)隊(duì)列中??蛇x地,所述分配模塊用于按照任務(wù)的資源占用時(shí)長(zhǎng)從大到小的順序,依次將任務(wù)分配到總時(shí)長(zhǎng)最小的任務(wù)隊(duì)列中,并且將任務(wù)的資源占用時(shí)長(zhǎng)疊加到接收所述任務(wù)的任務(wù)隊(duì)列的總時(shí)長(zhǎng)中??蛇x地,還包括判斷模塊,用于判斷用戶的任務(wù)個(gè)數(shù)是否小于或等于用戶的資源進(jìn)程數(shù);若是,則所述分配模塊將任務(wù)一對(duì)一且隨機(jī)地分配到任務(wù)隊(duì)列中;否則,分配模塊按照任務(wù)的資源占用時(shí)長(zhǎng)從大到小的順序,依次將任務(wù)分配到總時(shí)長(zhǎng)最小的任務(wù)隊(duì)列中,并且將任務(wù)的資源占用時(shí)長(zhǎng)疊加到接收所述任務(wù)的任務(wù)隊(duì)列的總時(shí)長(zhǎng)中??蛇x地,所述排序模塊根據(jù)所述資源占用時(shí)長(zhǎng)將用戶的任務(wù)按照從大到小或從小到大的順序進(jìn)行排序;以及,獲取用戶的資源進(jìn)程號(hào)??蛇x地,還包括設(shè)置模塊,用于根據(jù)任務(wù)的類型設(shè)置采集歷史數(shù)據(jù)的時(shí)間段,并將采集到的所述歷史數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)表中,所述歷史數(shù)據(jù)包括:運(yùn)行的日期、用戶名、任務(wù)編號(hào)、任務(wù)名稱和任務(wù)開始時(shí)間、任務(wù)結(jié)束時(shí)間??蛇x地,所述處理模塊根據(jù)采集的歷史數(shù)據(jù),計(jì)算出每一個(gè)任務(wù)的平均資源占用時(shí)長(zhǎng)。為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的再一方面,提供了一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的電子設(shè)備。本發(fā)明實(shí)施例公開的自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的電子設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)上述自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法中任一所述的方法。為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的再一方面,提供了一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法中任一所述的方法。上述發(fā)明中的一個(gè)實(shí)施例具有如下優(yōu)點(diǎn)或有益效果:因?yàn)椴捎昧税凑杖蝿?wù)的資源占用時(shí)長(zhǎng)的順序,將任務(wù)分配到任務(wù)隊(duì)列中的技術(shù)手段,所以克服了現(xiàn)有技術(shù)中隨機(jī)分配任務(wù)或按照時(shí)間順序分配任務(wù)中執(zhí)行效率低、系統(tǒng)資源浪費(fèi)的技術(shù)問(wèn)題,同時(shí)達(dá)到不依賴人工方法,采用自動(dòng)化配置的方法對(duì)用戶輸入任務(wù)進(jìn)行隊(duì)列分配,并對(duì)分配隊(duì)列中的任務(wù)配置合理的執(zhí)行順序,避免隨機(jī)執(zhí)行任務(wù)造成的資源使用較低的技術(shù)效果。上述的非慣用的可選方式所具有的進(jìn)一步效果將在下文中結(jié)合具體實(shí)施方式加以說(shuō)明。附圖說(shuō)明附圖用于更好地理解本發(fā)明,不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。其中:圖1是現(xiàn)有技術(shù)中數(shù)據(jù)倉(cāng)庫(kù)上的數(shù)據(jù)任務(wù)分配執(zhí)行的流程示意圖;圖2是根據(jù)本發(fā)明實(shí)施例一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法主要步驟的示意圖;圖3是根據(jù)本發(fā)明實(shí)施例一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法流程圖;圖4是根據(jù)本發(fā)明實(shí)施例任務(wù)分配過(guò)程的示意圖;圖5是根據(jù)本發(fā)明實(shí)施例的一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的裝置主要模塊的示意圖;圖6是適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。具體實(shí)施方式以下結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例做出說(shuō)明,其中包括本發(fā)明實(shí)施例的各種細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,可以對(duì)這里描述的實(shí)施例做出各種改變和修改,而不會(huì)背離本發(fā)明的范圍和精神。同樣,為了清楚和簡(jiǎn)明,以下的描述中省略了對(duì)公知功能和結(jié)構(gòu)的描述。圖1是現(xiàn)有技術(shù)中數(shù)據(jù)倉(cāng)庫(kù)上的數(shù)據(jù)任務(wù)分配執(zhí)行的流程示意圖。如圖1所示,現(xiàn)有技術(shù)中數(shù)據(jù)倉(cāng)庫(kù)上的數(shù)據(jù)任務(wù)分配執(zhí)行的過(guò)程包括三部分,第一部分為任務(wù)輸入,第二部分為任務(wù)分發(fā),第三部分為任務(wù)執(zhí)行。第一部分是用戶的數(shù)據(jù)任務(wù),每一個(gè)任務(wù)都是獲取數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù),經(jīng)過(guò)業(yè)務(wù)處理邏輯的加工,最終獲取需要的數(shù)據(jù)結(jié)果。將數(shù)據(jù)任務(wù)開發(fā)好后,作為輸入,等待下一步分配到合適的資源進(jìn)程中執(zhí)行。第二部分是任務(wù)分發(fā)程序,主要是負(fù)責(zé)將上一步用戶輸入的任務(wù)進(jìn)行分配,即安排任務(wù)進(jìn)入到對(duì)應(yīng)的進(jìn)程資源隊(duì)列中。第三部分是系統(tǒng)執(zhí)行已分配到的資源進(jìn)程隊(duì)列中的任務(wù),并輸出執(zhí)行后的數(shù)據(jù)結(jié)果。目前現(xiàn)有的技術(shù)方案是用戶的任務(wù)作為輸入,無(wú)論是通過(guò)人工方式輸入還是自動(dòng)方式,都可以看成任務(wù)分發(fā)程序?qū)⒂脩糨斎氲娜蝿?wù)列隊(duì)隨機(jī)的分發(fā)給用戶已分配的資源進(jìn)程隊(duì)列中。如圖1所示,首先,圖1中“任務(wù)隊(duì)列”表示用戶a的待執(zhí)行的n個(gè)任務(wù)。需要說(shuō)明的是這n個(gè)任務(wù)之間并不存在相互依賴關(guān)系,即彼此是獨(dú)立的。其次,這n個(gè)任務(wù)作為輸入,將被數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的“任務(wù)分發(fā)程序”進(jìn)行分配。然后,“任務(wù)資源隊(duì)列”就是存放上一步中“任務(wù)分發(fā)程序”將用戶a的n個(gè)任務(wù)分配到相應(yīng)的任務(wù)資源進(jìn)程中等待執(zhí)行的任務(wù)。對(duì)于不同用戶來(lái)說(shuō),任務(wù)資源進(jìn)程的數(shù)量是由數(shù)據(jù)倉(cāng)庫(kù)管理人員事先分配給用戶的,即對(duì)用戶a可以并發(fā)執(zhí)行數(shù)據(jù)任務(wù)的數(shù)量為k,通常k<=5。最后,“任務(wù)執(zhí)行”指系統(tǒng)執(zhí)行任務(wù)資源進(jìn)程中的任務(wù),輸出相應(yīng)的數(shù)據(jù)結(jié)果。以上示例中,在“任務(wù)資源進(jìn)程1”中待執(zhí)行的任務(wù)是:任務(wù)1、任務(wù)3、任務(wù)4;在“任務(wù)資源進(jìn)程2”中待執(zhí)行的任務(wù)是:任務(wù)2、任務(wù)n-1;在“任務(wù)資源進(jìn)程k”中待執(zhí)行的任務(wù)是:任務(wù)n;現(xiàn)有情況下,分配給“任務(wù)資源進(jìn)程”中待執(zhí)行的任務(wù)具體是哪個(gè)、任務(wù)數(shù)量、任務(wù)順序都是隨機(jī)的。圖2是根據(jù)本發(fā)明實(shí)施例一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法主要步驟的示意圖。如圖2所示,本發(fā)明實(shí)施例一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法主要包括:s21:采集用戶的任務(wù)在數(shù)據(jù)倉(cāng)庫(kù)中運(yùn)行的歷史數(shù)據(jù)。根據(jù)任務(wù)的類型設(shè)置采集歷史數(shù)據(jù)的時(shí)間段,并將采集到的歷史數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)表中以便于后續(xù)數(shù)據(jù)的處理。其中,歷史數(shù)據(jù)包括:運(yùn)行的日期、用戶名、任務(wù)編號(hào)、任務(wù)名稱和任務(wù)開始時(shí)間、任務(wù)結(jié)束時(shí)間。對(duì)于一個(gè)新的任務(wù),一般在上線前都會(huì)經(jīng)過(guò)測(cè)試運(yùn)行,測(cè)試運(yùn)行時(shí)間30天,那么可以采集測(cè)試運(yùn)行每天的日志數(shù)據(jù),對(duì)于測(cè)試任務(wù)上線前在測(cè)試環(huán)境運(yùn)行不占用正式環(huán)境資源。s22:對(duì)歷史數(shù)據(jù)進(jìn)行處理,統(tǒng)計(jì)出任務(wù)的資源占用時(shí)長(zhǎng)。根據(jù)采集的歷史數(shù)據(jù),計(jì)算出每一個(gè)任務(wù)的平均資源占用時(shí)長(zhǎng)。根據(jù)采集的歷史數(shù)據(jù)中任務(wù)開始時(shí)間和任務(wù)結(jié)束時(shí)間,計(jì)算出每個(gè)任務(wù)的每條日志中的占用時(shí)間,并根據(jù)以下公式求出該任務(wù)的平均值:其中,i表示用戶a的第i個(gè)任務(wù);m表示用戶的任務(wù)個(gè)數(shù);j表示用戶第j天的執(zhí)行情況數(shù)據(jù);n表示采集的歷史數(shù)據(jù)為連續(xù)n天的任務(wù)執(zhí)行的數(shù)據(jù)。s23:根據(jù)資源占用時(shí)長(zhǎng)將任務(wù)進(jìn)行排序,可按照從大到小進(jìn)行排序,也可按照從小到大進(jìn)行排序。通過(guò)該排序過(guò)程,在接下來(lái)的步驟中可直接按照該排序結(jié)果對(duì)任務(wù)進(jìn)行分配,使得分配過(guò)程簡(jiǎn)潔有序。s24:根據(jù)排序的結(jié)果以及用戶的資源進(jìn)程數(shù),將任務(wù)分配到任務(wù)隊(duì)列中。其具體包括:按照任務(wù)的資源占用時(shí)長(zhǎng)從大到小的順序,依次將任務(wù)分配到總時(shí)長(zhǎng)最小的任務(wù)隊(duì)列中,并且將任務(wù)的資源占用時(shí)長(zhǎng)疊加到接收任務(wù)的任務(wù)隊(duì)列的總時(shí)長(zhǎng)中。在分配之前,可判斷用戶的任務(wù)個(gè)數(shù)是否小于或等于用戶的資源進(jìn)程數(shù);若是,則將任務(wù)一對(duì)一且隨機(jī)地分配到任務(wù)隊(duì)列中;否則,按照任務(wù)的資源占用時(shí)長(zhǎng)從大到小的順序,依次將任務(wù)分配到總時(shí)長(zhǎng)最小的任務(wù)隊(duì)列中,并且將任務(wù)的資源占用時(shí)長(zhǎng)疊加到接收任務(wù)的任務(wù)隊(duì)列的總時(shí)長(zhǎng)中。本發(fā)明實(shí)施通過(guò)上述方案,可以使得在數(shù)據(jù)倉(cāng)庫(kù)中任務(wù)分配中,不依賴人工方法,采用自動(dòng)化配置的方法對(duì)用戶輸入任務(wù)進(jìn)行隊(duì)列分配,并對(duì)分配隊(duì)列中的任務(wù)配置合理的執(zhí)行順序,避免隨機(jī)執(zhí)行任務(wù)造成的資源使用較低的問(wèn)題。同時(shí),通過(guò)計(jì)算用戶的任務(wù)資源占用和分配隊(duì)列總資源占用的情況進(jìn)行任務(wù)分配隊(duì)列,又可以自動(dòng)有效的將任務(wù)與任務(wù)隊(duì)列(資源進(jìn)程)進(jìn)行匹配,避免任務(wù)隊(duì)列與資源進(jìn)程隊(duì)列不匹配導(dǎo)致的任務(wù)執(zhí)行效率低、系統(tǒng)資源浪費(fèi)的問(wèn)題。圖3是根據(jù)本發(fā)明實(shí)施例一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的方法流程圖。如圖3所示,在本發(fā)明實(shí)施例中,獲取用戶的任務(wù)在數(shù)據(jù)倉(cāng)庫(kù)中運(yùn)行的歷史數(shù)據(jù),其中歷史數(shù)據(jù)的內(nèi)容如下表:日期用戶任務(wù)編號(hào)任務(wù)名稱任務(wù)開始時(shí)間任務(wù)結(jié)束時(shí)間采集到的數(shù)據(jù)存儲(chǔ)到下表,以采集用戶a的數(shù)據(jù)的內(nèi)容為例:2016-11-01user_ajob_01任務(wù)012016/11/117:11:052016/11/117:52:5620161101user_ajob_02任務(wù)022016/11/117:09:052016/11/117:41:292016-11-01user_ajob_03任務(wù)032016/11/117:02:452016/11/117:28:252016-11-01user_ajob_04任務(wù)042016/11/119:20:032016/11/119:40:102016-11-01user_ajob_05任務(wù)052016/11/119:30:052016/11/119:49:142016-11-01user_ajob_06任務(wù)062016/11/119:02:052016/11/119:25:272016-11-01user_ajob_07任務(wù)072016/11/119:14:032016/11/119:22:272016-11-01user_ajob_08任務(wù)082016/11/119:46:572016/11/119:53:272016-11-01user_ajob_09任務(wù)092016/11/119:06:532016/11/119:12:272016-11-01user_ajob_10任務(wù)102016/11/119:35:052016/11/119:39:272016-11-02user_ajob_01任務(wù)01…………………………………………2016-11-03user_ajob_01任務(wù)01…………………………………………上表是采集的用戶a在連續(xù)n天內(nèi)任務(wù)執(zhí)行日志,如n=7,當(dāng)前前是2016年11月8日的話,則采集2016-11-01至2016-11-07的任務(wù)執(zhí)行日志數(shù)據(jù)。當(dāng)然采集歷史數(shù)據(jù)的時(shí)間段也可以不連續(xù),其中設(shè)置的采集歷史數(shù)據(jù)的時(shí)間段和任務(wù)的類型有關(guān),比如任務(wù)是按天執(zhí)行,即該任務(wù)會(huì)每天都執(zhí)行,如果任務(wù)是按周或按月執(zhí)行,則采集過(guò)濾連續(xù)幾個(gè)執(zhí)行周期的數(shù)據(jù)。對(duì)于一個(gè)任務(wù),一天采集到的只有一個(gè)執(zhí)行數(shù)據(jù)(即使重復(fù)執(zhí)行多次,也只采集最近一次),這個(gè)是由于數(shù)據(jù)倉(cāng)庫(kù)目前是按離線t+1的方式執(zhí)行,正常情況下,任務(wù)最多即按天執(zhí)行一次成功獲取昨天之前的數(shù)據(jù)結(jié)果。采集到歷史數(shù)據(jù)之后,對(duì)歷史數(shù)據(jù)的數(shù)據(jù)表進(jìn)行處理,得到用戶a的每個(gè)任務(wù)的資源占用時(shí)長(zhǎng)。計(jì)算方法為:用戶a的某一個(gè)任務(wù)的n天執(zhí)行時(shí)長(zhǎng)的平均資源占用時(shí)長(zhǎng),即:i表示用戶a的第i個(gè)任務(wù);m表示用戶a的任務(wù)個(gè)數(shù);所以,以上例數(shù)據(jù)用戶a有10個(gè)任務(wù),m=10,則i從1至10;j表示用戶第j天的執(zhí)行情況數(shù)據(jù);n表示連續(xù)n天,本文中用n=7。按照上述方法對(duì)用戶a的任務(wù)的歷史數(shù)據(jù)處理后,得到下表:用戶任務(wù)編號(hào)資源占用時(shí)長(zhǎng)(分鐘)user_ajob_0141user_ajob_0232user_ajob_0325user_ajob_0420user_ajob_0519user_ajob_0623user_ajob_078user_ajob_086user_ajob_095user_ajob_104然后根據(jù)統(tǒng)計(jì)出的資源占用時(shí)長(zhǎng),將用戶a的任務(wù)進(jìn)行排序,排序結(jié)果如下表:排序(rn)12345678910任務(wù)編號(hào)job_10job_09job_08job_07job_05job_04job_06job_03job_02job_01占用時(shí)長(zhǎng)4568192023253241通過(guò)上述一系列的處理,可對(duì)任務(wù)進(jìn)行分配。在分配之前,將任務(wù)隊(duì)列(分配隊(duì)列)進(jìn)行初始。例如,對(duì)于上述用戶a,設(shè)定數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)管理員分配給用戶a的資源進(jìn)程隊(duì)列個(gè)數(shù)為k,舉例:k=3。同時(shí),設(shè)定q個(gè)任務(wù)隊(duì)列,令q=k=3時(shí),隊(duì)列分別命名為:que_a、que_b、que_c;初始化三個(gè)隊(duì)列均為空,即默認(rèn)隊(duì)列中任務(wù)總時(shí)長(zhǎng)為0,記為:sque_a=0sque_b=0sque_c=0下一步將用戶a的任務(wù)逐個(gè)添加到任務(wù)隊(duì)列中,將任務(wù)分配到隊(duì)列的處理邏輯如下:a.當(dāng)用戶的任務(wù)個(gè)數(shù)m<=任務(wù)隊(duì)列個(gè)數(shù)q時(shí),可隨機(jī)將任務(wù)分配到任務(wù)隊(duì)列中,只要保證一個(gè)任務(wù)隊(duì)列中只分配到一個(gè)任務(wù)。由于任務(wù)是最小單元,不可拆分,所以如果任務(wù)個(gè)數(shù)小于任務(wù)隊(duì)列個(gè)數(shù),相當(dāng)于每個(gè)任務(wù)都可以立即得到資源分配和執(zhí)行,此時(shí)肯定是占用資源總時(shí)長(zhǎng)最小。也可依次獲取隊(duì)尾任務(wù)編號(hào)的任務(wù)加入到任務(wù)隊(duì)列中,即job_[m]加入到que_a,job_[m-1]加入到que_b中,……,job_01加入到que_[k]中。舉例如某用戶的任務(wù)參數(shù)為m=2,q=3,其任務(wù)為:排序(rn)12任務(wù)編號(hào)job_01job_02占用時(shí)長(zhǎng)47按照上述依次獲取隊(duì)尾任務(wù)編號(hào)的任務(wù)加入到任務(wù)隊(duì)列中的方法,job_02加入到que_a中,job_01加入到que_b中,que_c中沒有任務(wù)。則任務(wù)隊(duì)列的總時(shí)長(zhǎng)記為:sque_a=7、sque_b=4、sque_c=0b.當(dāng)隊(duì)列表“表3”中的用戶的任務(wù)個(gè)數(shù)m>任務(wù)隊(duì)列個(gè)數(shù)q時(shí),從隊(duì)列表“表3”的隊(duì)尾。開始依次獲取任務(wù)編號(hào)和任務(wù)占用資源時(shí)長(zhǎng)數(shù)據(jù),進(jìn)行如下操作:step-01)獲取當(dāng)前隊(duì)尾任務(wù)排序編號(hào)對(duì)應(yīng)的任務(wù)信息,如本發(fā)明實(shí)施例中用戶a的當(dāng)前隊(duì)尾排序號(hào)為10,對(duì)應(yīng)的任務(wù)為job_01,占用時(shí)長(zhǎng)為41。step-02)計(jì)算當(dāng)前任務(wù)加入到各隊(duì)列中后的總時(shí)長(zhǎng):其中,分別表示消息隊(duì)列a、b、c的占用時(shí)長(zhǎng)疊加當(dāng)前任務(wù)后的總時(shí)長(zhǎng)。step-03)獲取上一步計(jì)算的最小總時(shí)長(zhǎng)結(jié)果的隊(duì)列,將當(dāng)前任務(wù)加入到該隊(duì)列的隊(duì)尾,如多個(gè)計(jì)算結(jié)果相同時(shí),取第一個(gè)隊(duì)列。繼續(xù)上面的例子,計(jì)算得到隊(duì)列que_[i]=que_a,即將當(dāng)前任務(wù)job_01放到隊(duì)列que_a的隊(duì)尾中,即:que_a={job_01}。則:當(dāng)前各隊(duì)列時(shí)長(zhǎng)為:sque_a=41、sque_b=0、sque_c=0。step-04)將排序得出的數(shù)據(jù)表的隊(duì)尾的位置設(shè)置為當(dāng)前隊(duì)列位置減1,即當(dāng)前隊(duì)尾對(duì)應(yīng)的任務(wù)排序號(hào)為m-1,在本發(fā)明實(shí)施例中,當(dāng)前隊(duì)尾位置編號(hào)變?yōu)椋?0-1=9。step-05)重新執(zhí)行step_01步驟至step_05步驟,依次執(zhí)行,直至排序的表中隊(duì)尾的位置排序號(hào)為0,即將所有用戶的任務(wù)分配完成。執(zhí)行上述步驟之后,本發(fā)明實(shí)施例的最終結(jié)果如下:que_a={job_05->job_01}que_b={job_10->job_08->job_04->job_02}que_c={job_09->job_07->job_06->job_03}其中,“->”表示執(zhí)行順序,job_05->job_01表示先執(zhí)行任務(wù)job_01,再執(zhí)行job_05。圖4是根據(jù)本發(fā)明實(shí)施例任務(wù)分配過(guò)程的示意圖。通分配過(guò)程之后,將本發(fā)明實(shí)施的分配結(jié)果存儲(chǔ)在數(shù)據(jù)表中,并且輸出到“數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)任務(wù)執(zhí)行系統(tǒng)”中的“任務(wù)執(zhí)行隊(duì)列中”中,等待任務(wù)分發(fā)程序進(jìn)行分發(fā)和執(zhí)行。圖5是根據(jù)本發(fā)明實(shí)施例的一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的裝置主要模塊的示意圖。如圖5所示,本發(fā)明實(shí)施例的一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的裝置主要包括采集模塊、處理模塊、排序模塊和分配模塊。其中,采集模塊用于采集用戶的任務(wù)在數(shù)據(jù)倉(cāng)庫(kù)中運(yùn)行的歷史數(shù)據(jù);處理模塊用于對(duì)歷史數(shù)據(jù)進(jìn)行處理,統(tǒng)計(jì)出任務(wù)的資源占用時(shí)長(zhǎng);排序模塊用于根據(jù)資源占用時(shí)長(zhǎng)將任務(wù)進(jìn)行排序;分配模塊用于根據(jù)排序的結(jié)果以及用戶的資源進(jìn)程數(shù),將任務(wù)分配到任務(wù)隊(duì)列中。進(jìn)一步,分配模塊用于按照任務(wù)的資源占用時(shí)長(zhǎng)從大到小的順序,依次將任務(wù)分配到總時(shí)長(zhǎng)最小的任務(wù)隊(duì)列中,并且將任務(wù)的資源占用時(shí)長(zhǎng)疊加到接收任務(wù)的任務(wù)隊(duì)列的總時(shí)長(zhǎng)中。排序模塊根據(jù)資源占用時(shí)長(zhǎng)將用戶的任務(wù)按照從大到小或從小到大的順序進(jìn)行排序;以及,獲取用戶的資源進(jìn)程號(hào)。排序模塊獲取到用戶的資源進(jìn)程號(hào)之后,則可按照任務(wù)的個(gè)數(shù)和排序與資源進(jìn)行號(hào)之間的關(guān)系,例如,當(dāng)任務(wù)數(shù)量小于用戶的資源進(jìn)程數(shù)時(shí),任務(wù)序號(hào)可與資源進(jìn)程號(hào)之間一對(duì)一且隨機(jī)對(duì)應(yīng);當(dāng)任務(wù)數(shù)量大于資源進(jìn)程數(shù)時(shí),任務(wù)序號(hào)與進(jìn)程號(hào)之際則按照分配模塊的分配原則進(jìn)行對(duì)應(yīng)。處理模塊根據(jù)采集的歷史數(shù)據(jù),計(jì)算出每一個(gè)任務(wù)的平均資源占用時(shí)長(zhǎng),則平均資源占用時(shí)長(zhǎng)即為本發(fā)明實(shí)施例中的統(tǒng)計(jì)出任務(wù)的資源占用時(shí)長(zhǎng)。本發(fā)明實(shí)施例的一種自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的裝置還包括判斷模塊和設(shè)置模塊。其中,判斷模塊用于判斷用戶的任務(wù)個(gè)數(shù)是否小于或等于用戶的資源進(jìn)程數(shù);若是,則分配模塊將任務(wù)一對(duì)一且隨機(jī)地分配到任務(wù)隊(duì)列中;否則,分配模塊按照任務(wù)的資源占用時(shí)長(zhǎng)從大到小的順序,依次將任務(wù)分配到總時(shí)長(zhǎng)最小的任務(wù)隊(duì)列中,并且將任務(wù)的資源占用時(shí)長(zhǎng)疊加到接收任務(wù)的任務(wù)隊(duì)列的總時(shí)長(zhǎng)中。設(shè)置模塊用于根據(jù)任務(wù)的類型設(shè)置采集歷史數(shù)據(jù)的時(shí)間段,并將采集到的所述歷史數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)表中,所述歷史數(shù)據(jù)包括:運(yùn)行的日期、用戶名、任務(wù)編號(hào)、任務(wù)名稱和任務(wù)開始時(shí)間、任務(wù)結(jié)束時(shí)間。通過(guò)本發(fā)明實(shí)施例的自動(dòng)化配置數(shù)據(jù)倉(cāng)庫(kù)并行任務(wù)隊(duì)列的裝置,將用戶的任務(wù)分配到相應(yīng)的隊(duì)列,并將結(jié)果輸出到數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)任務(wù)執(zhí)行系統(tǒng)中的任務(wù)執(zhí)行隊(duì)列中,下一步即進(jìn)入任務(wù)分發(fā)和任務(wù)執(zhí)行的過(guò)程。在分配的過(guò)程中,任務(wù)隊(duì)列的數(shù)量與已給用戶分配的資源進(jìn)程數(shù)是一致的,即可保證任務(wù)隊(duì)列與資源進(jìn)程隊(duì)列一一對(duì)應(yīng),在執(zhí)行過(guò)程中需要對(duì)任務(wù)隊(duì)列與資源進(jìn)程進(jìn)行匹配。任務(wù)分發(fā)過(guò)程:通過(guò)獲取用戶當(dāng)前分配到資源進(jìn)程號(hào),將任務(wù)執(zhí)行隊(duì)列與獲取的資源進(jìn)程號(hào)進(jìn)行映射,如當(dāng)前進(jìn)程資源號(hào)為process_01,process_02,process_03;映射為que_a→process_01、que_b→process_02、que_c→process_03。之后將每個(gè)隊(duì)列中的任務(wù)按順序分發(fā)到對(duì)應(yīng)到的資源進(jìn)程隊(duì)列中,等待執(zhí)行。系統(tǒng)按順序執(zhí)行任務(wù)資源隊(duì)列中存放的任務(wù),任務(wù)執(zhí)行完成后將數(shù)據(jù)結(jié)果輸出。圖6是適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。下面參考圖6,其示出了適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備的計(jì)算機(jī)系統(tǒng)600的結(jié)構(gòu)示意圖。圖6示出的終端設(shè)備僅僅是一個(gè)示例,不應(yīng)對(duì)本申請(qǐng)實(shí)施例的功能和使用范圍帶來(lái)任何限制。如圖6所示,計(jì)算機(jī)系統(tǒng)600包括中央處理單元(cpu)601,其可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(rom)602中的程序或者從存儲(chǔ)部分608加載到隨機(jī)訪問(wèn)存儲(chǔ)器(ram)603中的程序而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。在ram603中,還存儲(chǔ)有系統(tǒng)600操作所需的各種程序和數(shù)據(jù)。cpu601、rom602以及ram603通過(guò)總線604彼此相連。輸入/輸出(i/o)接口605也連接至總線604。以下部件連接至i/o接口605:包括鍵盤、鼠標(biāo)等的輸入部分606;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚(yáng)聲器等的輸出部分607;包括硬盤等的存儲(chǔ)部分608;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分609。通信部分609經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動(dòng)器610也根據(jù)需要連接至i/o接口605??刹鹦督橘|(zhì)611,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器610上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分608。特別地,根據(jù)本發(fā)明公開的實(shí)施例,參考上文流程圖和主要步驟的示意圖描述的過(guò)程可以被實(shí)現(xiàn)為計(jì)算機(jī)軟件程序。例如,本發(fā)明公開的實(shí)施例包括一種計(jì)算機(jī)程序產(chǎn)品,其包括承載在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包含用于執(zhí)行流程圖和主要步驟的示意圖所示的方法的程序代碼。在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過(guò)通信部分609從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)611被安裝。在該計(jì)算機(jī)程序被中央處理單元(cpu)601執(zhí)行時(shí),執(zhí)行本申請(qǐng)的系統(tǒng)中限定的上述功能。需要說(shuō)明的是,本申請(qǐng)所示的計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或者是上述兩者的任意組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子可以包括但不限于:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)訪問(wèn)存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦式可編程只讀存儲(chǔ)器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本申請(qǐng)中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。而在本申請(qǐng)中,計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括但不限于電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于:無(wú)線、電線、光纜、rf等等,或者上述的任意合適的組合。附圖中的流程圖和框圖,圖示了按照本申請(qǐng)各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,上述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖或流程圖中的每個(gè)方框、以及框圖或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。描述于本申請(qǐng)實(shí)施例中所涉及到的模塊,可以通過(guò)軟件的方式實(shí)現(xiàn),也可以通過(guò)硬件的方式來(lái)實(shí)現(xiàn)。所描述的模塊也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括采集模塊、處理模塊、排序模塊和分配模塊。其中,這些模塊的名稱在某種情況下并不構(gòu)成對(duì)該模塊本身的限定,例如,采集模塊還可以被描述為“采集用戶的任務(wù)在數(shù)據(jù)倉(cāng)庫(kù)中運(yùn)行的歷史數(shù)據(jù)的模塊”。作為另一方面,本申請(qǐng)還提供了一種計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以是上述實(shí)施例中描述的設(shè)備中所包含的;也可以是單獨(dú)存在,而未裝配入該設(shè)備中。上述計(jì)算機(jī)可讀介質(zhì)承載有一個(gè)或者多個(gè)程序,當(dāng)上述一個(gè)或者多個(gè)程序被一個(gè)該設(shè)備執(zhí)行時(shí),使得該設(shè)備包括:采集用戶的任務(wù)在數(shù)據(jù)倉(cāng)庫(kù)中運(yùn)行的歷史數(shù)據(jù);對(duì)歷史數(shù)據(jù)進(jìn)行處理,統(tǒng)計(jì)出任務(wù)的資源占用時(shí)長(zhǎng);根據(jù)資源占用時(shí)長(zhǎng)將任務(wù)進(jìn)行排序;根據(jù)排序的結(jié)果以及用戶的資源進(jìn)程數(shù),將任務(wù)分配到任務(wù)隊(duì)列中。上述具體實(shí)施方式,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限制。本領(lǐng)域技術(shù)人員應(yīng)該明白的是,取決于設(shè)計(jì)要求和其他因素,可以發(fā)生各種各樣的修改、組合、子組合和替代。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)12
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1