本發(fā)明涉及異構(gòu)數(shù)據(jù)處理領(lǐng)域,具體涉及云環(huán)境中異構(gòu)數(shù)據(jù)的共享、交換與集成技術(shù)。本發(fā)明基于數(shù)據(jù)交換模型實(shí)現(xiàn)交換數(shù)據(jù)在異構(gòu)數(shù)據(jù)庫(kù)和應(yīng)用系統(tǒng)中的數(shù)據(jù)交換,通過(guò)數(shù)據(jù)交換模型對(duì)不同的數(shù)據(jù)源進(jìn)行統(tǒng)一存儲(chǔ)管理,并結(jié)合數(shù)據(jù)倉(cāng)庫(kù),為用戶(hù)提供統(tǒng)計(jì)、分析等服務(wù)。通過(guò)本發(fā)明所提出的云環(huán)境中數(shù)據(jù)交換與共享方法及系統(tǒng)可以為用戶(hù)屏蔽底層不同的數(shù)據(jù)源,從而使使用不同數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)之間能共享、交換數(shù)據(jù)和信息。
背景技術(shù):
::近年來(lái),隨著信息技術(shù)的深入發(fā)展,數(shù)據(jù)模型和各業(yè)務(wù)流程不斷完善,出現(xiàn)了大量的不同類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng),比如關(guān)系數(shù)據(jù)庫(kù)、NoSQL數(shù)據(jù)庫(kù)和JSON數(shù)據(jù)庫(kù)等。這些數(shù)據(jù)庫(kù)系統(tǒng)不僅軟硬件平臺(tái)各異,不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)方式也來(lái)自不同的數(shù)據(jù)庫(kù)模型而各不相同,不同數(shù)據(jù)庫(kù)中有相同語(yǔ)義的對(duì)象可能具有不同的名稱(chēng),而且這些對(duì)象可能由不同的單位進(jìn)行度量,致使相互的異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)之間不能進(jìn)行共享,使得各個(gè)數(shù)據(jù)庫(kù)系統(tǒng)之間的交互變得越來(lái)越復(fù)雜和困難,大大降低了數(shù)據(jù)的利用價(jià)值。在數(shù)據(jù)聯(lián)通方面,典型問(wèn)題就是“信息孤島”的出現(xiàn)。各個(gè)信息化系統(tǒng)各自為戰(zhàn),各自擁有自己的數(shù)據(jù)存儲(chǔ)模式,各自擁有自己的系統(tǒng)架構(gòu),這對(duì)企業(yè)各個(gè)部門(mén)之間、各個(gè)企業(yè)之間進(jìn)行數(shù)據(jù)交換形成了巨大的障礙。同時(shí),這種“信息孤島”往往伴隨著系統(tǒng)耦合性高的問(wèn)題,這又造成了系統(tǒng)可改造性能低,既不便于自己業(yè)務(wù)的拓展,也不利于引入第三方服務(wù),不能快速的適應(yīng)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,逐漸造成了自我封閉的困境。數(shù)據(jù)交換的目的就是消除這種信息孤島,為用戶(hù)提供一個(gè)統(tǒng)一的查詢(xún)接口,屏蔽底層數(shù)據(jù)源的不同,使得用戶(hù)不必再考慮底層數(shù)據(jù)源的數(shù)據(jù)模型、物理位置和語(yǔ)義異構(gòu)等問(wèn)題,將多個(gè)分布、異構(gòu)數(shù)據(jù)源集成在一起,從而使這些使用不同數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)之間能共享、交換數(shù)據(jù)和信息,形成一個(gè)虛擬的、統(tǒng)一的系統(tǒng)。目前針對(duì)數(shù)據(jù)交換的需求,比較成型的解決辦法主要有兩種:一種是傳統(tǒng)的EDI(ElectronicDataInterchange)技術(shù),也就是所謂的電子數(shù)據(jù)交換技術(shù),將數(shù)據(jù)標(biāo)準(zhǔn)化和格式化,并通過(guò)計(jì)算機(jī)網(wǎng)絡(luò),在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)之間進(jìn)行數(shù)據(jù)交換和自動(dòng)處理。EDI發(fā)送方取出要發(fā)送的數(shù)據(jù)轉(zhuǎn)換成平面文件,然后將平面文件翻譯為統(tǒng)一標(biāo)準(zhǔn)EDI報(bào)文并組成EDI信件,發(fā)送給接收方,接收方收到后將信件拆開(kāi)并翻譯為平面文件,轉(zhuǎn)換并送到應(yīng)用系統(tǒng)中進(jìn)行處理。由于EDI是采用統(tǒng)一標(biāo)準(zhǔn)編制數(shù)據(jù)信息的,數(shù)據(jù)交換必須按規(guī)定程式進(jìn)行,一旦目的端變了,就要做出新規(guī)定,缺少擴(kuò)充性,無(wú)法滿(mǎn)足業(yè)務(wù)系統(tǒng)中不同異構(gòu)數(shù)據(jù)源進(jìn)行數(shù)據(jù)交換的需求。另一種為建立數(shù)據(jù)倉(cāng)庫(kù),其用于交換和處理數(shù)據(jù)的技術(shù)大致有三種。其一,最常用的方法就是ETL(Extract-Transform-Load),通過(guò)ETL技術(shù),將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時(shí)中間層后經(jīng)過(guò)清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)集市中,即從數(shù)據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過(guò)數(shù)據(jù)清洗并轉(zhuǎn)換為一個(gè)標(biāo)準(zhǔn)的格式,最終按照預(yù)先定義好的數(shù)據(jù)倉(cāng)庫(kù)模型將數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)中去,從而實(shí)現(xiàn)數(shù)據(jù)在系統(tǒng)間的轉(zhuǎn)移;在這個(gè)過(guò)程中還可對(duì)數(shù)據(jù)順帶做一些修改,使其滿(mǎn)足條件,最后完成整個(gè)數(shù)據(jù)交換工作。在傳統(tǒng)行業(yè)的數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目中,大多會(huì)采用一些現(xiàn)成的ETL工具,如Informatica、Datastage、微軟SSIS等,但專(zhuān)業(yè)的ETL廠(chǎng)商的產(chǎn)品(Informatica等)往往功能復(fù)雜配置繁瑣,其高昂的價(jià)格也會(huì)使一般用戶(hù)望而卻步,而整體數(shù)據(jù)倉(cāng)庫(kù)方案供應(yīng)商或數(shù)據(jù)庫(kù)提供商(OracleWarehouseBuilder等)提供的相應(yīng)的ETL工具僅對(duì)自己廠(chǎng)商的相關(guān)產(chǎn)品有很好的支持并能發(fā)揮出最大效率,但其結(jié)構(gòu)相對(duì)封閉,無(wú)法支持多個(gè)異構(gòu)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行數(shù)據(jù)交換。目前國(guó)內(nèi)同類(lèi)軟件開(kāi)發(fā)相對(duì)落后,較成熟的異構(gòu)數(shù)據(jù)轉(zhuǎn)換產(chǎn)品非常少,軟件的可操作性較差,在功能、性能上都不夠理想。其二,另外一個(gè)流行的方法就是ELT(Extract-Load-Transform),與ETL不同的是,數(shù)據(jù)從數(shù)據(jù)源中的數(shù)據(jù)庫(kù)被抽取出來(lái)后,裝入暫存區(qū)并進(jìn)行清洗和優(yōu)化,而在數(shù)據(jù)倉(cāng)庫(kù)中則進(jìn)行和數(shù)據(jù)交換與集成有關(guān)的純粹的轉(zhuǎn)換,但該方法僅適用于數(shù)據(jù)比較靈巧、結(jié)構(gòu)化非常好以及數(shù)據(jù)量非常小的場(chǎng)合。其三,CDC(ChangeDataCapture)即增量數(shù)據(jù)采集技術(shù),在源系統(tǒng)上安裝一個(gè)第三方應(yīng)用程序從數(shù)據(jù)庫(kù)日志中提取數(shù)據(jù)來(lái)收集數(shù)據(jù)的變化,將增量數(shù)據(jù)從數(shù)據(jù)源中抽取出來(lái),并傳送到數(shù)據(jù)倉(cāng)庫(kù)中。在目標(biāo)端,安裝同樣的第三方應(yīng)用系統(tǒng),用于處理每個(gè)抽取過(guò)來(lái)的數(shù)據(jù),并裝入數(shù)據(jù)倉(cāng)庫(kù)的暫存區(qū),然后對(duì)數(shù)據(jù)進(jìn)行清洗、優(yōu)化并轉(zhuǎn)換到其在數(shù)據(jù)倉(cāng)庫(kù)中的最終目的地。此種方法適用于需要以近乎實(shí)時(shí)的方式處理數(shù)據(jù)、數(shù)據(jù)的可用性非常關(guān)鍵的場(chǎng)合,但此種方法關(guān)注于動(dòng)態(tài)變化的增量數(shù)據(jù),不能適用于全量數(shù)據(jù)。所以,需要一種異構(gòu)數(shù)據(jù)間進(jìn)行交換和集成的方法,該方法既可以滿(mǎn)足用戶(hù)對(duì)種類(lèi)繁多的異構(gòu)數(shù)據(jù)源進(jìn)行整合的需求,進(jìn)而使它們成為對(duì)聯(lián)機(jī)分析系統(tǒng)和數(shù)據(jù)挖掘等決策分析有用的數(shù)據(jù),又可以通過(guò)全量/增量方式進(jìn)行數(shù)據(jù)的后期更新。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是針對(duì)現(xiàn)有異構(gòu)數(shù)據(jù)源之間數(shù)據(jù)交換和集成困難的問(wèn)題,提供一種云環(huán)境中數(shù)據(jù)交換與共享方法。本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案為:一種云環(huán)境中數(shù)據(jù)交換與共享方法,其步驟包括:1)在前置區(qū)部署交換數(shù)據(jù)庫(kù)和數(shù)據(jù)交換模塊,在后臺(tái)部署數(shù)據(jù)接入與認(rèn)證管理模塊、數(shù)據(jù)倉(cāng)庫(kù)管理模塊、中間數(shù)據(jù)庫(kù)、以及數(shù)據(jù)倉(cāng)庫(kù);2)建立數(shù)據(jù)交換模型,該數(shù)據(jù)交換模型定義交換數(shù)據(jù)庫(kù)與中間數(shù)據(jù)庫(kù)中的各個(gè)數(shù)據(jù)庫(kù)、數(shù)據(jù)表、數(shù)據(jù)項(xiàng)以及數(shù)據(jù)相互之間的對(duì)應(yīng)關(guān)系;3)通過(guò)前置區(qū)的數(shù)據(jù)交換模塊管理交換數(shù)據(jù)庫(kù),通過(guò)交換數(shù)據(jù)庫(kù)從數(shù)據(jù)源接收采集的數(shù)據(jù),數(shù)據(jù)交換模塊依據(jù)數(shù)據(jù)交換模型中的數(shù)據(jù)轉(zhuǎn)換規(guī)則進(jìn)行數(shù)據(jù)轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)推送給后臺(tái)的數(shù)據(jù)接入與認(rèn)證管理模塊;4)后臺(tái)的數(shù)據(jù)接入與認(rèn)證管理模塊對(duì)接收到的數(shù)據(jù)進(jìn)行認(rèn)證和校驗(yàn),然后將數(shù)據(jù)寫(xiě)入中間數(shù)據(jù)庫(kù);5)后臺(tái)的數(shù)據(jù)倉(cāng)庫(kù)管理模塊根據(jù)管理制度,以特定的時(shí)間周期從中間數(shù)據(jù)庫(kù)中提取數(shù)據(jù)進(jìn)行處理、統(tǒng)計(jì)與分析,將所得結(jié)果作為數(shù)據(jù)產(chǎn)品存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中。一種云環(huán)境中異構(gòu)數(shù)據(jù)交換與共享系統(tǒng),該系統(tǒng)包括:數(shù)據(jù)源、前置區(qū)、后臺(tái),該前置區(qū)包括數(shù)據(jù)交換模塊、交換數(shù)據(jù)庫(kù),該后臺(tái)包括數(shù)據(jù)接入與認(rèn)證管理模塊、數(shù)據(jù)倉(cāng)庫(kù)管理模塊、輔助服務(wù)模塊以及中間數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)、備份數(shù)據(jù)庫(kù),其中:所述數(shù)據(jù)交換模塊在交換端的前置區(qū)中值守交換數(shù)據(jù)庫(kù),交換端的采集方根據(jù)管理要求采集數(shù)據(jù)后將其提取、推送到交換數(shù)據(jù)庫(kù)中。而后給數(shù)據(jù)交換模塊發(fā)送消息,提交數(shù)據(jù)交換請(qǐng)求,完成數(shù)據(jù)的提交與交換過(guò)程。所述“交換端”是指與其他采集系統(tǒng)進(jìn)行交互的部分;“值守”是指數(shù)據(jù)交換模塊按照預(yù)定的時(shí)間,周期性地從交換數(shù)據(jù)庫(kù)中提取最新數(shù)據(jù),并將其發(fā)送給數(shù)據(jù)接入與認(rèn)證管理模塊;“交換端的采集方”是指采集交換數(shù)據(jù)的線(xiàn)程,通過(guò)其定義的數(shù)據(jù)采集接口采集到數(shù)據(jù)后推送到本系統(tǒng)的交換數(shù)據(jù)庫(kù)中。所述數(shù)據(jù)接入與認(rèn)證管理模塊中包括一個(gè)數(shù)據(jù)接入與認(rèn)證服務(wù)器,用來(lái)與前置區(qū)進(jìn)行通信與數(shù)據(jù)交換,前置區(qū)數(shù)據(jù)交換到系統(tǒng)中后,根據(jù)當(dāng)前數(shù)據(jù)包的標(biāo)簽對(duì)數(shù)據(jù)源的標(biāo)簽信息進(jìn)行認(rèn)證,完成認(rèn)證后,將數(shù)據(jù)解密。同時(shí),根據(jù)數(shù)據(jù)標(biāo)準(zhǔn)對(duì)其中的數(shù)據(jù)進(jìn)行校驗(yàn),完成這一工作后,將數(shù)據(jù)寫(xiě)入中間數(shù)據(jù)庫(kù)中,完成數(shù)據(jù)交換的基本步驟。所述數(shù)據(jù)倉(cāng)庫(kù)管理模塊用于在數(shù)據(jù)增量過(guò)程中,根據(jù)管理制度以特定的時(shí)間周期,對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的信息進(jìn)行迭代。所述輔助服務(wù)模塊為系統(tǒng)的正常運(yùn)轉(zhuǎn)提供數(shù)據(jù)備份、大數(shù)據(jù)處理分析以及數(shù)據(jù)加密解密等服務(wù)服務(wù)。在前置區(qū)中,數(shù)據(jù)源在增量過(guò)程中將數(shù)據(jù)推送到交換數(shù)據(jù)庫(kù)中,而后將推送結(jié)果信息提交給數(shù)據(jù)交換模塊。數(shù)據(jù)交換模塊接收到這一信息后,根據(jù)基線(xiàn)與數(shù)據(jù)源身份從交換數(shù)據(jù)庫(kù)中提取對(duì)應(yīng)的數(shù)據(jù)集加密封裝后,填寫(xiě)標(biāo)簽,而后將數(shù)據(jù)向后臺(tái)轉(zhuǎn)發(fā)。數(shù)據(jù)在每個(gè)特定的時(shí)間段都需要標(biāo)識(shí)出一個(gè)數(shù)據(jù)版本,其中的“基線(xiàn)”即是用來(lái)標(biāo)識(shí)時(shí)間段的信息。在后臺(tái)中,后臺(tái)的數(shù)據(jù)接入與認(rèn)證管理模塊接收到前置區(qū)的數(shù)據(jù)轉(zhuǎn)發(fā)請(qǐng)求后,接收數(shù)據(jù)包,根據(jù)數(shù)據(jù)包的標(biāo)簽內(nèi)容首先進(jìn)行數(shù)據(jù)包的認(rèn)證。完成這一工作后,將數(shù)據(jù)進(jìn)行校驗(yàn),通過(guò)校驗(yàn)的數(shù)據(jù)寫(xiě)入中間數(shù)據(jù)庫(kù)中,在寫(xiě)入過(guò)程中將數(shù)據(jù)源與基線(xiàn)信息與原始數(shù)據(jù)一并寫(xiě)入。另一方面,數(shù)據(jù)倉(cāng)庫(kù)管理模塊根據(jù)管理制度,定期從中間數(shù)據(jù)庫(kù)中提取數(shù)據(jù)進(jìn)行處理、統(tǒng)計(jì)與分析。在這一過(guò)程中根據(jù)系統(tǒng)配置的統(tǒng)計(jì)量進(jìn)行計(jì)算,計(jì)算的結(jié)果作為數(shù)據(jù)產(chǎn)品存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中,輔助服務(wù)模塊面向不同環(huán)節(jié)提供大數(shù)據(jù)并行集群基本處理、數(shù)據(jù)加密解密以及數(shù)據(jù)備份的支撐服務(wù)。本發(fā)明的有益效果如下:本發(fā)明采用http協(xié)議通過(guò)Web服務(wù)調(diào)用的方式完成不同安全域下的應(yīng)用系統(tǒng)之間的數(shù)據(jù)交換,具有容錯(cuò)處理機(jī)制,可以為行業(yè)應(yīng)用系統(tǒng)以及各數(shù)據(jù)庫(kù)系統(tǒng)中提供一種低耦合的、穩(wěn)定安全的數(shù)據(jù)交換與集成方案,解決當(dāng)前信息集成領(lǐng)域需要對(duì)數(shù)據(jù)交換集成功能進(jìn)行重復(fù)開(kāi)發(fā),以及現(xiàn)有數(shù)據(jù)交換與集成方法不能滿(mǎn)足各種應(yīng)用場(chǎng)景下的信息領(lǐng)域需求、與應(yīng)用系統(tǒng)耦合度高可擴(kuò)展性差的問(wèn)題,降低數(shù)據(jù)交換和維護(hù)成本,保證數(shù)據(jù)庫(kù)的安全性和正確性,避免了重復(fù)建設(shè)和資源浪費(fèi)。附圖說(shuō)明圖1是實(shí)施例提供的系統(tǒng)架構(gòu)示意圖;圖2是實(shí)施例提供的系統(tǒng)基本組織關(guān)系示意圖;圖3是總體數(shù)據(jù)交換執(zhí)行流程示意圖;圖4是后臺(tái)中間數(shù)據(jù)庫(kù)的完整寫(xiě)入執(zhí)行流程示意圖;圖5是后臺(tái)數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品加工的完整執(zhí)行流程示意圖;圖6是數(shù)據(jù)產(chǎn)品加工過(guò)程中大數(shù)據(jù)處理執(zhí)行流程示意圖。具體實(shí)施方式下面通過(guò)具體實(shí)施例和附圖,對(duì)本發(fā)明做進(jìn)一步說(shuō)明。針對(duì)大型分布式信息系統(tǒng)數(shù)據(jù)交換與集成的需求,本發(fā)明提出一種云環(huán)境中數(shù)據(jù)交換與共享方法以及應(yīng)用該方法的系統(tǒng)。這一方法在日常采集、交換的基礎(chǔ)上,結(jié)合離線(xiàn)數(shù)據(jù)倉(cāng)庫(kù)與實(shí)時(shí)在線(xiàn)分析的手段,為不同用戶(hù)提供行業(yè)信息統(tǒng)計(jì)、分析與輔助決策的服務(wù)。圖1中展示了這一系統(tǒng)的整體架構(gòu)方案,包括前置接入層、中間數(shù)據(jù)層和數(shù)據(jù)產(chǎn)品層。圖2中展示了這一系統(tǒng)的基本組織關(guān)系,包括數(shù)據(jù)源、前置區(qū)、后臺(tái),其中前置區(qū)包括數(shù)據(jù)交換模塊、交換數(shù)據(jù)庫(kù),后臺(tái)包括數(shù)據(jù)接入與認(rèn)證管理模塊、數(shù)據(jù)倉(cāng)庫(kù)管理模塊、輔助服務(wù)模塊以及中間數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)等。所述數(shù)據(jù)交換模塊在交換端的前置區(qū)中值守交換數(shù)據(jù)庫(kù),交換端的數(shù)據(jù)源根據(jù)管理要求采集數(shù)據(jù)后將其提取、推送到交換數(shù)據(jù)庫(kù)中,而后將交換請(qǐng)求提交給交換值守,完成數(shù)據(jù)的提交與交換過(guò)程,主要包括數(shù)據(jù)交換信息接口、交換數(shù)據(jù)庫(kù)管理、數(shù)據(jù)交換任務(wù)組織、交換數(shù)據(jù)提取轉(zhuǎn)換與傳輸?shù)裙δ?。所述?shù)據(jù)接入與認(rèn)證管理模塊根據(jù)當(dāng)前數(shù)據(jù)包的標(biāo)簽對(duì)交換源的標(biāo)簽信息進(jìn)行認(rèn)證,完成認(rèn)證后,將數(shù)據(jù)解密。同時(shí),根據(jù)數(shù)據(jù)標(biāo)準(zhǔn)對(duì)其中的數(shù)據(jù)進(jìn)行校驗(yàn),并將數(shù)據(jù)寫(xiě)入中間庫(kù)中,完成數(shù)據(jù)交換的基本步驟,主要包括數(shù)據(jù)接入認(rèn)證、數(shù)據(jù)預(yù)處理、中間庫(kù)管理、數(shù)據(jù)基線(xiàn)編碼管理等功能。所述數(shù)據(jù)倉(cāng)庫(kù)管理模塊根據(jù)上層數(shù)據(jù)服務(wù)的分析模型構(gòu)造對(duì)應(yīng)的統(tǒng)計(jì)量與存儲(chǔ)模型。在數(shù)據(jù)增量過(guò)程中,根據(jù)管理制度以特定的時(shí)間周期,對(duì)倉(cāng)庫(kù)中的信息進(jìn)行迭代,主要完成數(shù)據(jù)倉(cāng)庫(kù)與統(tǒng)計(jì)量配置、數(shù)據(jù)統(tǒng)計(jì)任務(wù)執(zhí)行、數(shù)據(jù)倉(cāng)庫(kù)吞吐管理等。1.數(shù)據(jù)交換模型數(shù)據(jù)交換模型,是數(shù)據(jù)交換的重要依據(jù),定義了在交換數(shù)據(jù)庫(kù)與中間數(shù)據(jù)庫(kù)中,其各個(gè)數(shù)據(jù)庫(kù)、數(shù)據(jù)表、數(shù)據(jù)項(xiàng)以及數(shù)據(jù)相互之間的對(duì)應(yīng)關(guān)系,采用分層定義的方法,將其定義為一個(gè)兩元組:dbExchangeModel={(modelname,dbRelationModel,time)i|i=0,1,...,n}其中,modelname表示該模型的唯一標(biāo)識(shí),dbRelationModel為交換的數(shù)據(jù)庫(kù)之間相關(guān)內(nèi)容的對(duì)應(yīng)關(guān)系模型,time記錄該模型創(chuàng)建以及修改的時(shí)間。在一個(gè)中間數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)交換模型為一個(gè)模型集合,可以有多個(gè)數(shù)據(jù)交換模型對(duì)象,用來(lái)定義不同的其他數(shù)據(jù)庫(kù)應(yīng)用與中間數(shù)據(jù)庫(kù)系統(tǒng)之間數(shù)據(jù)的交換規(guī)則。進(jìn)一步,將dbRelationModel定義為如下一個(gè)三元組:dbRelationModel=(dbname,jsondbname,tableSet)其中,dbname表示交換數(shù)據(jù)庫(kù)在與中間數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)庫(kù)名稱(chēng),jsondbname表示數(shù)據(jù)交換時(shí)存儲(chǔ)在中間數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)名稱(chēng),tableSet={tablej|j=0,1,...,m}是在交換數(shù)據(jù)庫(kù)中要進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)表模型對(duì)象組成的集合,數(shù)據(jù)表模型table規(guī)定不同數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)交換時(shí)數(shù)據(jù)表之間對(duì)應(yīng)關(guān)系的規(guī)則,定義如下:table=(tablename,tablealias,type,primaryKey,columnSet)其中,tablename表示交換數(shù)據(jù)庫(kù)中數(shù)據(jù)表的名稱(chēng),tablealias為該數(shù)據(jù)表交換到中間數(shù)據(jù)庫(kù)后的數(shù)據(jù)表名稱(chēng);type定義該數(shù)據(jù)表在數(shù)據(jù)交換過(guò)程中的交換模式,包括全量交換ALL和增量交換INCRE;primaryKey標(biāo)記該數(shù)據(jù)表中的主鍵集合,當(dāng)只有一個(gè)主鍵時(shí),集合內(nèi)只有一個(gè)值,主鍵集合中的每一個(gè)主鍵值都在columnSet中有定義,即滿(mǎn)足columnSet={columnk|k=0,1,...,columnsN-1}是在交換數(shù)據(jù)庫(kù)中要進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)項(xiàng)模型對(duì)象組成的集合,其columnsN是數(shù)據(jù)表中要進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)項(xiàng)數(shù)量,數(shù)據(jù)項(xiàng)模型column定義了交換數(shù)據(jù)庫(kù)與中間數(shù)據(jù)庫(kù)中,數(shù)據(jù)項(xiàng)之間的交換規(guī)則。由于同一個(gè)數(shù)據(jù)項(xiàng)的不同數(shù)據(jù)之間還存在對(duì)應(yīng)關(guān)系,需要將數(shù)據(jù)項(xiàng)模型column再定義為一個(gè)三元組:column=(columnname,columnalias,datatype,dataRelationSet}其中,columnname為交換數(shù)據(jù)庫(kù)中該數(shù)據(jù)項(xiàng)的名稱(chēng),columnalias表示該數(shù)據(jù)表交換到中間數(shù)據(jù)庫(kù)后的數(shù)據(jù)項(xiàng)名稱(chēng),datatype規(guī)定該數(shù)據(jù)項(xiàng)的數(shù)據(jù)值屬性,規(guī)定為T(mén)EXT、NUMBER、DATE等,dataRelationSet={(prevalue1t,prevalue2t,postvalue1t,postvalue2t)|t=0,1,2,...}是在此數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)交換過(guò)程時(shí),交換數(shù)據(jù)庫(kù)與中間數(shù)據(jù)庫(kù)之間數(shù)據(jù)值的轉(zhuǎn)換關(guān)系集合,其中,prevalue1表示數(shù)值轉(zhuǎn)換時(shí)在交換數(shù)據(jù)庫(kù)中數(shù)值轉(zhuǎn)換區(qū)段的起始數(shù)值,prevalue2表示數(shù)值轉(zhuǎn)換時(shí)在交換數(shù)據(jù)庫(kù)中數(shù)值轉(zhuǎn)換區(qū)段的結(jié)束數(shù)值,postvalue1表示數(shù)值轉(zhuǎn)換時(shí)在中間數(shù)據(jù)庫(kù)中數(shù)值轉(zhuǎn)換區(qū)段的起始數(shù)值,postvalue2表示數(shù)值轉(zhuǎn)換時(shí)在中間數(shù)據(jù)庫(kù)中數(shù)值轉(zhuǎn)換區(qū)段的結(jié)束數(shù)值,t表示數(shù)值轉(zhuǎn)換區(qū)間段的序號(hào)。在表示TXT等非數(shù)值型數(shù)據(jù)、單個(gè)數(shù)值轉(zhuǎn)換映射時(shí),將postvalue1與postvalue2置為NULL即可。2.數(shù)據(jù)交換如圖所示,數(shù)據(jù)交換總體流程如圖3所示:1)在系統(tǒng)啟動(dòng)時(shí),后臺(tái)的數(shù)據(jù)接入與認(rèn)證服務(wù)器初始化AES密鑰key1、初始化RSA密鑰對(duì);2)數(shù)據(jù)源訪(fǎng)問(wèn)數(shù)據(jù)交換與集成系統(tǒng)接口請(qǐng)求進(jìn)行數(shù)據(jù)交換認(rèn)證;3)根據(jù)當(dāng)前數(shù)據(jù)包的標(biāo)簽對(duì)數(shù)據(jù)源的標(biāo)簽信息進(jìn)行認(rèn)證,若當(dāng)前數(shù)據(jù)源身份不合法,提示認(rèn)證失敗,流程結(jié)束;4)若當(dāng)前數(shù)據(jù)源身份合法,獲取當(dāng)前的基線(xiàn)信息,并返回給數(shù)據(jù)源身份認(rèn)證與基線(xiàn)信息;5)數(shù)據(jù)源將要寫(xiě)入的數(shù)據(jù)、認(rèn)證信息和基線(xiàn)信息寫(xiě)入到前置區(qū)交換數(shù)據(jù)庫(kù);6)數(shù)據(jù)寫(xiě)入完成后,數(shù)據(jù)源發(fā)送寫(xiě)入完成消息給數(shù)據(jù)交換與集成系統(tǒng),通知數(shù)據(jù)寫(xiě)入完成;7)數(shù)據(jù)交換與集成系統(tǒng)接收到數(shù)據(jù)源的消息后,從交換數(shù)據(jù)庫(kù)中提取與數(shù)據(jù)源對(duì)應(yīng)的基線(xiàn)數(shù)據(jù);8)前置區(qū)數(shù)據(jù)交換模塊初始化AES密鑰key2;9)后臺(tái)將RSA公鑰發(fā)送給前置區(qū);10)前置區(qū)使用RSA公鑰加密自己的AES密鑰key2,并發(fā)送給后臺(tái);11)后臺(tái)使用RSA私鑰解密AES密鑰key2,并加密自己的AES密鑰key1后發(fā)送給前置區(qū);12)前置區(qū)解密出AES密鑰key1;13)前置區(qū)與后臺(tái)都通過(guò)key1與key2組合出AES密鑰key;14)將當(dāng)前基線(xiàn)數(shù)據(jù)使用AES密鑰key進(jìn)行加密打包,并封裝對(duì)應(yīng)的數(shù)據(jù)源與基線(xiàn)標(biāo)簽以及數(shù)字簽名后,傳輸給后臺(tái)數(shù)據(jù)接入與認(rèn)證模塊;15)后臺(tái)數(shù)據(jù)接入與認(rèn)證模塊收到前置區(qū)傳送的數(shù)據(jù)后,根據(jù)數(shù)據(jù)包的標(biāo)簽內(nèi)容進(jìn)行數(shù)據(jù)包的認(rèn)證;16)后臺(tái)對(duì)接收到的數(shù)據(jù)進(jìn)行一致性校驗(yàn),通過(guò)校驗(yàn)的數(shù)據(jù)根據(jù)數(shù)據(jù)的增量模式進(jìn)行本地?cái)?shù)據(jù)合并與處理;17)后臺(tái)完成數(shù)據(jù)寫(xiě)入,返回寫(xiě)入結(jié)果信息;18)數(shù)據(jù)接入與認(rèn)證模塊返回給數(shù)據(jù)源數(shù)據(jù)寫(xiě)入結(jié)果信息;19)刪除源數(shù)據(jù)庫(kù)的基線(xiàn)數(shù)據(jù),并提示寫(xiě)入的結(jié)果錯(cuò)誤信息,流程結(jié)束。當(dāng)要交換的數(shù)據(jù)量大時(shí),根據(jù)數(shù)據(jù)庫(kù)以及數(shù)據(jù)表進(jìn)行分包發(fā)送,在數(shù)據(jù)包中,標(biāo)識(shí)分包的類(lèi)型以及發(fā)送是否結(jié)束并關(guān)閉連接等信息。3.后臺(tái)數(shù)據(jù)提交圖4展示了在后臺(tái)中間數(shù)據(jù)庫(kù)的完整寫(xiě)入執(zhí)行流程:1)后臺(tái)接收到前置區(qū)的數(shù)據(jù)交換請(qǐng)求后,解析數(shù)據(jù)包中的數(shù)據(jù)源與基線(xiàn)標(biāo)簽信息;2)根據(jù)標(biāo)簽內(nèi)容進(jìn)行數(shù)據(jù)源與基線(xiàn)信息的認(rèn)證,若認(rèn)證不通過(guò),提示認(rèn)證失敗,流程結(jié)束;3)若認(rèn)證通過(guò),對(duì)數(shù)據(jù)進(jìn)行解密,并對(duì)其分頁(yè)信息進(jìn)行校驗(yàn),若校驗(yàn)不通過(guò),提示認(rèn)證失敗,流程結(jié)束;4)若校驗(yàn)通過(guò),則提取數(shù)據(jù)包中的分頁(yè)數(shù)據(jù),判斷當(dāng)前分頁(yè)的數(shù)據(jù)增量模式;5)針對(duì)全量交換數(shù)據(jù),若中間數(shù)據(jù)庫(kù)中存在當(dāng)前的基線(xiàn)數(shù)據(jù),刪除當(dāng)前該基線(xiàn)中與當(dāng)前數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)行;6)將當(dāng)前分頁(yè)中的數(shù)據(jù)寫(xiě)入中間庫(kù);7)針對(duì)增量交換數(shù)據(jù),若中間數(shù)據(jù)庫(kù)中存在當(dāng)前的基線(xiàn)數(shù)據(jù),更新這些數(shù)據(jù),否則將當(dāng)前分頁(yè)中的數(shù)據(jù)寫(xiě)入中間庫(kù);8)匯總寫(xiě)入的錯(cuò)誤信息;9)將結(jié)果信息返回給前置區(qū);10)流程結(jié)束。圖5展示了在后臺(tái)數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品加工的完整執(zhí)行流程:1)數(shù)據(jù)倉(cāng)庫(kù)管理模塊根據(jù)配置信息等待任務(wù)調(diào)度;2)在當(dāng)前基線(xiàn)周期關(guān)閉或者收到增量數(shù)據(jù)時(shí),啟動(dòng)后臺(tái)數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品加工任務(wù),若任務(wù)啟動(dòng)失敗,則流程結(jié)束;3)獲取最新的基線(xiàn)信息,提取倉(cāng)庫(kù)數(shù)據(jù)處理任務(wù)的配置信息;4)根據(jù)最新基線(xiàn)的統(tǒng)計(jì)量配置信息,提取中間庫(kù)中的當(dāng)前基線(xiàn)周期內(nèi)的數(shù)據(jù)集,若統(tǒng)計(jì)量任務(wù)都已完成,轉(zhuǎn)步驟6),若還有統(tǒng)計(jì)量未進(jìn)行處理,轉(zhuǎn)步驟5);5)查詢(xún)當(dāng)前數(shù)據(jù)集中最后的基線(xiàn)信息,若該基線(xiàn)數(shù)據(jù)集已經(jīng)被處理,則放棄該統(tǒng)計(jì)量處理,轉(zhuǎn)步驟9),否則提取中間庫(kù)中最后周期內(nèi)的基線(xiàn)數(shù)據(jù);6)將各個(gè)統(tǒng)計(jì)量的目標(biāo)數(shù)據(jù)集合進(jìn)行合并;7)根據(jù)集合分區(qū)提取分區(qū)信息,提交數(shù)據(jù)處理平臺(tái)分區(qū)進(jìn)行各個(gè)統(tǒng)計(jì)量的計(jì)算處理;8)形成數(shù)據(jù)產(chǎn)品,寫(xiě)入數(shù)據(jù)倉(cāng)庫(kù);9)提取下一個(gè)統(tǒng)計(jì)量任務(wù),轉(zhuǎn)步驟4);10)完成當(dāng)前基線(xiàn)的統(tǒng)計(jì)量產(chǎn)品加工任務(wù);11)流程結(jié)束。4.數(shù)據(jù)處理加工數(shù)據(jù)產(chǎn)品加工過(guò)程中,數(shù)據(jù)處理執(zhí)行流程如圖6所示:1)數(shù)據(jù)產(chǎn)品加工過(guò)程中,完成各個(gè)統(tǒng)計(jì)量的處理任務(wù)后,匯總提交任務(wù)數(shù)據(jù)集;2)獲取集合分區(qū)信息;3)將任務(wù)數(shù)據(jù)集提交數(shù)據(jù)處理平臺(tái),根據(jù)集合分區(qū)將計(jì)算處理任務(wù)分割成各個(gè)子任務(wù)進(jìn)行計(jì)算處理;4)給子任務(wù)分配該分區(qū)中的一個(gè)最小分區(qū),子任務(wù)從數(shù)據(jù)集中提取分區(qū)中的數(shù)據(jù)進(jìn)行規(guī)模統(tǒng)計(jì)分析;5)根據(jù)當(dāng)前基線(xiàn)信息提取對(duì)應(yīng)分區(qū)上的一個(gè)基線(xiàn)數(shù)據(jù)集;6)針對(duì)該數(shù)據(jù)集計(jì)算相應(yīng)統(tǒng)計(jì)量的環(huán)比、同比對(duì)比數(shù)據(jù),完成最小分區(qū)當(dāng)前基線(xiàn)數(shù)據(jù)處理;7)提取當(dāng)前分區(qū)任務(wù)下一個(gè)最小分區(qū)信息,若全都已經(jīng)計(jì)算完成,轉(zhuǎn)步驟8),否則,轉(zhuǎn)步驟4)繼續(xù)執(zhí)行;8)子任務(wù)匯總各個(gè)最小分區(qū)下計(jì)算處理的結(jié)果數(shù)據(jù),子任務(wù)執(zhí)行完成,返回執(zhí)行結(jié)果;9)匯總各個(gè)子任務(wù)的執(zhí)行結(jié)果并輸出返回,流程結(jié)束。以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書(shū)所述為準(zhǔn)。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3