本公開總體涉及數(shù)據(jù)管理技術(shù)領(lǐng)域,具體而言,涉及一種數(shù)據(jù)傳輸?shù)姆椒?、裝置及系統(tǒng)。
背景技術(shù):
在目前的各類應(yīng)用中,通常需要將不同系統(tǒng)之間的數(shù)據(jù)進(jìn)行同步,也就是用戶需要從數(shù)據(jù)源系統(tǒng)獲取數(shù)據(jù),并將數(shù)據(jù)加載到目標(biāo)系統(tǒng)中去。實現(xiàn)不同系統(tǒng)之間的數(shù)據(jù)同步方法有通過數(shù)據(jù)庫與數(shù)據(jù)庫之間的抽取,也有源系統(tǒng)(也就是數(shù)據(jù)的提供方)對數(shù)據(jù)進(jìn)行本地抽取,落地生成文件之后再傳輸?shù)侥繕?biāo)系統(tǒng)(也就是數(shù)據(jù)的接收方)進(jìn)行入庫。通過文件傳輸?shù)某槿》绞侥芙档蛯υ聪到y(tǒng)(業(yè)務(wù)系統(tǒng))的影響,該方法在很多業(yè)務(wù)系統(tǒng)比較重要的場景(比如銀行、電信等行業(yè))有著廣泛的應(yīng)用。
通常的數(shù)據(jù)傳輸原理示意圖如圖1所示,數(shù)據(jù)從源系統(tǒng)傳輸?shù)侥繕?biāo)系統(tǒng),只是單一的數(shù)據(jù)傳輸。傳統(tǒng)的傳輸很簡單,源系統(tǒng)從相關(guān)業(yè)務(wù)系統(tǒng)抽取數(shù)據(jù),將數(shù)據(jù)生成文本格式的文件,再通過ftp/http等網(wǎng)絡(luò)傳輸方式進(jìn)行數(shù)據(jù)傳輸,目標(biāo)系統(tǒng)收到文本格式的文件之后,對該文件進(jìn)行轉(zhuǎn)換以及入庫等操作。文件傳輸由于經(jīng)過了抽取、落地(期間會有一定的人工干預(yù))的兩個環(huán)節(jié),如果在數(shù)據(jù)生成過程中存在數(shù)據(jù)格式非法、或不在給定的范圍內(nèi)的數(shù)據(jù)(通常稱為臟數(shù)據(jù)),這些臟數(shù)據(jù)有時不能加載到目標(biāo)系統(tǒng)中,或者是即便加載到數(shù)據(jù)庫,也會對數(shù)據(jù)使用造成不良影響。
對于臟數(shù)據(jù)的處理,目前尚無特定技術(shù)與方法,通常是在數(shù)據(jù)入庫的環(huán)節(jié)發(fā)現(xiàn)程序出錯,才進(jìn)行干預(yù)處理。
因此,需要一種新的數(shù)據(jù)傳輸?shù)姆椒?、裝置及系統(tǒng)。
在所述背景技術(shù)部分公開的上述信息僅用于加強對本公開的背景的理解,因此它可以包括不構(gòu)成對本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實現(xiàn)要素:
本公開提供一種數(shù)據(jù)傳輸?shù)睦矸椒?、裝置及系統(tǒng),以解決現(xiàn)有技術(shù)中在數(shù)據(jù)入庫階段才發(fā)現(xiàn)臟數(shù)據(jù)會影響數(shù)據(jù)使用的技術(shù)問題。
本公開的其他特性和優(yōu)點將通過下面的詳細(xì)描述變得顯然,或部分地通過本公開的實踐而習(xí)得。
根據(jù)本公開的一方面,提供一種數(shù)據(jù)傳輸?shù)姆椒?,包括?/p>
在入庫之前,對原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗,其中所述原始數(shù)據(jù)為從源系統(tǒng)接收的原始文件中的數(shù)據(jù);
將校驗后生成的文件反饋給所述源系統(tǒng),以便所述源系統(tǒng)從反饋結(jié)果中掃描到所述臟數(shù)據(jù)后進(jìn)行干預(yù)。
根據(jù)本公開的一實施方式,對所述原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗包括:
建立配置文件;
根據(jù)所述配置文件對所述原始數(shù)據(jù)進(jìn)行校驗;
如果校驗結(jié)果為通過,則輸出校驗通過的標(biāo)志文件;如果檢驗結(jié)果為失敗,則輸出校驗失敗標(biāo)志文件,并輸出校驗得到的臟數(shù)據(jù)。
根據(jù)本公開的另一實施方式,所述配置文件中包括至少一條配置信息,每條配置信息對應(yīng)一個原始文件。
根據(jù)本公開的另一實施方式,所述配置信息包括文件名、字段個數(shù)以及每個字段對應(yīng)的數(shù)據(jù)類型。
根據(jù)本公開的另一實施方式,所述配置信息還包括每個字段的數(shù)據(jù)范圍,所述數(shù)據(jù)范圍為枚舉值或范圍值。
根據(jù)本公開的另一實施方式,根據(jù)所述配置文件對所述原始數(shù)據(jù)進(jìn)行校驗包括:
讀取并判斷所述原始數(shù)據(jù)中的實際字段個數(shù)與所述配置信息中的字段個數(shù)是否一致、所述原始數(shù)據(jù)中每個字段的實際數(shù)據(jù)類型與所述配置信息中每個字段的數(shù)據(jù)類型是否一致以及所述原始數(shù)據(jù)中每個字段的實際值是否在所述配置信息中每個字段的數(shù)據(jù)范圍內(nèi);
當(dāng)所述原始數(shù)據(jù)中的實際字段個數(shù)與所述配置信息中的字段個數(shù)一致,且所述原始數(shù)據(jù)中每個字段的實際數(shù)據(jù)類型與所述配置信息中每個字段的數(shù)據(jù)類型一致以及所述原始數(shù)據(jù)中每個字段的實際值在所述配置信息中每個字段的數(shù)據(jù)范圍內(nèi)時所述校驗結(jié)果為通過。
根據(jù)本公開的另一方面,還提供一種數(shù)據(jù)傳輸?shù)难b置,包括:
校驗?zāi)K,用于在入庫之前,對原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗,其中所述原始數(shù)據(jù)為從源系統(tǒng)接收的原始文件中的數(shù)據(jù);以及
反饋模塊,用于將檢驗后生成的文件反饋給所述源系統(tǒng),以便所述源系統(tǒng)從反饋結(jié)果中掃描到所述臟數(shù)據(jù)后進(jìn)行干預(yù)。
根據(jù)本公開的一實施方式,所述校驗?zāi)K中包括:
配置子模塊,用于建立配置文件;
校驗子模塊,用于根據(jù)所述配置文件對所述原始數(shù)據(jù)進(jìn)行校驗;以及
輸出子模塊,用于輸出所述校驗子模塊的校驗結(jié)果,當(dāng)校驗結(jié)果為通過時,輸出校驗通過的標(biāo)志文件;當(dāng)檢驗結(jié)果為失敗時,輸出校驗失敗標(biāo)志文件,并輸出校驗得到的臟數(shù)據(jù)。
根據(jù)本公開的再一方面,還提供一種數(shù)據(jù)傳輸?shù)南到y(tǒng),包括源系統(tǒng)和目標(biāo)系統(tǒng),所述源系統(tǒng)向所述目標(biāo)系統(tǒng)傳輸原始文件,所述目標(biāo)系統(tǒng)包括:
校驗?zāi)K,用于在入庫之前,對所述原始文件的原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗;以及
反饋模塊,用于將檢驗后生成的文件反饋給所述源系統(tǒng);
所述源系統(tǒng)包括:
掃描模塊,用于進(jìn)行循環(huán)掃描,掃描到所述反饋模塊的反饋結(jié)果后,對所述臟數(shù)據(jù)進(jìn)行干預(yù)。
根據(jù)本公開的一實施方式,所述源系統(tǒng)中還包括:
重傳模塊,用于在對所述臟數(shù)據(jù)進(jìn)行干預(yù)之后進(jìn)行檢查和修復(fù),并將修復(fù)后的數(shù)據(jù)重新傳輸給所述目標(biāo)系統(tǒng)。
根據(jù)本公開的技術(shù)方案,能夠得到以下技術(shù)效果:
能自動發(fā)現(xiàn)臟數(shù)據(jù)并將臟數(shù)據(jù)反饋給源系統(tǒng),完成對文件的自動校驗,解決了以往在入庫階段才能發(fā)現(xiàn)臟數(shù)據(jù)的弊端,而且在檢測出臟數(shù)據(jù)之后,還將結(jié)果自動反饋到源系統(tǒng),使得臟數(shù)據(jù)的問題能得到及時的解決,降低源系統(tǒng)與目標(biāo)系統(tǒng)之間進(jìn)行溝通的成本。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本公開。
附圖說明
通過參照附圖詳細(xì)描述其示例實施例,本公開的上述和其它目標(biāo)、特征及優(yōu)點將變得更加顯而易見。
圖1示意性示出相關(guān)技術(shù)中數(shù)據(jù)傳輸?shù)脑硎疽鈭D。
圖2示意性示出根據(jù)本公開一實施例中提供的一種數(shù)據(jù)傳輸?shù)姆椒ǖ牟襟E流程圖。
圖3示意性示出根據(jù)本公開一實施例中對原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗的步驟流程圖。
圖4示意性示出根據(jù)本公開一實施例中提供的數(shù)據(jù)傳輸?shù)姆椒ǖ脑硎疽鈭D。
圖5示意性示出根據(jù)本公開另一實施例中提供的一種數(shù)據(jù)傳輸?shù)难b置的示意圖。
圖6示意性示出根據(jù)本公開另一實施例中提供的一種數(shù)據(jù)傳輸?shù)南到y(tǒng)的示意圖。
具體實施方式
現(xiàn)在將參考附圖更全面地描述示例實施方式。然而,示例實施方式能夠以多種形式實施,且不應(yīng)被理解為限于在此闡述的范例;相反,提供這些實施方式使得本公開將更加全面和完整,并將示例實施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。附圖僅為本公開的示意性圖解,并非一定是按比例繪制。圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對它們的重復(fù)描述。
此外,所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個或更多實施方式中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對本公開的實施方式的充分理解。然而,本領(lǐng)域技術(shù)人員將意識到,可以實踐本公開的技術(shù)方案而省略所述特定細(xì)節(jié)中的一個或更多,或者可以采用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細(xì)示出或描述公知結(jié)構(gòu)、方法、裝置、實現(xiàn)、材料或者操作以避免喧賓奪主而使得本公開的各方面變得模糊。
附圖中所示的一些方框圖是功能實體,不一定必須與物理或邏輯上獨立的實體相對應(yīng)??梢圆捎密浖问絹韺崿F(xiàn)這些功能實體,或在一個或多個硬件模塊或集成電路中實現(xiàn)這些功能實體,或在不同網(wǎng)絡(luò)和/或處理器裝置和/或微控制器裝置中實現(xiàn)這些功能實體。
由于現(xiàn)有技術(shù)在文件出現(xiàn)臟數(shù)據(jù)的情況往往未能在第一時間得到解決,因此即便在數(shù)據(jù)入庫階段發(fā)現(xiàn)了臟數(shù)據(jù),也需要大量的對源系統(tǒng)、目標(biāo)系統(tǒng)進(jìn)行人工交流的成本。本公開的目的是要第一時間及時檢測出臟數(shù)據(jù)并自動反饋給源系統(tǒng),以使得臟數(shù)據(jù)問題能得到最快速的處理,并能降低雙方系統(tǒng)的溝通成本,以下對本公開的技術(shù)方案做詳細(xì)說明。
圖2示出本公開一實施例中提供的一種數(shù)據(jù)傳輸?shù)姆椒ǖ牟襟E流程圖,該方法可以對源系統(tǒng)傳輸?shù)脑紨?shù)據(jù)進(jìn)行臟數(shù)據(jù)的自動校驗,并將校驗結(jié)果自動反饋到源系統(tǒng),以便及時發(fā)現(xiàn)并處理臟數(shù)據(jù)。
如圖2所示,在步驟s10中,在入庫之前,對原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗,其中原始數(shù)據(jù)為從源系統(tǒng)接收的原始文件中的數(shù)據(jù)。源系統(tǒng)向目標(biāo)系統(tǒng)傳輸所需要的數(shù)據(jù),通常是以原始文件的形式進(jìn)行傳輸,因此源系統(tǒng)也就是指數(shù)據(jù)的提供方,主要是提供并傳輸原始文件,目標(biāo)系統(tǒng)就是指數(shù)據(jù)的接收方,對源系統(tǒng)傳輸來的數(shù)據(jù)進(jìn)行接收以及校驗的處理。
如圖2所示,在步驟s20中,將校驗后生成的文件反饋給源系統(tǒng),以便源系統(tǒng)從反饋結(jié)果中掃描到臟數(shù)據(jù)后進(jìn)行干預(yù)。
圖3示出本實施例中對原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗的步驟流程圖。
如圖3所示,在步驟s11中,建立配置文件,其中配置文件中包括至少一條配置信息,每條配置信息對應(yīng)一個原始文件。
目標(biāo)系統(tǒng)與源系統(tǒng)之間在開始數(shù)據(jù)傳輸之前,事先建立一接口協(xié)議,用以約定兩者之間傳輸?shù)奈募袛?shù)據(jù)的格式等信息,也就是配置信息。該配置信息包括文件名、字段個數(shù)以及每個字段對應(yīng)的數(shù)據(jù)類型,將需要傳輸?shù)奈募斜硪约跋嚓P(guān)的配置信息加入到配置文件中。由于源系統(tǒng)向目標(biāo)系統(tǒng)傳輸?shù)牟煌脑嘉募兴脑紨?shù)據(jù)往往是內(nèi)容完全不同的數(shù)據(jù),例如原始數(shù)據(jù)可以是訂單數(shù)據(jù)、基本信息數(shù)據(jù)等等,所約定的配置信息也不盡相同,因此可以針對傳輸?shù)娜慷际怯唵螖?shù)據(jù)的原始文件建立一條配置信息,而針對傳輸?shù)娜慷际怯脩艋拘畔?shù)據(jù)的原始文件建立一條配置信息。
在本實施例中,建立一條配置信息之后,可以在配置文件中添加一條如下的記錄:
filename.txt4stringdoublestringint
文件名字段個數(shù)數(shù)據(jù)類型
以上代表filename.txt的文件,該文件一共包含4個字段,4個字段的數(shù)據(jù)類型按順序分別為:stringdoublestringint,即字符、浮點、字符、整數(shù)。
如果源系統(tǒng)向目標(biāo)系統(tǒng)傳輸多個原始文件,則需要建立多條配置信息,并將該配置信息添加到配置文件中,如下:
filename1……字段個數(shù)….數(shù)據(jù)類型(范圍)
filename2……..字段個數(shù)….數(shù)據(jù)類型(范圍)
………
需要說明的是,在配置信息中除了包括字段個數(shù)、每個字段對應(yīng)的數(shù)據(jù)類型之外,還可以包括每個字段的數(shù)據(jù)范圍,其中數(shù)據(jù)范圍為枚舉值或范圍值。例如,配置int[10-20],表示該字段的范圍必須在10-20之間(范圍值),或者配置string[a,b,c]表示該字段的范圍包含3個值a,b,c(枚舉值)。因此配置信息還可以如下:
filename13int[1-10]string[a,b,c]int[11-20]
以上表示代表filename1的文件,該文件一共包含3個字段,3個字段中第1個字段為數(shù)據(jù)范圍1-10的整數(shù),第2個字段為是a,b或c的字符,第3個字段為數(shù)據(jù)范圍11-20的整數(shù)。
如圖3所示,在步驟s12中,根據(jù)配置文件對原始數(shù)據(jù)進(jìn)行校驗,其中校驗的過程包括:
讀取并判斷這條原始數(shù)據(jù)中的實際字段個數(shù)與配置信息中的字段個數(shù)是否一致、原始數(shù)據(jù)中每個字段的實際數(shù)據(jù)類型與配置信息中每個字段的數(shù)據(jù)類型是否一致以及原始數(shù)據(jù)中每個字段的實際值是否在配置信息中每個字段的數(shù)據(jù)范圍內(nèi)。當(dāng)原始數(shù)據(jù)中的實際字段個數(shù)與配置信息中的字段個數(shù)一致,且原始數(shù)據(jù)中每個字段的實際數(shù)據(jù)類型與配置信息中每個字段的數(shù)據(jù)類型一致以及原始數(shù)據(jù)中每個字段的實際值在配置信息中每個字段的數(shù)據(jù)范圍內(nèi)時校驗結(jié)果為通過。
在本實施例中,校驗過程中對于校驗字段個數(shù)、數(shù)據(jù)類型以及數(shù)據(jù)范圍的先后順序并不做具體限定,而且對于讀取原始數(shù)據(jù)時是全部讀取之后再逐個判斷還是讀取一部分就判斷一部分也不做限定,只要最終都校驗通過時校驗結(jié)果才為通過。
也就是,校驗方法還可以采用如下方式:
首先,讀取原始文件、并判斷原始文件中每一行數(shù)據(jù)(也就是一條原始數(shù)據(jù))的字段個數(shù)與配置文件中的個數(shù)是否一致。例如:配置文件中定義了10個字段、相關(guān)的文件也必須包含10個字段。
其次,讀取原始文件、并判斷原始數(shù)據(jù)中的每個字段類型,是否與配置文件的類型一致。比如:定義為int類型的必須為整數(shù)、定義為string的必須為字符類數(shù)據(jù)。
最后,讀取原始文件、并判斷原始數(shù)據(jù)中的每個字段實際值,是否在配置文件中所配置的范圍內(nèi)。比如:int[10-20],如果是21,超過了10-20的范圍,則不符合。
如圖3所示,在步驟s13中,如果校驗結(jié)果為通過,則輸出校驗通過的標(biāo)志文件,例如輸出filename.ok標(biāo)志文件;如果檢驗結(jié)果為失敗,則輸出校驗失敗標(biāo)志文件,并輸出校驗得到的臟數(shù)據(jù),例如輸出filename.err標(biāo)志文件,以及將具體的臟數(shù)據(jù)以filename.wrg文件輸出。
目標(biāo)系統(tǒng)不僅僅對原始數(shù)據(jù)進(jìn)行校驗,還進(jìn)一步對經(jīng)過校驗后輸出的結(jié)果文件,包括:通過文件(*.ok文件)、校驗失敗文件(*.err文件與*.wrg文件),通過ftp或者h(yuǎn)ttp協(xié)議,自動反饋給源系統(tǒng),其中*為文件名。
源系統(tǒng)中不斷循環(huán)掃描是否有從目標(biāo)系統(tǒng)反饋來的結(jié)果文件,若掃描到*.ok文件,可以確認(rèn)某一類文件正常傳輸,如果掃描到的是*.err文件,說明存在臟數(shù)據(jù),此時需要進(jìn)行相關(guān)的干預(yù),可以查詢具體的臟數(shù)據(jù)(.wrg),并對原始數(shù)據(jù)進(jìn)行檢查與修復(fù),并將修復(fù)后的文件重新由源系統(tǒng)傳輸給目標(biāo)系統(tǒng)。
對于本實施例提供的方法,相應(yīng)的原理示意圖如圖4所示,通常將源系統(tǒng)中需要傳輸?shù)臉I(yè)務(wù)數(shù)據(jù)(也就是原始數(shù)據(jù))以日志文件的形式傳輸給目標(biāo)系統(tǒng),之后進(jìn)行臟數(shù)據(jù)校驗,如果校驗通過則生成*.ok標(biāo)識文件,并將其反饋給源系統(tǒng);如果校驗失敗生成*.err標(biāo)識文件以及臟數(shù)據(jù)*.wrg文件,并將其反饋給源系統(tǒng)。如果源系統(tǒng)掃描到*.ok標(biāo)識文件則表示數(shù)據(jù)傳輸成功,如果源系統(tǒng)掃描到*.err標(biāo)識文件則表示傳輸失敗。
綜上所述,本實施例提供的方法能自動發(fā)現(xiàn)臟數(shù)據(jù)并將臟數(shù)據(jù)反饋給源系統(tǒng),完成對文件的自動校驗,解決了以往在入庫階段才能發(fā)現(xiàn)臟數(shù)據(jù)的弊端,而且在檢測出臟數(shù)據(jù)之后,還將結(jié)果自動反饋到源系統(tǒng),使得臟數(shù)據(jù)的問題能得到及時的解決,降低源系統(tǒng)與目標(biāo)系統(tǒng)之間進(jìn)行溝通的成本。
圖5還示出本實施例另一實施例提供的一種數(shù)據(jù)傳輸?shù)难b置的示意圖,該裝置100包括:校驗?zāi)K110和反饋模塊120。其中校驗?zāi)K110用于在入庫之前,對原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗,其中原始數(shù)據(jù)為從源系統(tǒng)接收的原始文件中的數(shù)據(jù);反饋模塊120用于將檢驗后生成的文件反饋給源系統(tǒng),以便源系統(tǒng)從反饋結(jié)果中掃描到臟數(shù)據(jù)后進(jìn)行干預(yù)。
在本實施例中,如圖5所示,校驗?zāi)K110中包括:配置子模塊111、校驗子模塊112和輸出子模塊113,其中配置子模塊111用于建立配置文件;校驗子模塊112用于根據(jù)配置文件對原始數(shù)據(jù)進(jìn)行校驗;輸出子模塊113用于輸出校驗子模塊的校驗結(jié)果,當(dāng)校驗結(jié)果為通過時,輸出校驗通過的標(biāo)志文件;當(dāng)檢驗結(jié)果為失敗時,輸出校驗失敗標(biāo)志文件,并輸出校驗得到的臟數(shù)據(jù)。
配置子模塊111在建立配置文件中,針對每個原始文件建立一條配置信息。配置信息包括文件名、字段個數(shù)以及每個字段對應(yīng)的數(shù)據(jù)類型,將需要傳輸?shù)奈募斜硪约跋嚓P(guān)的配置信息加入到配置文件中。由于源系統(tǒng)向目標(biāo)系統(tǒng)傳輸?shù)牟煌脑嘉募兴脑紨?shù)據(jù)往往是內(nèi)容完全不同的數(shù)據(jù),例如原始數(shù)據(jù)可以是訂單數(shù)據(jù)、基本信息數(shù)據(jù)等等,所約定的配置信息也不盡相同,因此可以針對傳輸?shù)娜慷际怯唵螖?shù)據(jù)的原始文件建立一條配置信息,而針對傳輸?shù)娜慷际怯脩艋拘畔?shù)據(jù)的原始文件建立一條配置信息。
在本實施例中,建立一條配置信息之后,可以在配置文件中添加一條如下的記錄:
filename.txt4stringdoublestringint
文件名字段個數(shù)數(shù)據(jù)類型
以上代表filename.txt的文件,該文件一共包含4個字段,4個字段的數(shù)據(jù)類型按順序分別為:stringdoublestringint,即字符、浮點、字符、整數(shù)。
如果源系統(tǒng)向目標(biāo)系統(tǒng)傳輸多個原始文件,則需要建立多條配置信息,并將該配置信息添加到配置文件中,如下:
filename1……字段個數(shù)….數(shù)據(jù)類型(范圍)
filename2……..字段個數(shù)….數(shù)據(jù)類型(范圍)
………
需要說明的是,在配置信息中除了包括字段個數(shù)、每個字段對應(yīng)的數(shù)據(jù)類型之外,還可以包括每個字段的數(shù)據(jù)范圍,其中數(shù)據(jù)范圍為枚舉值或范圍值。例如,配置int[10-20],表示該字段的范圍必須在10-20之間(范圍值),或者配置string[a,b,c]表示該字段的范圍包含3個值a,b,c(枚舉值)。因此配置信息還可以如下:
filename13int[1-10]string[a,b,c]int[11-20]
以上表示代表filename1的文件,該文件一共包含3個字段,3個字段中第1個字段為數(shù)據(jù)范圍1-10的整數(shù),第2個字段為是a,b或c的字符,第3個字段為數(shù)據(jù)范圍11-20的整數(shù)。
其中校驗子模塊112根據(jù)配置文件對原始數(shù)據(jù)進(jìn)行校驗的過程為:
首先,讀取原始文件、并判斷原始文件中每一行數(shù)據(jù)(也就是一條原始數(shù)據(jù))的字段個數(shù)與配置文件中的個數(shù)是否一致。例如:配置文件中定義了10個字段、相關(guān)的文件也必須包含10個字段。
其次,讀取原始文件、并判斷原始數(shù)據(jù)中的每個字段類型,是否與配置文件的類型一致。比如:定義為int類型的必須為整數(shù)、定義為string的必須為字符類數(shù)據(jù)。
最后,讀取原始文件、并判斷原始數(shù)據(jù)中的每個字段實際值,是否在配置文件中所配置的范圍內(nèi)。比如:int[10-20],如果是21,超過了10-20的范圍,則不符合。
輸出子模塊113對校驗結(jié)果進(jìn)行輸出,如果校驗結(jié)果為通過,則輸出校驗通過的標(biāo)志文件,例如輸出filename.ok標(biāo)志文件;如果檢驗結(jié)果為失敗,則輸出校驗失敗標(biāo)志文件,并輸出校驗得到的臟數(shù)據(jù),例如輸出filename.err標(biāo)志文件,以及將具體的臟數(shù)據(jù)以filename.wrg文件輸出。
目標(biāo)系統(tǒng)不僅僅對原始數(shù)據(jù)進(jìn)行校驗,還進(jìn)一步對經(jīng)過校驗后輸出的結(jié)果文件,包括:通過文件(*.ok文件)、校驗失敗文件(*.err文件與*.wrg文件),通過ftp或者h(yuǎn)ttp協(xié)議,自動通過反饋模塊120反饋給源系統(tǒng),其中*為文件名,以便源系統(tǒng)中能不斷循環(huán)掃描是否有從目標(biāo)系統(tǒng)反饋來的結(jié)果文件,若掃描到*.ok文件,可以確認(rèn)某一類文件正常傳輸,如果掃描到的是*.err文件,說明存在臟數(shù)據(jù),此時需要進(jìn)行相關(guān)的人工干預(yù),可以查詢具體的臟數(shù)據(jù)(.wrg),并對原始數(shù)據(jù)進(jìn)行檢查與修復(fù)。源系統(tǒng)根據(jù)目標(biāo)系統(tǒng)設(shè)定的臟數(shù)據(jù)校驗規(guī)則進(jìn)行數(shù)據(jù)檢查,例如:字段個數(shù)是否一致;字段數(shù)據(jù)類型是否一致;字段數(shù)據(jù)范圍是否一致,檢查完成后,根據(jù)具體數(shù)據(jù)情況通過手動修復(fù)數(shù)據(jù)、或重新生成文件等方式對數(shù)據(jù)進(jìn)行修復(fù),并將修復(fù)后的文件重新由源系統(tǒng)傳輸給目標(biāo)系統(tǒng)。
圖6還示出本實施例另一實施例提供的一種數(shù)據(jù)傳輸?shù)南到y(tǒng)的示意圖,該系統(tǒng)1000中包括源系統(tǒng)1100和目標(biāo)系統(tǒng)1200。
目標(biāo)系統(tǒng)包括校驗?zāi)K1110和反饋模塊1120。校驗?zāi)K1110用于在入庫之前,對原始文件的原始數(shù)據(jù)中是否存在臟數(shù)據(jù)進(jìn)行校驗,反饋模塊1120用于將檢驗后生成的文件反饋給源系統(tǒng);
源系統(tǒng)1200包括掃描模塊1210和重傳模塊1220,掃描模塊1210用于進(jìn)行循環(huán)掃描,掃描到反饋模塊的反饋結(jié)果后,對臟數(shù)據(jù)進(jìn)行干預(yù),重傳模塊1220用于在對臟數(shù)據(jù)進(jìn)行干預(yù)之后進(jìn)行檢查和修復(fù)。
源系統(tǒng)1100向目標(biāo)系統(tǒng)1200傳輸原始文件,目標(biāo)系統(tǒng)1200接收該原始文件,并對其中的數(shù)據(jù)進(jìn)行校驗,將校驗結(jié)果以及校驗出來的臟數(shù)據(jù)反饋給源系統(tǒng)1100,最終源系統(tǒng)1100對目標(biāo)系統(tǒng)反饋的文件進(jìn)行掃描,如果有臟數(shù)據(jù)就進(jìn)行檢查和修復(fù),并將修復(fù)后的數(shù)據(jù)重新傳輸給目標(biāo)系統(tǒng),這樣既能提供校驗在數(shù)據(jù)入庫之前及時發(fā)現(xiàn)臟數(shù)據(jù),并將校驗結(jié)果反饋給源系統(tǒng),以便及時進(jìn)行修復(fù),將修復(fù)后的數(shù)據(jù)重傳給目標(biāo)系統(tǒng),避免由于臟數(shù)據(jù)對數(shù)據(jù)傳輸造成不良影響。
應(yīng)清楚地理解,本公開描述了如何形成和使用特定示例,但本公開的原理不限于這些示例的任何細(xì)節(jié)。相反,基于本公開公開的內(nèi)容的教導(dǎo),這些原理能夠應(yīng)用于許多其它實施方式。
以上具體地示出和描述了本公開的示例性實施方式。應(yīng)可理解的是,本公開不限于這里描述的詳細(xì)結(jié)構(gòu)、設(shè)置方式或?qū)崿F(xiàn)方法;相反,本公開意圖涵蓋包含在所附權(quán)利要求的精神和范圍內(nèi)的各種修改和等效設(shè)置。