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

一種復(fù)雜結(jié)構(gòu)的數(shù)據(jù)導(dǎo)入系統(tǒng)的制作方法

文檔序號(hào):9750914閱讀:254來(lái)源:國(guó)知局
一種復(fù)雜結(jié)構(gòu)的數(shù)據(jù)導(dǎo)入系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域中用于外部交換平臺(tái)對(duì)數(shù)據(jù)進(jìn)行導(dǎo)入,尤其涉及一種 復(fù)雜結(jié)構(gòu)的數(shù)據(jù)導(dǎo)入系統(tǒng)。
【背景技術(shù)】
[0002] 當(dāng)前的數(shù)據(jù)導(dǎo)入方式分為兩種:第一種為在基礎(chǔ)數(shù)據(jù)下的數(shù)據(jù)導(dǎo)入節(jié)點(diǎn),第二種 為外部交換平臺(tái)。數(shù)據(jù)導(dǎo)入和外部交換平臺(tái)有各自的優(yōu)勢(shì),同時(shí)也存在一些弊端。
[0003] 數(shù)據(jù)導(dǎo)入采用的格式是CSV格式,CSV格式的特性是只能保存一個(gè)sheet的內(nèi)容,BP 內(nèi)容僅僅是一個(gè)二維空間。本質(zhì)上說(shuō),就是一個(gè)文本信息,數(shù)據(jù)之間用行和逗號(hào)進(jìn)行分割, 用戶(hù)也可以自定義分割方式,分割方式如果和數(shù)據(jù)間發(fā)生沖突,后臺(tái)會(huì)自動(dòng)使用特殊標(biāo)記 進(jìn)行替換,并在解析的時(shí)候還原回來(lái)。而我們的業(yè)務(wù)數(shù)據(jù),除了簡(jiǎn)單的單表格式,還有主子 表格式以及主子孫表格式,甚至像三大檔案那樣,涉及到多個(gè)子表多個(gè)孫表的情況。這樣就 導(dǎo)致當(dāng)需要處理復(fù)雜業(yè)務(wù)的時(shí)候,CSV的存儲(chǔ)格式不能勝任,二維空間無(wú)法將業(yè)務(wù)的所有數(shù) 據(jù)都囊括進(jìn)去。
[0004] 另外,數(shù)據(jù)導(dǎo)入采用的原理是,通過(guò)前臺(tái)加載界面,再?gòu)腸sv中獲取業(yè)務(wù)數(shù)據(jù),把數(shù) 據(jù)解析成符合當(dāng)前業(yè)務(wù)的數(shù)據(jù)結(jié)構(gòu),之后加載到界面上。再調(diào)用model中類(lèi)似save之類(lèi)的方 法間接地調(diào)用后臺(tái)存儲(chǔ)服務(wù),將界面上的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)。其本質(zhì)就是對(duì)手動(dòng)逐條新增 數(shù)據(jù)的一種自動(dòng)化,完全模擬了用戶(hù)的手動(dòng)輸入方式。這樣雖然節(jié)省了數(shù)據(jù)的解析、后臺(tái)業(yè) 務(wù)調(diào)用等動(dòng)作的編寫(xiě),卻犧牲了數(shù)據(jù)處理速度。在PC機(jī)上對(duì)1000條人員檔案進(jìn)行數(shù)據(jù)導(dǎo)入 測(cè)試時(shí)發(fā)現(xiàn),需要消耗將近8分鐘時(shí)間。如果是10萬(wàn)級(jí)的數(shù)據(jù),時(shí)間消耗不敢想象。另外數(shù)據(jù) 的解析工作是在用戶(hù)的PC機(jī)上完成的,客戶(hù)PC機(jī)的性能?chē)?yán)重影響導(dǎo)入速度。
[0005] 外部交換平臺(tái)導(dǎo)入以xml的格式進(jìn)行數(shù)據(jù)存儲(chǔ)。xml本身就是便于機(jī)器識(shí)別的格式 語(yǔ)言,但是對(duì)于人工來(lái)說(shuō)可讀性非常差,尤其是格式化后的xml每一行可顯示的標(biāo)簽只有一 對(duì),導(dǎo)致一個(gè)簡(jiǎn)單的檔案數(shù)據(jù)就需要很多行內(nèi)容才能解釋清楚。例如人員檔案的單條數(shù)據(jù) 存儲(chǔ)為xml需要50行,而1000條數(shù)據(jù)需要50000行。對(duì)于人來(lái)說(shuō),想查找某一條數(shù)據(jù)就變得非 常難,想對(duì)個(gè)別數(shù)據(jù)進(jìn)行編輯也非常困難。
[0006] 另外,在新的業(yè)務(wù)出現(xiàn)時(shí),這個(gè)業(yè)務(wù)的xml格式需要新定義,每一個(gè)業(yè)務(wù)都需要有 一個(gè)自己的xml存儲(chǔ)格式,這同樣需要耗費(fèi)大量的人力,且人工的操作很容易導(dǎo)致格式出 錯(cuò)。

【發(fā)明內(nèi)容】

[0007] 本發(fā)明的目的在于:針對(duì)現(xiàn)有技術(shù)中存在的上述技術(shù)問(wèn)題,提供一種通過(guò)程序收 集分布式系統(tǒng)中的每臺(tái)機(jī)器上產(chǎn)生的日志信息,將匯總起來(lái)的日志數(shù)據(jù)使用實(shí)時(shí)的分布式 計(jì)算框架進(jìn)行分布式計(jì)算。根據(jù)日志信息的級(jí)別,將日志的詳細(xì)信息以郵件、短信息等發(fā)送 給指定的用戶(hù)??墒褂脩?hù)快速、高效的監(jiān)控與反饋系統(tǒng)異常的在分布式環(huán)境中使用的異常 預(yù)警系統(tǒng)。
[0008]本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的: 一種復(fù)雜結(jié)構(gòu)的數(shù)據(jù)導(dǎo)入系統(tǒng),包括 采用xlsx格式文件對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ); 采用SAX解析xlsx文件; 在數(shù)據(jù)流與業(yè)務(wù)V0之間構(gòu)建一套中間模型用以緩存數(shù)據(jù); 采用分段解析算法; 采用多線(xiàn)程處理非樹(shù)狀業(yè)務(wù)。
[0009] 進(jìn)一步,所述數(shù)據(jù)流與業(yè)務(wù)V0之間構(gòu)建的中間模型包括XLSXBigDatalnitializer、 XLSXConstructor、XLSXSing]^PXLSXLine; 所述的XLSXConstructor用以保存表結(jié)構(gòu),表數(shù)據(jù)和存儲(chǔ)主子表之間的關(guān)系; 所述的XLSXSingle通過(guò)XLSXConstructor中解析出的單條數(shù)據(jù)的主子表結(jié)構(gòu)數(shù)據(jù),用 于同BusinessEntity打交道,創(chuàng)建業(yè)務(wù)V0; 所述的XLSXLine用于存儲(chǔ)單條數(shù)據(jù)的字段名與字段值的對(duì)應(yīng)關(guān)系,便于給業(yè)務(wù)V0賦 值。
[0010] 所述數(shù)據(jù)流解析為業(yè)務(wù)V0的步驟如下: 步驟1〇1,加載數(shù)據(jù)流于乂1^乂1^8〇3丨3111;[1:丨31丨261·; 步驟102,解析加載的數(shù)據(jù)流為XLSXConstructor; 步驟 103,解析 XLSXConstructor 為XLSXSingle; 步驟104,判斷是否完成指定數(shù)量的XLSXConstructor解析;如果沒(méi)完成,隨機(jī)返回步驟 103繼續(xù)解析XLSXConstructor為XLSXSingle;如果完成,即進(jìn)去下一步驟; 步驟 105,將 XLSXSingle 解析為XLSXLine,將 XLSXLine 基于 BusinessEntity 計(jì)息為業(yè)務(wù) V00
[0011] 進(jìn)一步,所述的分段解析算法為將單次從數(shù)據(jù)流中讀取的數(shù)據(jù)量進(jìn)行限制,使內(nèi) 存始終維持在一個(gè)固定限度,防止同時(shí)解析大量數(shù)據(jù)導(dǎo)致的內(nèi)存溢出。
[0012] 所述的采用多線(xiàn)程處理非樹(shù)狀業(yè)務(wù)步驟如下: 步驟 201,解析出 XLSXConstructor; 步驟202,從 XLSXConstructor 解析出 XLSXSingle; 步驟203,將解析出的XLSXSingle放入一個(gè)隊(duì)列; 步驟204,若干個(gè)線(xiàn)程同時(shí)從隊(duì)列中獲取XLSXSingle; 步驟205,每一個(gè)線(xiàn)程分別獨(dú)立一個(gè)XLSXSingle; 步驟206,將每一個(gè)XLSXSingle獨(dú)立解析后放入庫(kù)DB。
[0013] 進(jìn)一步,所述的線(xiàn)程數(shù)量為程序每次處理導(dǎo)入數(shù)據(jù)的時(shí)候先按照服務(wù)器性能開(kāi)啟 的線(xiàn)程數(shù)。
[0014] 綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是: 1、 本發(fā)明采用xlsx格式文件對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。xlsx的優(yōu)勢(shì)在于,可讀性好,可編輯行 強(qiáng),突破xls僅支持65535行數(shù)據(jù)的局限性,支持大數(shù)據(jù),支持多頁(yè)簽存儲(chǔ),內(nèi)部采用xml格式 進(jìn)行存儲(chǔ),可以通過(guò)SAX技術(shù)快速解析數(shù)據(jù)。另外,使用特殊列描述表間關(guān)系也很方便。; 2、 本發(fā)明采用SAX的方式解析xlsx,是逐步加載逐步解析的,文本讀到哪里,就解析到 哪里,讀過(guò)的內(nèi)容就拋棄。且可以快速遍歷數(shù)據(jù),在10萬(wàn)條數(shù)據(jù)中隨機(jī)索引數(shù)據(jù)僅需要不到 0-2秒的時(shí)間。更何況我們的數(shù)據(jù)都是結(jié)構(gòu)性的,在加載時(shí)都會(huì)從上到下順序加載,耗時(shí)上 更加有優(yōu)勢(shì)。這樣就不會(huì)出現(xiàn)"一 口吃個(gè)胖子"的情況發(fā)生; 3、 本發(fā)明在數(shù)據(jù)流與業(yè)務(wù)VO之間構(gòu)建一套中間模型,將有助于提升解析效率,提高結(jié) 構(gòu)的清晰度; 4、 本發(fā)明采用分段解析算法,將單次從數(shù)據(jù)流中讀取的數(shù)據(jù)量進(jìn)行限制,使內(nèi)存始終 維持在一個(gè)固定限度,防止同時(shí)解析大量數(shù)據(jù)導(dǎo)致的內(nèi)存溢出。
[0015] 5、本發(fā)明采用多線(xiàn)程處理非樹(shù)狀業(yè)務(wù),使得處理效率大大提高。
【附圖說(shuō)明】
[0016] 本發(fā)明將通過(guò)例子并參照附圖的方式說(shuō)明,其中: 圖1為xlsx存儲(chǔ)結(jié)構(gòu)示意圖; 圖2為以人員檔案為例的xl sx存儲(chǔ)結(jié)構(gòu); 圖3為本發(fā)明的解析流程框圖; 圖4為本內(nèi)存占用監(jiān)測(cè)圖; 圖5為本數(shù)據(jù)量與內(nèi)存占用關(guān)系圖; 圖6為本發(fā)明的多線(xiàn)程結(jié)構(gòu)示意框圖。
【具體實(shí)施方式】
[0017] 本說(shuō)明書(shū)中公開(kāi)的所有特征,或公開(kāi)的所有方法或過(guò)程中的步驟,除了互相排斥 的特征和/或步驟以外,均可以以任何方式組合。
[0018] 本說(shuō)明書(shū)(包括任何附加權(quán)利要求、摘要和附圖)中公開(kāi)的任一特征,除非特別敘 述,均可被其他等效或具有類(lèi)似目的的替代特征加以替換。即,除非特別敘述,每個(gè)特征只 是一系列等效或類(lèi)似特征中的一個(gè)例子而已。
[0019] 當(dāng)前的外部交換平臺(tái)導(dǎo)入,僅支持主子表的數(shù)據(jù)導(dǎo)入方式,如果想支持支持主子 孫表,就必須另外創(chuàng)建一個(gè)xml單獨(dú)導(dǎo)入。而本發(fā)明的一種復(fù)雜結(jié)構(gòu)的數(shù)據(jù)導(dǎo)入系統(tǒng)可以克 服這個(gè)弊端,通過(guò)xlsx的sheet和二維表的優(yōu)勢(shì),充分表達(dá)主子孫的內(nèi)容。如圖1所示的,導(dǎo) 入的結(jié)構(gòu)支持兩種方案,方案中的每一個(gè)方框都代表xlsx中的一個(gè)頁(yè)簽。各個(gè)表的排序方 式為被依賴(lài)的父表在前,子表在后。
[0020] 第一種是自動(dòng)排序結(jié)構(gòu),導(dǎo)入模板存儲(chǔ)結(jié)構(gòu)可以自動(dòng)生成。每一個(gè)頁(yè)簽只存儲(chǔ)一 個(gè)表的數(shù)據(jù),各個(gè)表按照之前說(shuō)的依賴(lài)規(guī)則依次排開(kāi)。
[0021 ]另一種方案為自定義排序結(jié)構(gòu),此結(jié)構(gòu)需要用戶(hù)自己編寫(xiě),在實(shí)際運(yùn)用當(dāng)中可能 會(huì)出現(xiàn)誤操作的情況,但是從數(shù)據(jù)整潔度以及結(jié)構(gòu)性來(lái)看更占優(yōu)勢(shì)。
[0022] 兩種結(jié)構(gòu)在解析的時(shí)候都會(huì)根據(jù)算法從主表中獲取一定量的數(shù)據(jù),然后掃描其它 相應(yīng)的子表和孫表與之對(duì)應(yīng)的數(shù)據(jù)。
[0023] 提升數(shù)據(jù)的導(dǎo)入時(shí)間,就是盡量避免不必要的代碼實(shí)現(xiàn),用最簡(jiǎn)潔的代碼完成任 務(wù)。對(duì)現(xiàn)有數(shù)據(jù)結(jié)構(gòu)進(jìn)行優(yōu)化,這種優(yōu)化不僅僅是參照現(xiàn)有內(nèi)容的優(yōu)化,更是從中找到最佳 解決方案,寫(xiě)出更快的算法;例如,當(dāng)前的導(dǎo)入方式使用串行的方式,那么就尋求并行的解 決方案,充分利用系統(tǒng)的潛能。
[0024] -種復(fù)雜結(jié)構(gòu)的數(shù)據(jù)導(dǎo)入系統(tǒng),包括采用xlsx格式文件對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ); 采用SAX解析xlsx文件;在數(shù)據(jù)流與業(yè)務(wù)V0之間構(gòu)建一套中間模型用以緩存數(shù)據(jù);采用 分段解析算法;采用多線(xiàn)程處理非樹(shù)狀業(yè)務(wù)。
[0025] 具體的采用xlsx格式文件對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。xlsx的優(yōu)勢(shì)在于,可讀性好,可編輯行 強(qiáng),突破xls僅支持65535行數(shù)據(jù)的局限性,支持大數(shù)據(jù),支持多頁(yè)簽存儲(chǔ),內(nèi)部采用xml格式 進(jìn)行存儲(chǔ),可以通過(guò)SAX技術(shù)快速解析數(shù)據(jù)。另外,使用特殊列描述表間關(guān)系也很方便。具體 表定義以人員檔案舉例,如圖2所示, 1) 、A列中有數(shù)據(jù)的行作為表定義行,如第1行和第5行; 2) 對(duì)于表定義行,A列展現(xiàn)的是表業(yè)務(wù)名和表字段名的集合,如A1和A5; 3) 就A1單元格而言,作
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
阿拉善盟| 抚远县| 基隆市| 额尔古纳市| 新民市| 余姚市| 化隆| 永寿县| 无为县| 渭源县| 定安县| 日喀则市| 海城市| 丹江口市| 阜新市| 汉源县| 甘南县| 兴安县| 佛冈县| 三穗县| 临朐县| 岚皋县| 武功县| 清徐县| 巴楚县| 新蔡县| 双辽市| 布拖县| 石屏县| 孟州市| 泌阳县| 阳城县| 汉中市| 资兴市| 霸州市| 罗源县| 平舆县| 调兵山市| 平江县| 鸡东县| 萝北县|