數(shù)據(jù)文件導(dǎo)入系統(tǒng)、裝置及方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)文件導(dǎo)入裝置,所述裝置包括:接收模塊,用于接收所述數(shù)據(jù)文件;驗(yàn)證模塊,用于識別所述數(shù)據(jù)文件中的預(yù)定規(guī)則并提取所述預(yù)定規(guī)則,驗(yàn)證所述數(shù)據(jù)文件是否符合所述預(yù)定規(guī)則并生成驗(yàn)證結(jié)果;導(dǎo)入模塊,用于在所述驗(yàn)證結(jié)果為所述數(shù)據(jù)文件符合預(yù)定規(guī)則時(shí)將所述數(shù)據(jù)文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的存儲空間中。本發(fā)明還公開了一種數(shù)據(jù)文件導(dǎo)入方法。本發(fā)明通過異步的方式將數(shù)據(jù)文件導(dǎo)入到數(shù)據(jù)庫中,能夠減輕客戶端的工作負(fù)荷,防止在服務(wù)器數(shù)據(jù)庫中斷接收客戶端發(fā)送的SQL數(shù)據(jù)記錄時(shí)客戶端不斷地執(zhí)行入庫的邏輯,從而減少客戶端出現(xiàn)Bug的可能性。
【專利說明】數(shù)據(jù)文件導(dǎo)入系統(tǒng)、裝置及方法
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及數(shù)據(jù)文件導(dǎo)入領(lǐng)域,特別涉及一種數(shù)據(jù)文件導(dǎo)入系統(tǒng)、裝置及方法?!尽颈尘凹夹g(shù)】】
[0002]傳統(tǒng)的將數(shù)據(jù)文件從客戶端導(dǎo)入到服務(wù)器數(shù)據(jù)庫中的技術(shù)方案為:
[0003]首先,客戶端準(zhǔn)備好要導(dǎo)入到服務(wù)器數(shù)據(jù)庫中的數(shù)據(jù)文件,接著,客戶端對數(shù)據(jù)文件進(jìn)行合法性校驗(yàn)和過濾,然后,客戶端與服務(wù)器數(shù)據(jù)庫建立通信連接,最后,客戶端將數(shù)據(jù)文件轉(zhuǎn)換成符合SQL (Structured Query Language,結(jié)構(gòu)化查詢語言)語法的SQL數(shù)據(jù)記錄,并將該SQL數(shù)據(jù)記錄導(dǎo)入到服務(wù)器數(shù)據(jù)庫中。
[0004]上述技術(shù)方案存在以下缺陷:
[0005]上述客戶端中的SQL數(shù)據(jù)記錄是逐步地導(dǎo)入到服務(wù)器數(shù)據(jù)庫中的,這個(gè)過程耗時(shí)且效率低下,而在此過程中,當(dāng)大量、分散的客戶端要將SQL數(shù)據(jù)記錄導(dǎo)入到服務(wù)器數(shù)據(jù)庫中時(shí),服務(wù)器數(shù)據(jù)庫的響應(yīng)會變慢,從而影響客戶端的運(yùn)作,此外,當(dāng)服務(wù)器數(shù)據(jù)庫由于某種原因中斷該SQL數(shù)據(jù)記錄的導(dǎo)入時(shí),針對客戶端的SQL數(shù)據(jù)記錄的導(dǎo)入則前功盡棄,此時(shí),客戶端會不斷地請求服務(wù)器數(shù)據(jù)庫將文件導(dǎo)入,即客戶端會不斷地執(zhí)行入庫的邏輯,直到服務(wù)器數(shù)據(jù)庫恢復(fù)導(dǎo)入SQL數(shù)據(jù)記錄為止。這樣會妨礙客戶端執(zhí)行其它操作,容易使客戶端出現(xiàn)Bug (缺陷);此外,還會降低客戶端的運(yùn)行效率,不利于減輕客戶端的負(fù)荷。
[0006]故,有必要提出一種新的技術(shù)方案,以解決上述技術(shù)問題。
【
【發(fā)明內(nèi)容】
】
[0007]本發(fā)明的一個(gè)目的在于提供一種數(shù)據(jù)文件導(dǎo)入裝置,其能以一種新的數(shù)據(jù)入庫方式來將數(shù)據(jù)文件導(dǎo)入到服務(wù)器數(shù)據(jù)庫中,減輕客戶端的工作負(fù)荷,防止在服務(wù)器數(shù)據(jù)庫中斷服務(wù)時(shí)影響客戶端提交的SQL數(shù)據(jù)記`錄,從而降低對客戶端軟件的容災(zāi)要求,提高了數(shù)據(jù)文件入庫的可靠性。
[0008]為解決上述問題,本發(fā)明提供了一種數(shù)據(jù)文件導(dǎo)入裝置,所述裝置包括:接收模塊,用于接收所述數(shù)據(jù)文件;驗(yàn)證模塊,用于識別所述數(shù)據(jù)文件中的預(yù)定規(guī)則并提取所述預(yù)定規(guī)則,驗(yàn)證所述數(shù)據(jù)文件是否符合所述預(yù)定規(guī)則并生成驗(yàn)證結(jié)果;導(dǎo)入模塊,用于在所述驗(yàn)證結(jié)果為所述數(shù)據(jù)文件符合預(yù)定規(guī)則時(shí)將所述數(shù)據(jù)文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的存儲空間中。
[0009]本發(fā)明的另一個(gè)目的在于提供一種數(shù)據(jù)文件導(dǎo)入方法,其能以一種新的數(shù)據(jù)入庫方式來將數(shù)據(jù)文件導(dǎo)入到服務(wù)器數(shù)據(jù)庫中,減輕客戶端的工作負(fù)荷,防止在服務(wù)器數(shù)據(jù)庫中斷服務(wù)時(shí)影響客戶端提交的SQL數(shù)據(jù)記錄,從而降低對客戶端軟件的容災(zāi)要求,提高了數(shù)據(jù)文件入庫的可靠性。
[0010]為解決上述問題,本發(fā)明提供了一種數(shù)據(jù)文件導(dǎo)入方法,所述方法包括以下步驟:接收所述數(shù)據(jù)文件;識別所述數(shù)據(jù)文件中的預(yù)定規(guī)則并提取所述預(yù)定規(guī)則;驗(yàn)證所述數(shù)據(jù)文件是否符合所述預(yù)定規(guī)則并生成驗(yàn)證結(jié)果;在所述驗(yàn)證結(jié)果為所述數(shù)據(jù)文件符合預(yù)定規(guī)則時(shí)將所述數(shù)據(jù)文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的存儲空間中。
[0011]本發(fā)明的另一個(gè)目的在于提供一種數(shù)據(jù)文件導(dǎo)入系統(tǒng),其能以一種新的數(shù)據(jù)入庫方式來將數(shù)據(jù)文件導(dǎo)入到服務(wù)器數(shù)據(jù)庫中,減輕客戶端的工作負(fù)荷,防止在服務(wù)器數(shù)據(jù)庫中斷服務(wù)時(shí)影響客戶端提交的SQL數(shù)據(jù)記錄,從而降低對客戶端軟件的容災(zāi)要求,提高了數(shù)據(jù)文件入庫的可靠性。
[0012]為解決上述問題,本發(fā)明提供了一種數(shù)據(jù)文件導(dǎo)入系統(tǒng),所述系統(tǒng)包括:客戶端,用于提供所述數(shù)據(jù)文件;數(shù)據(jù)庫,用于提供存儲空間;數(shù)據(jù)文件導(dǎo)入裝置,用于從所述客戶端接收所述數(shù)據(jù)文件并將所述數(shù)據(jù)文件導(dǎo)入到所述數(shù)據(jù)庫的存儲空間中;所述數(shù)據(jù)文件導(dǎo)入裝置包括:接收模塊,用于接收所述數(shù)據(jù)文件;驗(yàn)證模塊,用于識別所述數(shù)據(jù)文件中的預(yù)定規(guī)則并提取所述預(yù)定規(guī)則,驗(yàn)證所述數(shù)據(jù)文件是否符合預(yù)定規(guī)則并生成驗(yàn)證結(jié)果;導(dǎo)入模塊,用于在所述驗(yàn)證結(jié)果為所述數(shù)據(jù)文件符合預(yù)定規(guī)則時(shí)將所述數(shù)據(jù)文件中的數(shù)據(jù)導(dǎo)入到所述存儲空間中。
[0013]相對現(xiàn)有技術(shù),本發(fā)明通過異步的方式將數(shù)據(jù)文件導(dǎo)入到數(shù)據(jù)庫中,防止了在服務(wù)器數(shù)據(jù)庫中斷服務(wù)時(shí)影響客戶端提交的SQL數(shù)據(jù)記錄,從而降低了對客戶端軟件的容災(zāi)要求,提高了數(shù)據(jù)文件入庫的可靠性,進(jìn)一步地,本發(fā)明由于從客戶端接收的是數(shù)據(jù)文件,而不需等待客戶端逐個(gè)地導(dǎo)入數(shù)據(jù)記錄,因此在客戶端這一側(cè)將數(shù)據(jù)文件發(fā)送到數(shù)據(jù)文件導(dǎo)入裝置這一工作可以在短時(shí)間內(nèi)完成,減輕了客戶端的工作負(fù)荷,同時(shí)減少了客戶端對數(shù)據(jù)文件導(dǎo)入裝置的通信帶寬的占用,防止在服務(wù)器數(shù)據(jù)庫中斷接收客戶端發(fā)送的SQL數(shù)據(jù)記錄時(shí)客戶端不斷地執(zhí)行入庫的邏輯,從而減少客戶端出現(xiàn)Bug的可能性。
[0014]為讓本發(fā)明的上述內(nèi)容能更明顯易懂,下文特舉優(yōu)選實(shí)施例,并配合所附圖式,作詳細(xì)說明如下:
【【專利附圖】
【附圖說明】】
[0015]圖1為本發(fā)明的數(shù)據(jù) 文件導(dǎo)入系統(tǒng)的示意圖;
[0016]圖2為本發(fā)明的數(shù)據(jù)文件導(dǎo)入裝置的框圖;
[0017]圖3為圖2中導(dǎo)入模塊的框圖;
[0018]圖4和圖5為本發(fā)明的數(shù)據(jù)文件導(dǎo)入方法的流程圖。
【【具體實(shí)施方式】】
[0019]以下各實(shí)施例的說明是參考附加的圖式,用以例示本發(fā)明可用以實(shí)施的特定實(shí)施例。
[0020]為了在數(shù)據(jù)文件導(dǎo)入的過程中減輕客戶端的運(yùn)作負(fù)荷,節(jié)省客戶端的運(yùn)作時(shí)間,以及防止在數(shù)據(jù)庫中斷接收客戶端發(fā)送的SQL數(shù)據(jù)記錄時(shí)客戶端不斷地執(zhí)行入庫的邏輯,維持客戶端和數(shù)據(jù)庫的運(yùn)行穩(wěn)定,本發(fā)明的總體技術(shù)方案為:首先從客戶端接收要導(dǎo)入的數(shù)據(jù)文件,該數(shù)據(jù)文件可以是未經(jīng)客戶端驗(yàn)證或者轉(zhuǎn)換成預(yù)定語言的數(shù)據(jù)記錄的,然后對所接收的數(shù)據(jù)文件進(jìn)行驗(yàn)證并轉(zhuǎn)換成預(yù)定語言的數(shù)據(jù)記錄,再將該數(shù)據(jù)記錄導(dǎo)入到數(shù)據(jù)庫的存儲空間中。本發(fā)明通過異步的方式將數(shù)據(jù)文件導(dǎo)入到數(shù)據(jù)庫中,防止了在數(shù)據(jù)庫中斷服務(wù)時(shí)影響客戶端提交的SQL數(shù)據(jù)記錄,從而降低了對客戶端軟件的容災(zāi)要求,提高了數(shù)據(jù)文件入庫的可靠性,進(jìn)一步地,由于從客戶端接收的是數(shù)據(jù)文件,而不需等待客戶端逐個(gè)地導(dǎo)入數(shù)據(jù)記錄,因此數(shù)據(jù)文件導(dǎo)入裝置可以在短時(shí)間內(nèi)完成數(shù)據(jù)文件的接收,防止在數(shù)據(jù)庫中斷接收客戶端發(fā)送的SQL數(shù)據(jù)記錄時(shí)客戶端不斷地執(zhí)行入庫的邏輯,從而減少客戶端出現(xiàn)Bug的可能性。
[0021]以下為本發(fā)明的詳細(xì)技術(shù)方案。
[0022]在本發(fā)明中,數(shù)據(jù)文件的文件名經(jīng)過規(guī)范定義,該文件名直接體現(xiàn)了數(shù)據(jù)文件要入庫的目標(biāo)庫、表信息等,此外,該文件名還指出相應(yīng)的表的主鍵涉及的字段個(gè)數(shù)。數(shù)據(jù)文件的文件名可以定義為:
[0023]<庫名>#〈表名>#〈日期>#〈主鍵字段數(shù)>#<備注>.txt
[0024]例如,一要入庫的數(shù)據(jù)文件的目標(biāo)位置為:
[0025]
【權(quán)利要求】
1.一種數(shù)據(jù)文件導(dǎo)入裝置,其特征在于,所述裝置包括: 接收模塊,用于接收所述數(shù)據(jù)文件; 驗(yàn)證模塊,用于識別所述數(shù)據(jù)文件中的預(yù)定規(guī)則并提取所述預(yù)定規(guī)則,驗(yàn)證所述數(shù)據(jù)文件是否符合所述預(yù)定規(guī)則并生成驗(yàn)證結(jié)果; 導(dǎo)入模塊,用于在所述驗(yàn)證結(jié)果為所述數(shù)據(jù)文件符合預(yù)定規(guī)則時(shí)將所述數(shù)據(jù)文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的存儲空間中。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)文件導(dǎo)入裝置,其特征在于,所述導(dǎo)入模塊包括: 轉(zhuǎn)換模塊,用于根據(jù)所述檢驗(yàn)結(jié)果將所述數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換成預(yù)定語言的數(shù)據(jù)記錄; 數(shù)據(jù)寫入模塊,用于將所述數(shù)據(jù)記錄寫入到所述存儲空間中。
3.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)文件導(dǎo)入裝置,其特征在于,所述導(dǎo)入模塊還包括: 監(jiān)控模塊,用于監(jiān)控所述數(shù)據(jù)記錄是否成功導(dǎo)入到所述存儲空間中并生成監(jiān)控結(jié)果; 告警模塊,用于在所述監(jiān)控結(jié)果為所述數(shù)據(jù)記錄沒有成功導(dǎo)入到所述存儲空間中時(shí)發(fā)出告警信號。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)文件導(dǎo)入裝置,其特征在于,所述導(dǎo)入模塊還包括: 定時(shí)模塊,用于生成定時(shí)信息; 所述監(jiān)控模塊還用于在所述監(jiān)`控結(jié)果為所述數(shù)據(jù)記錄沒有成功導(dǎo)入到所述存儲空間中時(shí)根據(jù)所述定時(shí)信息控制所述導(dǎo)入模塊再次執(zhí)行所述數(shù)據(jù)記錄的導(dǎo)入操作。 所述監(jiān)控模塊還用于在所述數(shù)據(jù)記錄的導(dǎo)入操作次數(shù)大于預(yù)定值時(shí)向所述告警模塊發(fā)送告警命令; 所述告警模塊還用于根據(jù)所述告警命令發(fā)出所述告警信號。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)文件導(dǎo)入裝置,其特征在于,所述裝置還包括: 日志記錄模塊,用于記錄所述接收模塊、所述驗(yàn)證模塊和所述導(dǎo)入模塊中的至少一者的日志。
6.一種數(shù)據(jù)文件導(dǎo)入方法,其特征在于,所述方法包括以下步驟: 接收所述數(shù)據(jù)文件; 識別所述數(shù)據(jù)文件中的預(yù)定規(guī)則并提取所述預(yù)定規(guī)則; 驗(yàn)證所述數(shù)據(jù)文件是否符合所述預(yù)定規(guī)則并生成驗(yàn)證結(jié)果; 在所述驗(yàn)證結(jié)果為所述數(shù)據(jù)文件符合預(yù)定規(guī)則時(shí)將所述數(shù)據(jù)文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的存儲空間中。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)文件導(dǎo)入方法,其特征在于,所述方法還包括以下步驟: 根據(jù)所述檢驗(yàn)結(jié)果將所述數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換成預(yù)定語言的數(shù)據(jù)記錄; 將所述數(shù)據(jù)記錄寫入到所述存儲空間中。
8.根據(jù)權(quán)利要求6或7所述的數(shù)據(jù)文件導(dǎo)入方法,其特征在于,所述方法還包括以下步驟: 監(jiān)控所述數(shù)據(jù)記錄是否成功導(dǎo)入到所述存儲空間中并生成監(jiān)控結(jié)果; 在所述監(jiān)控結(jié)果為所述數(shù)據(jù)記錄沒有成功導(dǎo)入到所述存儲空間中時(shí)發(fā)出告警信號。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)文件導(dǎo)入方法,其特征在于,所述方法還包括以下步驟: 生成定時(shí)信息;在所述監(jiān)控結(jié)果為所述數(shù)據(jù)記錄沒有成功導(dǎo)入到所述存儲空間中時(shí)根據(jù)所述定時(shí)信息控制所述導(dǎo)入模塊再次執(zhí)行所述數(shù)據(jù)記錄的導(dǎo)入操作。 在所述數(shù)據(jù)記錄的導(dǎo)入操作次數(shù)大于預(yù)定值時(shí)向所述告警模塊發(fā)送告警命令; 根據(jù)所述告警命令發(fā)出所述告警信號。
10.根據(jù)權(quán)利要求6所述的數(shù)據(jù)文件導(dǎo)入方法,其特征在于,所述方法還包括以下步驟: 記錄日志。
11.一種數(shù)據(jù)文件導(dǎo)入系統(tǒng),其特征在于,所述系統(tǒng)包括: 客戶端,用于提供所述數(shù)據(jù)文件; 數(shù)據(jù)庫,用于提供存儲空間; 數(shù)據(jù)文件導(dǎo)入裝置,用于從所述客戶端接收所述數(shù)據(jù)文件并將所述數(shù)據(jù)文件導(dǎo)入到所述數(shù)據(jù)庫的存儲空間中; 所述數(shù)據(jù)文件導(dǎo)入裝置包括: 接收模塊,用于接收所述數(shù)據(jù)文件; 驗(yàn)證模塊,用于識別所述數(shù)據(jù)文件中的預(yù)定規(guī)則并提取所述預(yù)定規(guī)則,驗(yàn)證所述數(shù)據(jù)文件是否符合預(yù)定規(guī)則并生成 驗(yàn)證結(jié)果; 導(dǎo)入模塊,用于在所述驗(yàn)證結(jié)果為所述數(shù)據(jù)文件符合預(yù)定規(guī)則時(shí)將所述數(shù)據(jù)文件中的數(shù)據(jù)導(dǎo)入到所述存儲空間中。
12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)文件導(dǎo)入系統(tǒng),其特征在于,所述導(dǎo)入模塊包括: 轉(zhuǎn)換模塊,用于根據(jù)所述檢驗(yàn)結(jié)果將所述數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換成預(yù)定語言的數(shù)據(jù)記錄; 數(shù)據(jù)寫入模塊,用于將所述數(shù)據(jù)記錄寫入到所述存儲空間中。
13.根據(jù)權(quán)利要求11或12所述的數(shù)據(jù)文件導(dǎo)入系統(tǒng),其特征在于,所述導(dǎo)入模塊還包括: 監(jiān)控模塊,用于監(jiān)控所述數(shù)據(jù)記錄是否成功導(dǎo)入到所述存儲空間中并生成監(jiān)控結(jié)果; 告警模塊,用于在所述監(jiān)控結(jié)果為所述數(shù)據(jù)記錄沒有成功導(dǎo)入到所述存儲空間中時(shí)發(fā)出告警信號。
14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)文件導(dǎo)入系統(tǒng),其特征在于,所述導(dǎo)入模塊還包括: 定時(shí)模塊,用于生成定時(shí)信息; 所述監(jiān)控模塊還用于在所述監(jiān)控結(jié)果為所述數(shù)據(jù)記錄沒有成功導(dǎo)入到所述存儲空間中時(shí)根據(jù)所述定時(shí)信息控制所述導(dǎo)入模塊再次執(zhí)行所述數(shù)據(jù)記錄的導(dǎo)入操作。 所述監(jiān)控模塊還用于在所述數(shù)據(jù)記錄的導(dǎo)入操作次數(shù)大于預(yù)定值時(shí)向所述告警模塊發(fā)送告警命令; 所述告警模塊還用于根據(jù)所述告警命令發(fā)出所述告警信號。
15.根據(jù)權(quán)利要求11所述的數(shù)據(jù)文件導(dǎo)入系統(tǒng),其特征在于,所述數(shù)據(jù)文件導(dǎo)入裝置還包括: 日志記錄模塊,用于記錄所述接收模塊、所述驗(yàn)證模塊和所述導(dǎo)入模塊中的至少一者的日志。
【文檔編號】G06F17/30GK103678423SQ201210362622
【公開日】2014年3月26日 申請日期:2012年9月26日 優(yōu)先權(quán)日:2012年9月26日
【發(fā)明者】覃武權(quán), 趙子軒, 錢程路, 李鶴, 蘆方, 奚少杰, 吳志堅(jiān), 莊子明, 鄒永, 林松 申請人:深圳市世紀(jì)光速信息技術(shù)有限公司