国产精品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ǎo)入的系統(tǒng)及方法與流程

      文檔序號:11064848閱讀:1081來源:國知局
      支持分布式多文件導(dǎo)入的系統(tǒng)及方法與制造工藝

      本發(fā)明涉及對多文件處理的研究領(lǐng)域,特別涉及一種支持分布式多文件導(dǎo)入的系統(tǒng)及方法。



      背景技術(shù):

      隨著信息化的發(fā)展,各企業(yè)間都出現(xiàn)了各種功能的企業(yè)化軟件,數(shù)據(jù)導(dǎo)入是數(shù)據(jù)的重要來源。隨著數(shù)據(jù)量的積累,需要導(dǎo)入的數(shù)據(jù)量也越來越大,這些數(shù)據(jù)有可能是以文檔的方式保存,如excel文檔、csv文檔、word文檔、txt文檔等等。軟件對文檔進行數(shù)據(jù)讀取,對數(shù)據(jù)進行驗證,轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),把數(shù)據(jù)批量插入到數(shù)據(jù)庫,形成系統(tǒng)數(shù)據(jù)。

      目前對于數(shù)據(jù)文件的導(dǎo)入實現(xiàn)方法主要是兩種:

      在客戶端讀取文件數(shù)據(jù),對數(shù)據(jù)進行驗證后形成結(jié)構(gòu)化的數(shù)據(jù),將數(shù)據(jù)傳輸?shù)椒?wù)端,對數(shù)據(jù)進行批量插入。該實現(xiàn)方法對于數(shù)據(jù)量小的文件,在客戶端進行讀取驗證是完全沒問題;但是如果對于大文件的數(shù)據(jù)導(dǎo)入,在進行文件數(shù)據(jù)讀取時會消耗客戶端的大量資源,導(dǎo)致系統(tǒng)卡頓、不能正常使用,甚至系統(tǒng)內(nèi)存溢出導(dǎo)致系統(tǒng)崩潰。

      在服務(wù)端進行大文件數(shù)據(jù)的讀取,通常服務(wù)器的配置較好。對于單個大文件數(shù)據(jù)讀取,相對于服務(wù)器資源占用較少,不會對服務(wù)器造成影響;但同時(并發(fā))處理多個大文件數(shù)據(jù)讀取時,則會占用服務(wù)器大量的資源,有可能直接影響其他客戶端對于系統(tǒng)的使用,影響系統(tǒng)使用體驗。如果對于占用的資源不能及時的釋放,可能最終導(dǎo)致服務(wù)器崩潰,對系統(tǒng)的影響更是致命的。

      針對以上風(fēng)險,我們需要一種支持分布式多文件導(dǎo)入的方法,以解決對于大文件數(shù)據(jù)導(dǎo)入的問題。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種支持分布式多文件導(dǎo)入的系統(tǒng)及方法,該方法支持對文件的傳輸、數(shù)據(jù)讀取、數(shù)據(jù)驗證、數(shù)據(jù)結(jié)構(gòu)化、數(shù)據(jù)傳輸、文件保存。

      為了達到上述目的,本發(fā)明采用以下技術(shù)方案:

      本發(fā)明的一種支持分布式多文件導(dǎo)入的系統(tǒng),包括服務(wù)層、業(yè)務(wù)處理層以及數(shù)據(jù)庫,所述服務(wù)層,為用戶體現(xiàn)了服務(wù)的接口;所述業(yè)務(wù)處理層,對業(yè)務(wù)數(shù)據(jù)進行處理;所述數(shù)據(jù)庫,記錄導(dǎo)入服務(wù)的一些基礎(chǔ)數(shù)據(jù),并保存文件的臨時數(shù)據(jù),文件數(shù)據(jù)讀取出來后都保存在數(shù)據(jù)庫中,后續(xù)的數(shù)據(jù)驗證,導(dǎo)入都直接操作數(shù)據(jù)庫數(shù)據(jù);

      所述服務(wù)層包括文件保存服務(wù)模塊、數(shù)據(jù)讀取與驗證請求模塊、以及目標數(shù)據(jù)傳輸模塊;所述文件保存服務(wù)模塊,用于提供給用戶上傳文件的服務(wù),可單獨使用該服務(wù),也可以作為文件服務(wù)器,用作保存文件;所述數(shù)據(jù)讀取與驗證請求模塊,用于用戶在完成文件上傳后,調(diào)用該請求把文件數(shù)據(jù)讀取出來并批量插入到數(shù)據(jù)庫中,并執(zhí)行驗證存儲過程以進行數(shù)據(jù)驗證;所述目標數(shù)據(jù)傳輸模塊,用于在執(zhí)行完成數(shù)據(jù)插入后,讀取數(shù)據(jù)并對數(shù)據(jù)進行結(jié)構(gòu)化整理,并將數(shù)據(jù)返回給用戶;

      所述業(yè)務(wù)處理層包括文件讀取組件、消息隊列組件、數(shù)據(jù)驗證組件、以及數(shù)據(jù)庫操作組件;所述文件讀取組件,用于對多種格式的文檔進行讀取,并保證讀取的組件可擴展;所述消息隊列組件,用于根據(jù)服務(wù)所分配的資源,對服務(wù)的使用做限制,同時對并發(fā)數(shù)根據(jù)服務(wù)器資源進行配置,當并發(fā)數(shù)量大于配置數(shù)時,服務(wù)的請求將進入消息隊列,只有之前請求的服務(wù)完成文件讀取,并釋放資源后,請求從消息隊列調(diào)出并執(zhí)行請求;所述數(shù)據(jù)驗證組件,用作對數(shù)據(jù)的驗證,數(shù)據(jù)驗證的方法由存儲過程實現(xiàn),而存儲過程與數(shù)據(jù)類別驗證的映射關(guān)系會保存在數(shù)據(jù)表中,該組件的最大作用就是處理存儲過程與數(shù)據(jù)類別驗證的映射關(guān)系,并執(zhí)行存續(xù)過程進行數(shù)據(jù)驗證;所述數(shù)據(jù)庫操作組件,是對數(shù)據(jù)庫訪問、操作的類,該服務(wù)中所有對數(shù)據(jù)庫的操作最終都會應(yīng)用該組件進行實現(xiàn),包括執(zhí)行數(shù)據(jù)驗證的存儲過程。

      作為優(yōu)選的技術(shù)方案,所述文件讀取組件是對txt文件、excel文件、csv文件、word格式文件的讀取。

      作為優(yōu)選的技術(shù)方案,所述數(shù)據(jù)庫為輕量級數(shù)據(jù)庫,選用Mysql數(shù)據(jù)庫或者微軟的Access。

      本發(fā)明還公開了一種支持分布式多文件導(dǎo)入的方法,包括下述步驟:

      S1、請求文件保存服務(wù),對文件進行上傳,完成上傳后,把文件記錄保存到數(shù)據(jù)庫中;

      S2、請求數(shù)據(jù)讀取與數(shù)據(jù)驗證:

      S2.1、收到請求后,服務(wù)首先根據(jù)當前請求的用戶數(shù)判斷是否超過配置的最大數(shù)量,如果大于則把請求插入到消息隊列中,等待前面請求的用戶完成后,才能處理請求;

      S2.2、數(shù)據(jù)讀取與插入數(shù)據(jù)庫,調(diào)用文件讀取組件,讀取文件的數(shù)據(jù),并根據(jù)讀取出來的數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)庫中生成對應(yīng)的臨時表,將數(shù)據(jù)批量插入到臨時表中,并釋放讀取文件的資源;

      S2.3、根據(jù)請求中的數(shù)據(jù)類型,根據(jù)映射關(guān)系找到該數(shù)據(jù)類型的數(shù)據(jù)驗證存儲過程,并調(diào)用存儲過程,將不符合規(guī)范的數(shù)據(jù)抽取到數(shù)據(jù)錯誤的驗證表,并在臨時表中刪除這些數(shù)據(jù);

      S3、最終數(shù)據(jù)的返回,讀取驗證之后的數(shù)據(jù),并返回最終的數(shù)據(jù)給用戶,用戶可以直接拿到數(shù)據(jù)做批量插入,從而完成文件數(shù)據(jù)導(dǎo)入;

      S4、完成數(shù)據(jù)導(dǎo)入后,刪除導(dǎo)入服務(wù)的臨時數(shù)據(jù)、臨時表結(jié)構(gòu)、臨時配置數(shù)據(jù)。

      作為優(yōu)選的技術(shù)方案,步驟S2.2中,具體為:以數(shù)據(jù)表格式從文檔中讀取出數(shù)據(jù),數(shù)據(jù)表包括了數(shù)據(jù)行與數(shù)據(jù)列,根據(jù)數(shù)據(jù)列的數(shù)量定義臨時表,表名和欄位名稱的定義由規(guī)則定義在數(shù)據(jù)庫中生成物理表,并在數(shù)據(jù)庫中記錄文件名與數(shù)據(jù)表的映射關(guān)系、文件數(shù)據(jù)欄位與臨時表欄位的映射關(guān)系,然后把數(shù)據(jù)都插入到臨時表中,完成數(shù)據(jù)庫對文件數(shù)據(jù)的存儲,同時根據(jù)該結(jié)構(gòu)生成一個記錄異常數(shù)據(jù)的數(shù)據(jù)表,最后釋放讀取文件的資源。

      作為優(yōu)選的技術(shù)方案,步驟S3中,步驟S2.3中具體為:

      在確定數(shù)據(jù)要求與數(shù)據(jù)格式的情況下,通過數(shù)據(jù)庫存儲過程對數(shù)據(jù)進行驗證篩選,數(shù)據(jù)驗證的存儲過程通過創(chuàng)建歷史表時產(chǎn)生的映射關(guān)系,可以確定表結(jié)構(gòu)的信息,根據(jù)驗證的規(guī)則,把異常數(shù)據(jù)抽取到對應(yīng)的異常數(shù)據(jù)表,其中在生成臨時表的同時生成了對應(yīng)的異常數(shù)據(jù)表。作為優(yōu)選的技術(shù)方案,步驟S3中,在讀取驗證的數(shù)據(jù)時,進行分批次讀取,每批次讀取N條數(shù)據(jù),數(shù)據(jù)數(shù)可配置。

      作為優(yōu)選的技術(shù)方案,步驟S3中,還包括下述步驟:

      把數(shù)據(jù)轉(zhuǎn)換成用戶指定的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)是與數(shù)據(jù)格式相對應(yīng)的實體。

      本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點和有益效果:

      1.本服務(wù)不依賴任何的程序或系統(tǒng)軟件,可隨時引用或拋棄;

      2.本發(fā)明可以讀取多種不同格式的文檔數(shù)據(jù),包括excel、csv、word、txt等,并有很強的擴展性,能輕易擴展讀取更多文檔格式的數(shù)據(jù);

      3.本發(fā)明適合文件數(shù)據(jù)導(dǎo)入的功能,而且不會影響到系統(tǒng)服務(wù)端和客戶端的使用;并且增加了易擴展的數(shù)據(jù)驗證方法,讓文件數(shù)據(jù)導(dǎo)入更簡單;

      4.本發(fā)明不用擔(dān)心并發(fā)量大時,會導(dǎo)致服務(wù)器的資源利用問題,導(dǎo)致程序崩潰。

      附圖說明

      圖1是本發(fā)明的服務(wù)結(jié)構(gòu)示意圖;

      圖2是本發(fā)明的功能流程圖。

      具體實施方式

      下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限于此。

      實施例

      為實現(xiàn)支持分布式多文件導(dǎo)入服務(wù),采取分布式的技術(shù)架構(gòu)。整套技術(shù)方案包括了:數(shù)據(jù)傳輸服務(wù)、文件讀取組件、消息隊列組件、輕量級數(shù)據(jù)庫。

      數(shù)據(jù)傳輸服務(wù)可以采用微軟的WCF、WebService、Socket等通信服務(wù),以滿足對文件的傳輸和數(shù)據(jù)的傳輸,保證傳輸?shù)姆€(wěn)定性。

      文件讀取組件,目前主要涵蓋了對txt文件、excel文件、csv文件、word文件等格式文件的讀取。在實現(xiàn)過程采用設(shè)計模式進行設(shè)計,保證讀取組件的可擴展性。

      由于服務(wù)器的資源是有限的,會根據(jù)服務(wù)所分配的資源,對服務(wù)的使用(最主要是控制文件讀取的數(shù)量)做限制,以保證服務(wù)能正常使用。所以引用了消息隊列的組件,以解決該問題。并發(fā)數(shù)可以根據(jù)服務(wù)器資源進行配置。當并發(fā)數(shù)量大于配置數(shù)時,服務(wù)的請求將進入消息隊列,只有之前請求的服務(wù)完成文件讀取,并釋放資源后,請求從消息隊列調(diào)出并執(zhí)行請求。

      為該服務(wù)配置的輕量級數(shù)據(jù)庫,可以選用Mysql數(shù)據(jù)庫或者微軟的Access,數(shù)據(jù)庫中的作用有:

      1.記錄導(dǎo)入服務(wù)的一些基礎(chǔ)數(shù)據(jù),如配置數(shù)據(jù),文件保存的數(shù)據(jù)等;

      2.保存文件的臨時數(shù)據(jù),文件數(shù)據(jù)讀取出來后都保存在數(shù)據(jù)庫中,后續(xù)的數(shù)據(jù)驗證,導(dǎo)入都直接操作數(shù)據(jù)庫數(shù)據(jù),減少對服務(wù)器資源的占用;

      3.數(shù)據(jù)驗證的工作利用存儲過程驗證,存儲過程可以靈活執(zhí)行,只需要執(zhí)行數(shù)據(jù)腳本即可生成,不需要依賴服務(wù)程序。

      如圖1所示,本發(fā)明的結(jié)構(gòu)圖,服務(wù)層體現(xiàn)了服務(wù)的接口,業(yè)務(wù)處理層體現(xiàn)了業(yè)務(wù)處理中所需要引用的組件,及數(shù)據(jù)庫的使用:

      1.服務(wù)層,為用戶體現(xiàn)了該服務(wù)的接口。文件保存服務(wù),提供給用戶上傳文件的服務(wù),單獨使用該服務(wù),也可以作為文件服務(wù)器,用作保存文件;數(shù)據(jù)讀取與驗證請求,用戶在完成文件上傳后,可以調(diào)用該請求把文件數(shù)據(jù)讀取出來并批量插入到數(shù)據(jù)庫中,并執(zhí)行驗證存儲過程以進行數(shù)據(jù)驗證;目標數(shù)據(jù)傳輸服務(wù),用于在執(zhí)行完成數(shù)據(jù)插入后,讀取數(shù)據(jù)并對數(shù)據(jù)進行結(jié)構(gòu)化整理,并將數(shù)據(jù)返回給用戶。

      2.業(yè)務(wù)處理層,文件讀取組件和消息隊列組件分別在前面進行了介紹,在此不再贅述;數(shù)據(jù)驗證組件,用作對數(shù)據(jù)的驗證,數(shù)據(jù)驗證的方法由存儲過程實現(xiàn),而存儲過程與數(shù)據(jù)類別驗證的映射關(guān)系會保存在數(shù)據(jù)表中,該組件的最大作用就是處理存儲過程與數(shù)據(jù)類別驗證的映射關(guān)系,并執(zhí)行存續(xù)過程進行數(shù)據(jù)驗證;數(shù)據(jù)庫操作組件,是對數(shù)據(jù)庫訪問、操作的類,該服務(wù)中所有對數(shù)據(jù)庫的操作最終都會應(yīng)用該組件進行實現(xiàn),包括執(zhí)行數(shù)據(jù)驗證的存儲過程。

      如圖2所示為本發(fā)明的使用方法步驟:

      步驟一請求文件保存服務(wù),對文件進行上傳,完成上傳后,把文件記錄保存到數(shù)據(jù)庫中。

      步驟二是請求數(shù)據(jù)讀取與數(shù)據(jù)驗證:

      1.收到請求后,服務(wù)首先根據(jù)當前請求的用戶數(shù)判斷是否超過配置的最大數(shù)量,如果大于則把請求插入到消息隊列中,等待前面請求的用戶完成后,才能處理請求;

      2.數(shù)據(jù)讀取與插入數(shù)據(jù)庫,調(diào)用文件讀取組件,讀取文件的數(shù)據(jù),并根據(jù)讀取出來的數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)庫中生成對應(yīng)的臨時表,將數(shù)據(jù)批量插入到臨時表中,并釋放讀取文件的資源;

      3.根據(jù)請求中的數(shù)據(jù)類型,根據(jù)映射關(guān)系找到該數(shù)據(jù)類型的數(shù)據(jù)驗證存儲過程,并調(diào)用存儲過程,將不符合規(guī)范的數(shù)據(jù)抽取到數(shù)據(jù)錯誤的驗證表,并在臨時表中刪除這些數(shù)據(jù)。

      步驟三最終數(shù)據(jù)的返回,讀取驗證之后的數(shù)據(jù)(可以分批讀取,每批次讀取N條數(shù)據(jù),數(shù)據(jù)數(shù)可配置),如果需要可把數(shù)據(jù)轉(zhuǎn)換成用戶指定的數(shù)據(jù)結(jié)構(gòu),并返回最終的數(shù)據(jù)給用戶。用戶可以直接拿到數(shù)據(jù)做批量插入,從而完成文件數(shù)據(jù)導(dǎo)入。

      步驟四完成數(shù)據(jù)導(dǎo)入后,刪除導(dǎo)入服務(wù)的臨時數(shù)據(jù)、臨時表結(jié)構(gòu)、臨時配置數(shù)據(jù)。

      上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1