欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)結(jié)轉(zhuǎn)的方法和系統(tǒng)的制作方法

文檔序號(hào):10569958閱讀:562來(lái)源:國(guó)知局
數(shù)據(jù)結(jié)轉(zhuǎn)的方法和系統(tǒng)的制作方法【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)結(jié)轉(zhuǎn)的方法和系統(tǒng),其中,所述方法包括:配置數(shù)據(jù)結(jié)轉(zhuǎn)信息;根據(jù)所述調(diào)度任務(wù)配置信息及相關(guān)的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,生成對(duì)應(yīng)的采集任務(wù);執(zhí)行所述采集任務(wù),根據(jù)所述采集任務(wù)中的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)源數(shù)據(jù),生成多個(gè)分片任務(wù);并行執(zhí)行所述多個(gè)分片任務(wù),將待結(jié)轉(zhuǎn)數(shù)據(jù)從源數(shù)據(jù)庫(kù)結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)庫(kù)。所述系統(tǒng)包括配置模塊、調(diào)度引擎、數(shù)據(jù)采集模塊和執(zhí)行引擎。本發(fā)明通過(guò)一系列的規(guī)則配置,通過(guò)解析規(guī)則可以動(dòng)態(tài)實(shí)現(xiàn)數(shù)據(jù)結(jié)轉(zhuǎn),極大地提高了開(kāi)發(fā)人員的效率,降低了應(yīng)用系統(tǒng)開(kāi)發(fā)維護(hù)的成本?!緦?zhuān)利說(shuō)明】數(shù)據(jù)結(jié)轉(zhuǎn)的方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及信息數(shù)據(jù)處理
技術(shù)領(lǐng)域
,具體地說(shuō),涉及一種將數(shù)據(jù)從某一信息系統(tǒng)的數(shù)據(jù)庫(kù)中轉(zhuǎn)移到其他數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)轉(zhuǎn)的方法和系統(tǒng)?!?br>背景技術(shù)
】[0002]目前,對(duì)于一些業(yè)務(wù)處理量比較大的信息系統(tǒng),為了減少系統(tǒng)實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)量來(lái)減輕數(shù)據(jù)庫(kù)壓力、提升系統(tǒng)穩(wěn)定性及響應(yīng)速度,通常使用的方法是進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)結(jié)轉(zhuǎn),即將系統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)移到指定數(shù)據(jù)庫(kù)中。[0003]由于不同數(shù)據(jù)表結(jié)轉(zhuǎn)的處理邏輯不一樣,傳統(tǒng)解決數(shù)據(jù)結(jié)轉(zhuǎn)的方案,是根據(jù)需要結(jié)轉(zhuǎn)的數(shù)據(jù)庫(kù)表以及數(shù)據(jù)關(guān)聯(lián)規(guī)則開(kāi)發(fā)一個(gè)定時(shí)結(jié)轉(zhuǎn)任務(wù),由系統(tǒng)定時(shí)調(diào)度來(lái)驅(qū)動(dòng)執(zhí)行。因而,傳統(tǒng)的解決方案不得不針對(duì)每個(gè)需要結(jié)轉(zhuǎn)的數(shù)據(jù)表開(kāi)發(fā)一個(gè)定時(shí)結(jié)轉(zhuǎn)任務(wù),再由系統(tǒng)定時(shí)調(diào)度該結(jié)轉(zhuǎn)策略實(shí)現(xiàn)數(shù)據(jù)的結(jié)轉(zhuǎn)。[0004]對(duì)于稍微復(fù)雜一些的信息系統(tǒng)而言,由于很多數(shù)據(jù)表都需要結(jié)轉(zhuǎn),因而需要針對(duì)每一個(gè)數(shù)據(jù)表或者多個(gè)關(guān)聯(lián)的數(shù)據(jù)表都要開(kāi)發(fā)一個(gè)定時(shí)任務(wù)來(lái)定期執(zhí)行,因而開(kāi)發(fā)和維護(hù)成本比較高。【
發(fā)明內(nèi)容】[0005]本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的不足,提供一種數(shù)據(jù)結(jié)轉(zhuǎn)的方法和系統(tǒng),動(dòng)態(tài)地實(shí)現(xiàn)數(shù)據(jù)結(jié)轉(zhuǎn),在增加結(jié)轉(zhuǎn)任務(wù)時(shí),不需要新開(kāi)發(fā)或修改已有程序功能,從而提高開(kāi)發(fā)人員效率,減低應(yīng)用系統(tǒng)的開(kāi)發(fā)、維護(hù)成本。[0006]為解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明的一個(gè)方面,本發(fā)明提供了一種數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,包括以下步驟:[0007]配置數(shù)據(jù)結(jié)轉(zhuǎn)信息,包括調(diào)度任務(wù)配置信息、數(shù)據(jù)源配置信息、結(jié)轉(zhuǎn)任務(wù)配置信息和批次結(jié)轉(zhuǎn)任務(wù)配置信息;[0008]根據(jù)所述調(diào)度任務(wù)配置信息及相關(guān)的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,生成對(duì)應(yīng)的采集任務(wù);[0009]執(zhí)行所述采集任務(wù),根據(jù)所述采集任務(wù)中的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)源數(shù)據(jù),生成多個(gè)分片任務(wù);和[0010]并行執(zhí)行所述多個(gè)分片任務(wù),按照結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,將待結(jié)轉(zhuǎn)數(shù)據(jù)從源數(shù)據(jù)庫(kù)結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)庫(kù)。[0011]優(yōu)選地,從源數(shù)據(jù)源中抓取的待結(jié)轉(zhuǎn)源數(shù)據(jù)為主鍵數(shù)據(jù);在生成多個(gè)分片任務(wù)后,將每一個(gè)分片任務(wù)的主鍵數(shù)據(jù)寫(xiě)入采集數(shù)據(jù)表中。[0012]優(yōu)選地,所述執(zhí)行所述分片任務(wù),按照結(jié)轉(zhuǎn)任務(wù)配置信息,將結(jié)轉(zhuǎn)數(shù)據(jù)從源數(shù)據(jù)源結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)源的步驟具體包括:[0013]從所述采集數(shù)據(jù)表中讀取所述分片任務(wù)的數(shù)據(jù)列表,獲取相應(yīng)的多個(gè)主鍵數(shù)據(jù);[0014]加載所述結(jié)轉(zhuǎn)任務(wù)配置信息,獲取數(shù)據(jù)庫(kù)信息及與所述分片任務(wù)對(duì)應(yīng)的數(shù)據(jù)表信息;[0015]從源數(shù)據(jù)庫(kù)中的源數(shù)據(jù)源中依次獲取與所述主鍵數(shù)據(jù)對(duì)應(yīng)的源數(shù)據(jù),并將所述源數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)庫(kù)中;和[0016]從所述源數(shù)據(jù)源中刪除所述源數(shù)據(jù)。[0017]優(yōu)選地,如果所述分片任務(wù)為批次結(jié)轉(zhuǎn)任務(wù)時(shí),在將每一主鍵數(shù)據(jù)對(duì)應(yīng)的源數(shù)據(jù)成功結(jié)轉(zhuǎn)到目標(biāo)數(shù)庫(kù)中后,還包括:根據(jù)批次結(jié)轉(zhuǎn)任務(wù)配置信息中的關(guān)聯(lián)規(guī)則,生成對(duì)應(yīng)的子表任務(wù)。[0018]優(yōu)選地,本發(fā)明所述方法還包括多個(gè)子表任務(wù)的并行執(zhí)行。[0019]優(yōu)選地,在將所述源數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)庫(kù)中之前,還包括:根據(jù)配置信息,構(gòu)建由源數(shù)據(jù)到目標(biāo)數(shù)據(jù)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換、字段映射、目標(biāo)數(shù)據(jù)庫(kù)寫(xiě)入字段及值。[0020]優(yōu)選地,所述根據(jù)數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)源數(shù)據(jù)的步驟具體包括:[0021]根據(jù)數(shù)據(jù)源配置信息中的數(shù)據(jù)庫(kù)信息創(chuàng)建數(shù)據(jù)庫(kù)訪問(wèn)連接,并連接到所述數(shù)據(jù)庫(kù);[0022]根據(jù)結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息獲取源數(shù)據(jù)源和數(shù)據(jù)篩選規(guī)則,從所述源數(shù)據(jù)源中抓取符合所述數(shù)據(jù)篩選規(guī)則的待結(jié)轉(zhuǎn)源數(shù)據(jù)。[0023]優(yōu)選地,在配置調(diào)度任務(wù)配置信息時(shí),建立所述調(diào)度任務(wù)配置信息與相應(yīng)的結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息的關(guān)聯(lián)。[0024]為解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明的另一個(gè)方面,本發(fā)明提供了一種數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,包括:[0025]配置模塊,用于配置數(shù)據(jù)結(jié)轉(zhuǎn)信息,包括數(shù)據(jù)源配置信息、調(diào)度任務(wù)配置信息、結(jié)轉(zhuǎn)任務(wù)配置信息和批次結(jié)轉(zhuǎn)任務(wù)配置信息;[0026]調(diào)度引擎,與所述配置模塊相連接,用于根據(jù)相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息,通過(guò)發(fā)送觸發(fā)信息控制數(shù)據(jù)的采集及結(jié)轉(zhuǎn);[0027]數(shù)據(jù)采集模塊,與所述配置模塊和所述調(diào)度引擎相連接,用于根據(jù)所述調(diào)度任務(wù)配置信息生成對(duì)應(yīng)的采集任務(wù),根據(jù)所述調(diào)度引擎的觸發(fā)信息和數(shù)據(jù)源配置信息,執(zhí)行所述采集任務(wù),從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)數(shù)據(jù)的主鍵數(shù)據(jù),生成多個(gè)分片任務(wù),并將所述多個(gè)分片任務(wù)注冊(cè)到所述調(diào)度引擎;和[0028]執(zhí)行引擎,與所述配置模塊和所述調(diào)度引擎相連接,用于根據(jù)所述調(diào)度引擎的觸發(fā)信息執(zhí)行相應(yīng)的分片任務(wù),按照相應(yīng)的結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,將待結(jié)轉(zhuǎn)源數(shù)據(jù)從源數(shù)據(jù)庫(kù)結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)庫(kù),或生成子表任務(wù)注冊(cè)到所述調(diào)度引擎。[0029]優(yōu)選地,所述系統(tǒng)還包括數(shù)據(jù)接口,分別與所述數(shù)據(jù)采集模塊和所述執(zhí)行引擎相連接,用于提供所述數(shù)據(jù)采集模塊與數(shù)據(jù)庫(kù)之間、所述執(zhí)行引擎與數(shù)據(jù)庫(kù)之間的數(shù)據(jù)操作處理。[0030]優(yōu)選地,所述配置模塊包括:[0031]數(shù)據(jù)源配置單元,用于配置源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的相關(guān)信息;[0032]結(jié)轉(zhuǎn)任務(wù)配置單元,用于配置結(jié)轉(zhuǎn)任務(wù)需要結(jié)轉(zhuǎn)的數(shù)據(jù)表信息;[0033]批次結(jié)轉(zhuǎn)任務(wù)配置單元,用于配置批次結(jié)轉(zhuǎn)任務(wù)中多個(gè)相互關(guān)聯(lián)的數(shù)據(jù)表的結(jié)轉(zhuǎn)任務(wù)關(guān)聯(lián)信息;和[0034]調(diào)度任務(wù)配置單元,用于配置調(diào)度任務(wù)策略信息,并將所述調(diào)度任務(wù)和結(jié)轉(zhuǎn)任務(wù)或批次結(jié)轉(zhuǎn)任務(wù)建立關(guān)聯(lián)。[0035]優(yōu)選地,所述調(diào)度引擎包括:[0036]任務(wù)注冊(cè)單元,分別與所述數(shù)據(jù)采集模塊和所述執(zhí)行引擎相連接,用于接收所述數(shù)據(jù)采集模塊生成的采集任務(wù)和分片任務(wù)及所述執(zhí)行引擎生成的子表任務(wù);和[0037]任務(wù)觸發(fā)單元,分別與所述任務(wù)注冊(cè)單元、所述配置模塊、所述數(shù)據(jù)采集模塊和所述執(zhí)行引擎相連接,根據(jù)相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息及任務(wù)注冊(cè)單元接收的分片任務(wù)和子表任務(wù),向所述數(shù)據(jù)采集模塊和/或所述執(zhí)行引擎發(fā)送觸發(fā)信息。[0038]優(yōu)選地,所述數(shù)據(jù)采集模塊包括:[0039]采集任務(wù)生成單元,與所述配置模塊相連接,根據(jù)所述調(diào)度任務(wù)配置信息及相關(guān)的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,生成采集任務(wù);[0040]數(shù)據(jù)抓取單元,與所述調(diào)度引擎相連接,用于根據(jù)所述調(diào)度引擎的觸發(fā)信息執(zhí)行相應(yīng)的采集任務(wù),從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)數(shù)據(jù)的主鍵數(shù)據(jù);和[0041]分片任務(wù)創(chuàng)建單元,與所述數(shù)據(jù)抓取單元相連接,用于根據(jù)抓取的待結(jié)轉(zhuǎn)數(shù)據(jù)的主鍵數(shù)據(jù),創(chuàng)建多個(gè)分片任務(wù),并將所述多個(gè)分片任務(wù)注冊(cè)到所述調(diào)度引擎。[0042]優(yōu)選地,所述執(zhí)行引擎包括:[0043]任務(wù)接收單元,與所述的調(diào)度引擎相連接,用于根據(jù)所述調(diào)度引擎發(fā)送來(lái)的觸發(fā)Ia息,獲得具體的任務(wù)信息;[0044]配置信息加載單元,分別與所述任務(wù)接收單元和所述配置模塊相連接,用于根據(jù)所述任務(wù)接收單元接收的任務(wù)信息,從所述配置模塊獲取相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息;和[0045]數(shù)據(jù)迀移處理單元,分別與所述配置信息加載單元和任務(wù)接收單元相連接,用于根據(jù)所述相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息和所述任務(wù)信息,將源數(shù)據(jù)庫(kù)中對(duì)應(yīng)的源數(shù)據(jù)迀移到目標(biāo)數(shù)據(jù)源庫(kù),并將所述源數(shù)據(jù)從源數(shù)據(jù)庫(kù)中刪除。[0046]優(yōu)選地,所述執(zhí)行引擎還包括:[0047]子表任務(wù)創(chuàng)建單元,與所述數(shù)據(jù)迀移處理單元相連接,用于在所述數(shù)據(jù)迀移處理單元將源數(shù)據(jù)成功結(jié)轉(zhuǎn)到目標(biāo)數(shù)庫(kù)中后,根據(jù)批次結(jié)轉(zhuǎn)任務(wù)配置信息中的關(guān)聯(lián)規(guī)則,創(chuàng)建相應(yīng)的子表任務(wù),并將所述子表任務(wù)注冊(cè)到所述調(diào)度引擎;[0048]所述執(zhí)行引擎的任務(wù)接收單元得到的所述任務(wù)信息包括分片任務(wù)信息和子表任務(wù)?目息O[0049]本發(fā)明通過(guò)一系列的規(guī)則配置,設(shè)定了周期性數(shù)據(jù)結(jié)轉(zhuǎn)規(guī)則,通過(guò)解析規(guī)則可以動(dòng)態(tài)實(shí)現(xiàn)數(shù)據(jù)結(jié)轉(zhuǎn)。在新增結(jié)轉(zhuǎn)任務(wù)時(shí),不需要對(duì)本系統(tǒng)重新開(kāi)發(fā)或做大的修改,只需要通過(guò)配置規(guī)則即可實(shí)現(xiàn),因而極大地提高了開(kāi)發(fā)人員的效率,減低了應(yīng)用系統(tǒng)開(kāi)發(fā)、維護(hù)的成本。【附圖說(shuō)明】[0050]通過(guò)參照以下附圖對(duì)本發(fā)明實(shí)施例的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)點(diǎn)將更為清楚,在附圖中:[0051]圖1為本發(fā)明所述數(shù)據(jù)結(jié)轉(zhuǎn)方法的總體流程圖;[0052]圖2為本發(fā)明所述數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng)的結(jié)構(gòu)原理框圖;[0053]圖3為本發(fā)明所述配置模塊的結(jié)構(gòu)原理框圖;[0054]圖4為本發(fā)明所述調(diào)度引擎的結(jié)構(gòu)原理框圖;[0055]圖5為本發(fā)明所述數(shù)據(jù)采集模塊的結(jié)構(gòu)原理框圖;[0056]圖6為本發(fā)明用于執(zhí)行單一結(jié)轉(zhuǎn)任務(wù)時(shí)的執(zhí)行引擎的結(jié)構(gòu)原理框圖;[0057]圖7為本發(fā)明用于執(zhí)行批次結(jié)轉(zhuǎn)任務(wù)時(shí)的執(zhí)行引擎的結(jié)構(gòu)原理框圖;[0058]圖8為本發(fā)明所述數(shù)據(jù)采集具體實(shí)施例的流程示意圖;和[0059]圖9為本發(fā)明所述執(zhí)行引擎執(zhí)行結(jié)轉(zhuǎn)任務(wù)時(shí)的具體實(shí)施例的流程示意圖。【具體實(shí)施方式】[0060]以下基于實(shí)施例對(duì)本發(fā)明進(jìn)行描述,但是本發(fā)明并不僅僅限于這些實(shí)施例。在下文對(duì)本發(fā)明的細(xì)節(jié)描述中,詳盡描述了一些特定的細(xì)節(jié)部分。對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)沒(méi)有這些細(xì)節(jié)部分的描述也可以完全理解本發(fā)明。為了避免混淆本發(fā)明的實(shí)質(zhì),公知的方法、過(guò)程、流程沒(méi)有詳細(xì)敘述。另外附圖不一定是按比例繪制的。[0061]附圖中的流程圖、框圖圖示了本發(fā)明實(shí)施例的系統(tǒng)、方法、裝置的可能的體系框架、功能和操作,流程圖和框圖上的方框可以代表一個(gè)模塊、程序段或僅僅是一段代碼,所述模塊、程序段和代碼都是用來(lái)實(shí)現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,所述實(shí)現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令可以重新組合,從而生成新的模塊和程序段。因此附圖的方框以及方框順序只是用來(lái)更好的圖示實(shí)施例的過(guò)程和步驟,而不應(yīng)以此作為對(duì)發(fā)明本身的限制。[0062]本發(fā)明提供了一種數(shù)據(jù)結(jié)轉(zhuǎn)方法,所述結(jié)轉(zhuǎn)方法如圖1所示,包括:[0063]步驟SI,配置數(shù)據(jù)結(jié)轉(zhuǎn)信息,具體包括數(shù)據(jù)源配置信息、調(diào)度任務(wù)配置信息、結(jié)轉(zhuǎn)任務(wù)配置信息和批次結(jié)轉(zhuǎn)任務(wù)配置信息。這些信息包括了各種規(guī)則。[0064]步驟S2,根據(jù)調(diào)度任務(wù)配置信息及相關(guān)的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,生成對(duì)應(yīng)的采集任務(wù)TCi。并將采集任務(wù)TCi注冊(cè)到調(diào)度引擎,注冊(cè)的同時(shí)將調(diào)度任務(wù)配置信息中的調(diào)度時(shí)間策略發(fā)送給調(diào)度引擎,調(diào)度引擎根據(jù)該調(diào)度時(shí)間策略來(lái)調(diào)度米集任務(wù)的執(zhí)行。[0065]步驟S3,執(zhí)行所述采集任務(wù),根據(jù)數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)源數(shù)據(jù)的主鍵數(shù)據(jù),并將抓取到的數(shù)據(jù)進(jìn)行分片,生成分片任務(wù)TDi,將每一個(gè)分片任務(wù)TDi的主鍵數(shù)據(jù)寫(xiě)入采集數(shù)據(jù)表中。[0066]步驟S4,并行執(zhí)行所述多個(gè)分片任務(wù)TDi,按照結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,將結(jié)轉(zhuǎn)數(shù)據(jù)從源數(shù)據(jù)庫(kù)結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)庫(kù)。例如,根據(jù)采集到的主鍵數(shù)據(jù)構(gòu)造查詢(xún)sql語(yǔ)句,去源庫(kù)里查詢(xún)完整的數(shù)據(jù)。其中,所述的主鍵,是表示該項(xiàng)數(shù)據(jù)值唯一性的一個(gè)字段,可以是一個(gè)表自增id,也可以是其他字段,具體規(guī)則可以在結(jié)轉(zhuǎn)任務(wù)配置里進(jìn)行配置。[0067]如圖2所示,本發(fā)明提供了一種數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,所述系統(tǒng)包括配置模塊1、調(diào)度引擎2、數(shù)據(jù)采集模塊3和執(zhí)行引擎4。其中,配置模塊I用于配置數(shù)據(jù)結(jié)轉(zhuǎn)信息,包括數(shù)據(jù)源配置信息、調(diào)度任務(wù)配置信息、結(jié)轉(zhuǎn)任務(wù)配置信息和批次結(jié)轉(zhuǎn)任務(wù)配置信息。[0068]調(diào)度引擎2與所述配置模塊I相連接,用于根據(jù)相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息,通過(guò)發(fā)送觸發(fā)信息控制數(shù)據(jù)的采集及結(jié)轉(zhuǎn)。[0069]數(shù)據(jù)采集模塊3與所述配置模塊I和所述調(diào)度引擎2相連接,用于根據(jù)所述調(diào)度任務(wù)配置信息生成對(duì)應(yīng)的采集任務(wù)TCi,根據(jù)所述調(diào)度引擎2的觸發(fā)信息和數(shù)據(jù)源配置信息,執(zhí)行所述采集任務(wù)TCi,從源數(shù)據(jù)源6中抓取待結(jié)轉(zhuǎn)數(shù)據(jù)的主鍵數(shù)據(jù),生成多個(gè)分片任務(wù)TDi,并將所述多個(gè)分片任務(wù)TDi注冊(cè)到所述調(diào)度引擎2。[0070]執(zhí)行引擎4與所述配置模塊I和所述調(diào)度引擎2相連接,用于根據(jù)所述調(diào)度引擎2的觸發(fā)信息執(zhí)行相應(yīng)的分片任務(wù)TDi,按照相應(yīng)的結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,將待結(jié)轉(zhuǎn)源數(shù)據(jù)從源數(shù)據(jù)庫(kù)6結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)庫(kù)7,或生成子表任務(wù)注冊(cè)到所述調(diào)度引擎2。[0071]本發(fā)明所述的數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng)還包括數(shù)據(jù)接口5,連接在數(shù)據(jù)庫(kù)與前述的數(shù)據(jù)采集模塊之間或執(zhí)行引擎與數(shù)據(jù)庫(kù)之間。該數(shù)據(jù)接口5負(fù)責(zé)數(shù)據(jù)庫(kù)的連接、查詢(xún)、寫(xiě)入、數(shù)據(jù)封裝、轉(zhuǎn)換等工作,從而屏蔽了不同數(shù)據(jù)庫(kù)之間的差異對(duì)結(jié)轉(zhuǎn)處理邏輯造成的影響。[0072]具體地,如圖3所示,為本發(fā)明所述配置模塊I的結(jié)構(gòu)原理框圖。所述配置模塊包括:數(shù)據(jù)源配置單元11、調(diào)度任務(wù)配置單元12、結(jié)轉(zhuǎn)任務(wù)配置單元13和批次結(jié)轉(zhuǎn)任務(wù)配置單元14。[0073]其中,數(shù)據(jù)源配置單元11用于配置與數(shù)據(jù)庫(kù)連接相關(guān)的信息,如數(shù)據(jù)庫(kù)的IP地址、用戶(hù)名、密碼和編碼格式等。其中,可以配置多個(gè)不同的數(shù)據(jù)庫(kù),從而可以支持多個(gè)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)之間的數(shù)據(jù)結(jié)轉(zhuǎn)。[0074]調(diào)度任務(wù)配置單元12用于配置調(diào)度任務(wù)策略信息,并將調(diào)度任務(wù)和結(jié)轉(zhuǎn)任務(wù)或批次結(jié)轉(zhuǎn)任務(wù)建立關(guān)聯(lián)。所述調(diào)度任務(wù)策略信息包括任務(wù)執(zhí)行時(shí)間范圍、執(zhí)行頻率和執(zhí)行間隔時(shí)間等參數(shù)。由于將所述調(diào)度任務(wù)策略和結(jié)轉(zhuǎn)任務(wù)或批次結(jié)轉(zhuǎn)任務(wù)建立關(guān)聯(lián),這樣,在每一個(gè)調(diào)度任務(wù)執(zhí)行時(shí),會(huì)執(zhí)行相關(guān)聯(lián)的結(jié)轉(zhuǎn)任務(wù)或批次任務(wù),從而完成任務(wù)的自動(dòng)執(zhí)行。[0075]結(jié)轉(zhuǎn)任務(wù)配置單元13用于配置需要結(jié)轉(zhuǎn)的數(shù)據(jù)表信息,如源表名、目標(biāo)表名、源數(shù)據(jù)源、目標(biāo)數(shù)據(jù)源和結(jié)轉(zhuǎn)數(shù)據(jù)篩選規(guī)則等。[0076]批次結(jié)轉(zhuǎn)任務(wù)配置單元14用于配置多個(gè)相互關(guān)聯(lián)數(shù)據(jù)表的結(jié)轉(zhuǎn)任務(wù)關(guān)聯(lián)信息。通常來(lái)說(shuō),數(shù)據(jù)庫(kù)中會(huì)有多個(gè)具有相互關(guān)聯(lián)的數(shù)據(jù)表,在結(jié)轉(zhuǎn)數(shù)據(jù)時(shí),需要將這些關(guān)聯(lián)的數(shù)據(jù)表一起結(jié)轉(zhuǎn),因而,批次結(jié)轉(zhuǎn)任務(wù)配置單元14用于配置結(jié)轉(zhuǎn)數(shù)據(jù)表之間的字段關(guān)聯(lián)規(guī)則、表結(jié)轉(zhuǎn)順序等,并指定一個(gè)表作為主表,這樣在批次結(jié)轉(zhuǎn)任務(wù)執(zhí)行時(shí)可以先從主表開(kāi)始結(jié)轉(zhuǎn),并根據(jù)主表與子表的關(guān)聯(lián)規(guī)則,結(jié)轉(zhuǎn)子表的數(shù)據(jù)。[0077]如圖4所示,為本發(fā)明所述調(diào)度引擎2的結(jié)構(gòu)原理框圖。所述調(diào)度引擎2包括任務(wù)注冊(cè)單元21和任務(wù)觸發(fā)單元22。[0078]所述任務(wù)注冊(cè)單元21分別與所述數(shù)據(jù)采集模塊3和所述執(zhí)行引擎4相聯(lián)接,用于接收所述數(shù)據(jù)采集模塊3生成的采集任務(wù)和分片任務(wù)及所述執(zhí)行引擎4生成的子表任務(wù)。任務(wù)觸發(fā)單元22分別與所述配置模塊1、所述數(shù)據(jù)采集模塊2和所述執(zhí)行引擎3相連接,根據(jù)相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息中的調(diào)度任務(wù)策略信息,發(fā)送觸發(fā)信息給所述數(shù)據(jù)采集模塊3,觸發(fā)所述數(shù)據(jù)采集模塊3執(zhí)行所述采集任務(wù),和/或發(fā)送觸發(fā)信息給所述執(zhí)行引擎4,由所述執(zhí)行引擎4執(zhí)行所述分片任務(wù)和/或子表任務(wù)。[0079]如圖5所示,為本發(fā)明所述數(shù)據(jù)采集模塊3的結(jié)構(gòu)原理框圖。所述數(shù)據(jù)采集模塊I包括采集任務(wù)生成單元31、數(shù)據(jù)抓取單元32和分片任務(wù)創(chuàng)建單元33。[0080]其中,采集任務(wù)生成單元31與所述配置模塊相連接,根據(jù)所述的調(diào)度任務(wù)配置信息及相應(yīng)的結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息生成采集任務(wù),并將所述采集任務(wù)注冊(cè)到所述調(diào)度引擎2的所述任務(wù)注冊(cè)單元21。[0081]所述數(shù)據(jù)抓取單元32與所述調(diào)度引擎2相連接,根據(jù)所述調(diào)度引擎2的觸發(fā)信息執(zhí)行所述采集任務(wù)。具體地,根據(jù)配置模塊I的配置信息,如根據(jù)數(shù)據(jù)源配置信息,可以得到需要連接的數(shù)據(jù)庫(kù)地址、用戶(hù)名及數(shù)據(jù)庫(kù)名。從而創(chuàng)建數(shù)據(jù)庫(kù)訪問(wèn)鏈接,連接到待結(jié)轉(zhuǎn)數(shù)據(jù)源庫(kù)6,并根據(jù)結(jié)轉(zhuǎn)任務(wù)配置信息中需要結(jié)轉(zhuǎn)的數(shù)據(jù)表信息,如源表名、目標(biāo)表名、源數(shù)據(jù)源、目標(biāo)數(shù)據(jù)源和結(jié)轉(zhuǎn)數(shù)據(jù)篩選規(guī)則等,查詢(xún)符合條件的結(jié)轉(zhuǎn)數(shù)據(jù),從所述源數(shù)據(jù)源中抓取主鍵數(shù)據(jù)。[0082]分片任務(wù)創(chuàng)建單元33與所述數(shù)據(jù)抓取單元32相連接,用于根據(jù)抓取的待結(jié)轉(zhuǎn)數(shù)據(jù)的主鍵數(shù)據(jù),創(chuàng)建多個(gè)分片任務(wù),并將每一個(gè)分片任務(wù)的主鍵數(shù)據(jù)寫(xiě)入采集數(shù)據(jù)表中,同時(shí)將所述多個(gè)分片任務(wù)注冊(cè)到所述調(diào)度引擎2。所述采集數(shù)據(jù)表也是一個(gè)分片任務(wù)總表,所有的分片任務(wù)都記錄在所述分片任務(wù)總表中。每個(gè)分片任務(wù)中記錄有源數(shù)據(jù)的主鍵數(shù)據(jù)信息。[0083]對(duì)于批次結(jié)轉(zhuǎn)任務(wù),在進(jìn)行數(shù)據(jù)采集時(shí)只采集主表數(shù)據(jù),不采集子表數(shù)據(jù),并將采集的主表數(shù)據(jù)存入采集數(shù)據(jù)表中。[0084]在本發(fā)明中,在整個(gè)系統(tǒng)啟動(dòng)時(shí),查詢(xún)配置的所有調(diào)度任務(wù),逐個(gè)生成對(duì)應(yīng)的采集任務(wù)并注冊(cè)到調(diào)度引擎中心。也可以人工增加新的調(diào)度任務(wù)。當(dāng)系統(tǒng)運(yùn)行時(shí)有新增的調(diào)度任務(wù),可以人工觸發(fā)啟動(dòng)該任務(wù),數(shù)據(jù)采集模塊3根據(jù)該任務(wù)生成對(duì)應(yīng)的采集任務(wù),并注冊(cè)到調(diào)度引擎中心2。[0085]在本發(fā)明的一個(gè)具體應(yīng)用實(shí)施例中,通過(guò)一個(gè)單獨(dú)的分片任務(wù)執(zhí)行器來(lái)執(zhí)行分片任務(wù)。該執(zhí)行器由調(diào)度引擎進(jìn)行調(diào)度,并且分布式執(zhí)行。[0086]調(diào)度引擎2觸發(fā)分片任務(wù)執(zhí)行器執(zhí)行分片任務(wù)時(shí),調(diào)度引擎2告知執(zhí)行器需要執(zhí)行哪幾個(gè)分片任務(wù),執(zhí)行器在分片任務(wù)表(即前述的采集數(shù)據(jù)表)里獲取對(duì)應(yīng)分片的待執(zhí)行任務(wù)。得到待執(zhí)行任務(wù)后,將任務(wù)逐個(gè)交給執(zhí)行弓I擎4進(jìn)行處理。[0087]執(zhí)行引擎4得到分片任務(wù)后,加裝任務(wù)配置信息、批次信息、數(shù)據(jù)源配置信息等必要的配置信息,然后執(zhí)行結(jié)轉(zhuǎn),如果任務(wù)是批次任務(wù),生成對(duì)應(yīng)的關(guān)聯(lián)子表任務(wù)。[0088]具體地,如圖6所示,為本發(fā)明用于執(zhí)行結(jié)轉(zhuǎn)任務(wù)時(shí)的執(zhí)行引擎4的結(jié)構(gòu)原理框圖。所述執(zhí)行引擎4在執(zhí)行結(jié)轉(zhuǎn)任務(wù)時(shí)包括任務(wù)接收單元41、配置信息加載單元42和數(shù)據(jù)迀移處理單元43。[0089]其中,所述任務(wù)接收單元41與所述的調(diào)度引擎2相連接,用于根據(jù)所述調(diào)度引擎發(fā)送來(lái)的觸發(fā)信息從所述的采集數(shù)據(jù)表中獲得相應(yīng)的分片任務(wù)。所述任務(wù)接收單元41在具體實(shí)施時(shí)可以采用前述的分片任務(wù)執(zhí)行器。[0090]配置信息加載單元42根據(jù)所述任務(wù)接收單元41得到的分片任務(wù),從所述配置模塊I獲取相應(yīng)的配置信息,如數(shù)據(jù)庫(kù)連接相關(guān)的信息,例如數(shù)據(jù)庫(kù)地址、用戶(hù)名或數(shù)據(jù)庫(kù)名稱(chēng)等和數(shù)據(jù)表信息,如源表名稱(chēng)、目標(biāo)表名稱(chēng)、源數(shù)據(jù)源、目標(biāo)數(shù)據(jù)源和結(jié)轉(zhuǎn)數(shù)據(jù)篩選規(guī)則。[0091]所述數(shù)據(jù)迀移處理單元43根據(jù)所述配置信息,創(chuàng)建與數(shù)據(jù)庫(kù)的鏈接,并連接到數(shù)據(jù)庫(kù)中,根據(jù)源表名稱(chēng),找到源表及源數(shù)據(jù)源,根據(jù)分片任務(wù)的主鍵數(shù)據(jù),將源數(shù)據(jù)源中與所述主鍵數(shù)據(jù)對(duì)應(yīng)的源數(shù)據(jù)迀移到目標(biāo)數(shù)據(jù)庫(kù)7的目標(biāo)表的目標(biāo)數(shù)據(jù)源中,并將所述源數(shù)據(jù)從源數(shù)據(jù)源中刪除。[0092]如果結(jié)轉(zhuǎn)任務(wù)為批次結(jié)轉(zhuǎn)任務(wù)時(shí),執(zhí)行引擎的結(jié)構(gòu)如圖7所示,為本發(fā)明用于執(zhí)行批次結(jié)轉(zhuǎn)任務(wù)時(shí)的執(zhí)行引擎的結(jié)構(gòu)原理框圖。此時(shí)所述執(zhí)行引擎4包括任務(wù)接收單元41、配置信息加載單元42、數(shù)據(jù)迀移處理單元43和子表任務(wù)創(chuàng)建單元44。[0093]其中,所述任務(wù)接收單元41和配置信息加載單元42與圖6所示的結(jié)構(gòu)類(lèi)似,不同的是,所述配置信息加載單元42從所述配置模塊I獲取的是相應(yīng)的批次結(jié)轉(zhuǎn)任務(wù)配置信息,如主表信息、各個(gè)關(guān)聯(lián)數(shù)據(jù)表之間的字段關(guān)聯(lián)規(guī)則、表結(jié)轉(zhuǎn)順序、指定主表等及主表信息。[0094]當(dāng)按照?qǐng)D6及上一實(shí)施例完成分片任務(wù)的一個(gè)主鍵數(shù)據(jù)結(jié)轉(zhuǎn)后,如果本次任務(wù)為批次結(jié)轉(zhuǎn)任務(wù),則由所述子表任務(wù)創(chuàng)建單元44創(chuàng)建相應(yīng)的關(guān)聯(lián)表子任務(wù),并記錄在子任務(wù)表中。由于一個(gè)任務(wù)的主表會(huì)有多個(gè)主鍵數(shù)據(jù),而根據(jù)每一個(gè)條主鍵數(shù)據(jù)創(chuàng)建一個(gè)關(guān)聯(lián)表子任務(wù),所以,會(huì)產(chǎn)生多個(gè)關(guān)聯(lián)子表任務(wù),并將他們注冊(cè)到所述調(diào)度引擎2。[0095]即,主表數(shù)據(jù)成功結(jié)轉(zhuǎn)后,根據(jù)批次配置里定義的表關(guān)聯(lián)規(guī)則,生成對(duì)應(yīng)的子表任務(wù)。[0096]舉例來(lái)說(shuō):[0097]table_master為主表,主鍵為id,表名后文用tm代表。[0098]table_slave為主表關(guān)聯(lián)子表,主鍵為id,表名后文用ts代表。[0099]根據(jù)批次結(jié)轉(zhuǎn)任務(wù)配置信息中對(duì)主表與子表的關(guān)聯(lián)關(guān)系的規(guī)定,本實(shí)施例主子表關(guān)耳關(guān)關(guān)系為:ts.master_id=tm.1d。[0?00]當(dāng)tm表成功結(jié)轉(zhuǎn)一條id=10000的數(shù)據(jù),那么會(huì)生成一條對(duì)應(yīng)的ts表的任務(wù),并在任務(wù)表里附帶上關(guān)聯(lián)主表字段值。[0101]在執(zhí)行批次結(jié)轉(zhuǎn)任務(wù)時(shí),共有兩種任務(wù)在并行執(zhí)行,一種是由主表數(shù)據(jù)生成的分片任務(wù),另一種是用于結(jié)轉(zhuǎn)與主表相關(guān)聯(lián)的子表任務(wù)。主表分片任務(wù)的一條主鍵數(shù)據(jù)成功結(jié)轉(zhuǎn)后,生成對(duì)應(yīng)的子表任務(wù),并寫(xiě)入到子表任務(wù)表中。主表的分片任務(wù)是由分片任務(wù)執(zhí)行器獲取,并由執(zhí)行引擎來(lái)執(zhí)行,子表任務(wù)是由子表任務(wù)執(zhí)行器獲取,并由執(zhí)行引擎來(lái)執(zhí)行。[0102]子表任務(wù)的執(zhí)行與前述分片任務(wù)的執(zhí)行相類(lèi)似,在此不再贅述。[0103]根據(jù)以上對(duì)數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng)的具體結(jié)構(gòu)的介紹,在具體實(shí)現(xiàn)時(shí),可以使用現(xiàn)有一些技術(shù)來(lái)實(shí)現(xiàn)上述一種或多種結(jié)構(gòu)。例如,本發(fā)明的調(diào)度引擎用于任務(wù)調(diào)度,所述任務(wù)調(diào)度是指基于給定時(shí)間點(diǎn),給定時(shí)間間隔或者給定執(zhí)行次數(shù)自動(dòng)執(zhí)行任務(wù)。目前有很多種實(shí)現(xiàn)方案,如Timer,Scheduler,Quartz以及JCronTab。對(duì)于數(shù)據(jù)采集模塊和執(zhí)行引擎,在進(jìn)行具體的數(shù)據(jù)抓取和任務(wù)執(zhí)行時(shí),可以通過(guò)創(chuàng)建的worker來(lái)實(shí)現(xiàn)前述的部分模塊、單元的功能。[0104]在圖1所示的步驟S3中,執(zhí)行所述采集任務(wù),根據(jù)數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)數(shù)據(jù)的主鍵數(shù)據(jù),并將抓取到的數(shù)據(jù)進(jìn)行分片,生成分片任務(wù)TDi,可以通過(guò)如圖8所示的流程具體實(shí)現(xiàn)。[0105]步驟S31,生成采集任務(wù)。[0106]步驟S32,根據(jù)所述調(diào)度引擎發(fā)送的觸發(fā)信息,從所述配置模塊獲取相應(yīng)的采集任務(wù)的配置信息。[0107]步驟S33,自動(dòng)構(gòu)建采集worker,根據(jù)數(shù)據(jù)源配置信息中的數(shù)據(jù)庫(kù)連接信息,自動(dòng)構(gòu)建數(shù)據(jù)庫(kù)訪問(wèn)連接,并連接到該數(shù)據(jù)庫(kù)中。[0108]步驟S34,根據(jù)結(jié)轉(zhuǎn)任務(wù)配置信息中的數(shù)據(jù)表信息,確定源表、源數(shù)據(jù)源。[0109]步驟S35,并根據(jù)結(jié)轉(zhuǎn)數(shù)據(jù)篩選規(guī)則,在源表中的源數(shù)據(jù)源中查詢(xún)、抓取源數(shù)據(jù)。[0110]步驟S36,抓取了源數(shù)據(jù)后,對(duì)抓取的數(shù)據(jù)進(jìn)行分片,創(chuàng)建相應(yīng)的分片任務(wù),并將所述分片任務(wù)注冊(cè)到調(diào)度引擎。[0111]步驟S37,將每一個(gè)分片任務(wù)的主鍵數(shù)據(jù)寫(xiě)入采集數(shù)據(jù)表中。當(dāng)執(zhí)行完上述步驟后,返回執(zhí)行下一個(gè)采集任務(wù)。[0112]在圖1中的步驟S4中,來(lái)執(zhí)行分片任務(wù)TDi時(shí),具體實(shí)現(xiàn)流程如圖9所示。在該流程中,通過(guò)構(gòu)建迀移worker和迀移處理器來(lái)實(shí)現(xiàn)數(shù)據(jù)的結(jié)轉(zhuǎn),即單一結(jié)轉(zhuǎn)任務(wù)的數(shù)據(jù)結(jié)轉(zhuǎn)。[0113]步驟S41,當(dāng)調(diào)度引擎調(diào)用分片執(zhí)行器,即圖中的迀移worker時(shí),迀移worker進(jìn)行初始化,使迀移worker處理工作狀態(tài)。[0114]步驟S42,通過(guò)查詢(xún)采集數(shù)據(jù)表獲取分片任務(wù)的數(shù)據(jù)列表。[0115]步驟S43,判斷分片任務(wù)的數(shù)據(jù)列表的大小是否大于0,如果大于0,說(shuō)明有數(shù)據(jù)需要迀移,則進(jìn)行步驟S44,如果不大于O,則說(shuō)明沒(méi)有數(shù)據(jù)需要迀移,使worker休眠。[0116]步驟S44,加載配置信息。如數(shù)據(jù)庫(kù)信息,數(shù)據(jù)表信息等。[0117]步驟S45,初始化迀移處理器。[0118]步驟S46,根據(jù)主鍵信息找到源數(shù)據(jù),并查詢(xún)?cè)磾?shù)據(jù)庫(kù)的源數(shù)據(jù),其中主鍵是由一個(gè)或一組字段構(gòu)成的、能標(biāo)識(shí)數(shù)據(jù)唯一性的數(shù)據(jù)。[0119]步驟S47,判斷是否獲取了指定源數(shù)據(jù),如果獲取了指定源數(shù)據(jù),則進(jìn)行步驟S48,如果沒(méi)有,在步驟S51更新分片任務(wù)狀態(tài)。這里所述的分片任務(wù)狀態(tài)指的是執(zhí)行狀態(tài),分片任務(wù)狀態(tài)分為待執(zhí)行、執(zhí)行完成和執(zhí)行失敗三種狀態(tài),用于標(biāo)明當(dāng)前分片任務(wù)的執(zhí)行情況。[0120]步驟S48,將源數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)庫(kù),如果寫(xiě)入成功,則在步驟S49刪除源數(shù)據(jù),如果沒(méi)有成功寫(xiě)入,則在步驟S50更新分片任務(wù)的執(zhí)行信息,即將原來(lái)的狀態(tài)更新為執(zhí)行失敗。[0121]步驟S49,刪除源數(shù)據(jù),如果成功刪除了源數(shù)據(jù),則在步驟S51更新分片任務(wù)狀態(tài)。如果刪除失敗了,則在步驟S50更新分片任務(wù)的執(zhí)行信息,即將當(dāng)前分片任務(wù)的執(zhí)行信息修改為執(zhí)行失敗,并記錄失敗主要信息,執(zhí)行時(shí)間,累計(jì)執(zhí)行次數(shù)等。執(zhí)行失敗后,在分片任務(wù)啟動(dòng)后下次還會(huì)執(zhí)行,累計(jì)執(zhí)行超過(guò)最大重試次數(shù),則放棄任務(wù),狀態(tài)為執(zhí)行失敗。[0122]當(dāng)處理完當(dāng)前數(shù)據(jù)后,在步驟S52判斷此任務(wù)是否是批次結(jié)轉(zhuǎn)任務(wù),如果是,則在步驟S53生成對(duì)應(yīng)的子表任務(wù),并寫(xiě)入子表任務(wù)表。[0123]關(guān)于子表任務(wù)的執(zhí)行,與分片任務(wù)的執(zhí)行類(lèi)似,子表任務(wù)執(zhí)行器接收到調(diào)度引擎的觸發(fā)信息,查詢(xún)子表任務(wù)表,確定是否有待處理子數(shù)據(jù)任務(wù),并取得待處理的子表任務(wù),加載初始化當(dāng)前子表任務(wù)對(duì)應(yīng)的結(jié)轉(zhuǎn)任務(wù)配置信息,并構(gòu)造初始化結(jié)轉(zhuǎn)處理器進(jìn)行處理,具體數(shù)據(jù)結(jié)轉(zhuǎn)處理邏輯與分片任務(wù)執(zhí)行邏輯基本相同,不再重復(fù)說(shuō)明。子表任務(wù)根據(jù)情況也會(huì)再次生成關(guān)聯(lián)數(shù)據(jù)表的子表任務(wù)。[0124]本發(fā)明通過(guò)進(jìn)行一系列的規(guī)則配置,設(shè)定了周期性數(shù)據(jù)結(jié)轉(zhuǎn)規(guī)則,通過(guò)解析規(guī)則可以動(dòng)態(tài)實(shí)現(xiàn)數(shù)據(jù)結(jié)轉(zhuǎn)。在新增結(jié)轉(zhuǎn)任務(wù)時(shí),不需要對(duì)本系統(tǒng)重新開(kāi)發(fā)或做大的修改,只需要通過(guò)配置規(guī)則即可實(shí)現(xiàn),因而極大地提高了開(kāi)發(fā)人員的效率,減低了應(yīng)用系統(tǒng)開(kāi)發(fā)維護(hù)的成本。[0125]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以有各種改動(dòng)和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)?!局鳈?quán)項(xiàng)】1.一種數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,包括以下步驟:配置數(shù)據(jù)結(jié)轉(zhuǎn)信息,包括調(diào)度任務(wù)配置信息、數(shù)據(jù)源配置信息、結(jié)轉(zhuǎn)任務(wù)配置信息和批次結(jié)轉(zhuǎn)任務(wù)配置信息;根據(jù)所述調(diào)度任務(wù)配置信息及相關(guān)的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,生成對(duì)應(yīng)的采集任務(wù);執(zhí)行所述采集任務(wù),根據(jù)所述采集任務(wù)中的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)源數(shù)據(jù),生成多個(gè)分片任務(wù);和并行執(zhí)行所述多個(gè)分片任務(wù),按照結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,將待結(jié)轉(zhuǎn)數(shù)據(jù)從源數(shù)據(jù)庫(kù)結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)庫(kù)。2.如權(quán)利要求1所述的數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,從源數(shù)據(jù)源中抓取的待結(jié)轉(zhuǎn)源數(shù)據(jù)為主鍵數(shù)據(jù);在生成多個(gè)分片任務(wù)后,將每一個(gè)分片任務(wù)的主鍵數(shù)據(jù)寫(xiě)入采集數(shù)據(jù)表中。3.如權(quán)利要求2所述的數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,執(zhí)行所述分片任務(wù),按照結(jié)轉(zhuǎn)任務(wù)配置信息,將結(jié)轉(zhuǎn)數(shù)據(jù)從源數(shù)據(jù)庫(kù)結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)庫(kù)具體包括如下步驟:從所述采集數(shù)據(jù)表中讀取所述分片任務(wù)的數(shù)據(jù)列表,獲取相應(yīng)的多個(gè)主鍵數(shù)據(jù);加載所述結(jié)轉(zhuǎn)任務(wù)配置信息,獲取數(shù)據(jù)庫(kù)信息及與所述分片任務(wù)對(duì)應(yīng)的數(shù)據(jù)表信息;從源數(shù)據(jù)庫(kù)中的源數(shù)據(jù)源中依次獲取與所述主鍵數(shù)據(jù)對(duì)應(yīng)的源數(shù)據(jù),并將所述源數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)庫(kù)中;和從所述源數(shù)據(jù)庫(kù)中刪除所述源數(shù)據(jù)。4.如權(quán)利要求3所述的數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,如果所述分片任務(wù)為批次結(jié)轉(zhuǎn)任務(wù)時(shí),在將每一主鍵數(shù)據(jù)對(duì)應(yīng)的源數(shù)據(jù)成功結(jié)轉(zhuǎn)到目標(biāo)數(shù)庫(kù)中后,還包括:根據(jù)批次結(jié)轉(zhuǎn)任務(wù)配置信息中的關(guān)聯(lián)規(guī)則,生成對(duì)應(yīng)的子表任務(wù)。5.如權(quán)利要求4所述的數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,還包括多個(gè)子表任務(wù)并行執(zhí)行的步驟。6.如權(quán)利要求4或5所述的數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,在將所述源數(shù)據(jù)寫(xiě)入目標(biāo)數(shù)據(jù)庫(kù)中之前,還包括:根據(jù)配置信息,構(gòu)建由源數(shù)據(jù)到目標(biāo)數(shù)據(jù)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換、字段映射、目標(biāo)數(shù)據(jù)庫(kù)寫(xiě)入字段及值。7.如權(quán)利要求1所述的數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,根據(jù)數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)源數(shù)據(jù)包括以下步驟:根據(jù)數(shù)據(jù)源配置信息中的數(shù)據(jù)庫(kù)信息創(chuàng)建數(shù)據(jù)庫(kù)訪問(wèn)連接,并連接到所述數(shù)據(jù)庫(kù);根據(jù)結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息獲取源數(shù)據(jù)源和數(shù)據(jù)篩選規(guī)則,從所述源數(shù)據(jù)源中抓取符合所述數(shù)據(jù)篩選規(guī)則的待結(jié)轉(zhuǎn)源數(shù)據(jù)。8.如權(quán)利要求1所述的數(shù)據(jù)結(jié)轉(zhuǎn)方法,其中,在配置調(diào)度任務(wù)配置信息時(shí),建立所述調(diào)度任務(wù)配置信息與相應(yīng)的結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息的關(guān)聯(lián)。9.一種數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,包括:配置模塊,用于配置數(shù)據(jù)結(jié)轉(zhuǎn)信息,包括數(shù)據(jù)源配置信息、調(diào)度任務(wù)配置信息、結(jié)轉(zhuǎn)任務(wù)配置信息和批次結(jié)轉(zhuǎn)任務(wù)配置信息;調(diào)度引擎,與所述配置模塊相連接,用于根據(jù)相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息,通過(guò)發(fā)送觸發(fā)信息控制數(shù)據(jù)的采集及結(jié)轉(zhuǎn);數(shù)據(jù)采集模塊,與所述配置模塊和所述調(diào)度引擎相連接,用于根據(jù)所述調(diào)度任務(wù)配置信息生成對(duì)應(yīng)的采集任務(wù),根據(jù)所述調(diào)度引擎的觸發(fā)信息和數(shù)據(jù)源配置信息,執(zhí)行所述采集任務(wù),生成多個(gè)分片任務(wù),并將所述多個(gè)分片任務(wù)注冊(cè)到所述調(diào)度引擎;和執(zhí)行引擎,與所述配置模塊和所述調(diào)度引擎相連接,用于根據(jù)所述調(diào)度引擎的觸發(fā)信息執(zhí)行相應(yīng)的分片任務(wù)或子表任務(wù),按照相應(yīng)的結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,將待結(jié)轉(zhuǎn)源數(shù)據(jù)從源數(shù)據(jù)庫(kù)結(jié)轉(zhuǎn)到目標(biāo)數(shù)據(jù)庫(kù)。10.如權(quán)利要求9所述的數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,還包括數(shù)據(jù)接口,分別與所述數(shù)據(jù)采集模塊和所述執(zhí)行引擎相連接,用于提供所述數(shù)據(jù)采集模塊與數(shù)據(jù)庫(kù)之間、所述執(zhí)行引擎與數(shù)據(jù)庫(kù)之間的數(shù)據(jù)操作處理。11.如權(quán)利要求9或10所述的數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,所述配置模塊包括:數(shù)據(jù)源配置單元,用于配置源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的相關(guān)信息;結(jié)轉(zhuǎn)任務(wù)配置單元,用于配置結(jié)轉(zhuǎn)任務(wù)需要結(jié)轉(zhuǎn)的數(shù)據(jù)表信息;批次結(jié)轉(zhuǎn)任務(wù)配置單元,用于配置批次結(jié)轉(zhuǎn)任務(wù)中多個(gè)相互關(guān)聯(lián)的數(shù)據(jù)表的結(jié)轉(zhuǎn)任務(wù)關(guān)聯(lián)息;和調(diào)度任務(wù)配置單元,用于配置調(diào)度任務(wù)策略信息,并將所述調(diào)度任務(wù)和結(jié)轉(zhuǎn)任務(wù)或批次結(jié)轉(zhuǎn)任務(wù)建立關(guān)聯(lián)。12.如權(quán)利要求9或10所述的數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,所述調(diào)度引擎包括:任務(wù)注冊(cè)單元,分別與所述數(shù)據(jù)采集模塊和所述執(zhí)行引擎相連接,用于接收所述數(shù)據(jù)采集模塊生成的采集任務(wù)和分片任務(wù)及所述執(zhí)行引擎生成的子表任務(wù);和任務(wù)觸發(fā)單元,分別與所述任務(wù)注冊(cè)單元、所述配置模塊、所述數(shù)據(jù)采集模塊和所述執(zhí)行引擎相連接,根據(jù)相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息及任務(wù)注冊(cè)單元接收的分片任務(wù)和子表任務(wù),向所述數(shù)據(jù)采集模塊和/或所述執(zhí)行引擎發(fā)送觸發(fā)信息。13.如權(quán)利要求9或10所述的數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,所述數(shù)據(jù)采集模塊包括:采集任務(wù)生成單元,與所述配置模塊相連接,根據(jù)所述調(diào)度任務(wù)配置信息及相關(guān)的數(shù)據(jù)源配置信息和結(jié)轉(zhuǎn)任務(wù)配置信息或批次結(jié)轉(zhuǎn)任務(wù)配置信息,生成采集任務(wù);數(shù)據(jù)抓取單元,與所述調(diào)度引擎相連接,用于根據(jù)所述調(diào)度引擎的觸發(fā)信息執(zhí)行相應(yīng)的采集任務(wù),從源數(shù)據(jù)源中抓取待結(jié)轉(zhuǎn)數(shù)據(jù)的主鍵數(shù)據(jù);和分片任務(wù)創(chuàng)建單元,與所述數(shù)據(jù)抓取單元相連接,用于根據(jù)抓取的待結(jié)轉(zhuǎn)數(shù)據(jù)的主鍵數(shù)據(jù),創(chuàng)建多個(gè)分片任務(wù),并將所述多個(gè)分片任務(wù)注冊(cè)到所述調(diào)度引擎。14.如權(quán)利要求9所述的數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,所述執(zhí)行引擎包括:任務(wù)接收單元,與所述的調(diào)度引擎相連接,用于根據(jù)所述調(diào)度引擎發(fā)送來(lái)的觸發(fā)信息,獲得具體的任務(wù)ig息;配置信息加載單元,分別與所述任務(wù)接收單元和所述配置模塊相連接,用于根據(jù)所述任務(wù)接收單元接收的任務(wù)信息,從所述配置模塊獲取相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息;和數(shù)據(jù)迀移處理單元,分別與所述配置信息加載單元和任務(wù)接收單元相連接,用于根據(jù)所述相應(yīng)的數(shù)據(jù)結(jié)轉(zhuǎn)信息和所述任務(wù)信息,將源數(shù)據(jù)庫(kù)中對(duì)應(yīng)的源數(shù)據(jù)迀移到目標(biāo)數(shù)據(jù)庫(kù),并將所述源數(shù)據(jù)從源數(shù)據(jù)庫(kù)中刪除。15.如權(quán)利要求14所述的數(shù)據(jù)結(jié)轉(zhuǎn)系統(tǒng),其中,所述執(zhí)行引擎還包括:子表任務(wù)創(chuàng)建單元,與所述數(shù)據(jù)迀移處理單元相連接,用于在所述數(shù)據(jù)迀移處理單元將源數(shù)據(jù)成功結(jié)轉(zhuǎn)到目標(biāo)數(shù)庫(kù)中后,根據(jù)批次結(jié)轉(zhuǎn)任務(wù)配置信息中的關(guān)聯(lián)規(guī)則,創(chuàng)建相應(yīng)的子表任務(wù),并將所述子表任務(wù)注冊(cè)到所述調(diào)度引擎;所述執(zhí)行引擎的任務(wù)接收單元得到的所述任務(wù)信息包括分片任務(wù)信息和子表任務(wù)信息?!疚臋n編號(hào)】G06F17/30GK105930389SQ201610232604【公開(kāi)日】2016年9月7日【申請(qǐng)日】2016年4月14日【發(fā)明人】王新武【申請(qǐng)人】北京京東尚科信息技術(shù)有限公司,北京京東世紀(jì)貿(mào)易有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
临桂县| 霍州市| 大方县| 宁远县| 瓮安县| 平利县| 马鞍山市| 兰州市| 海林市| 博罗县| 江陵县| 大关县| 都安| 米林县| 西安市| 广水市| 宜兴市| 富川| 清流县| 青河县| 平昌县| 舒兰市| 崇左市| 阜阳市| 琼海市| 宜章县| 高陵县| 喜德县| 安乡县| 高淳县| 丹棱县| 白银市| 新绛县| 华阴市| 石门县| 乐山市| 霸州市| 通州市| 黑河市| 枣强县| 建水县|