亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種大容量數(shù)據(jù)文件抽取算法的優(yōu)化研究

        2019-04-10 06:09:00張志強(qiáng)王偉鈞
        關(guān)鍵詞:條數(shù)數(shù)據(jù)文件大容量

        張志強(qiáng),王偉鈞,施 達(dá)

        (1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都 610106;2.成都大學(xué) 模式識(shí)別與智能信息處理四川省高校重點(diǎn)實(shí)驗(yàn)室, 四川 成都 610106)

        0 引 言

        目前,很多企業(yè)生產(chǎn)經(jīng)營(yíng)過(guò)程產(chǎn)生的數(shù)據(jù)大都以文件形式保存在磁盤(pán)中,例如,金融企業(yè)及證券企業(yè)每日的金融數(shù)據(jù)、證券交易數(shù)據(jù)及股票交易數(shù)據(jù)等都會(huì)存儲(chǔ)在數(shù)據(jù)文件中.有時(shí),大容量數(shù)據(jù)會(huì)存儲(chǔ)在單個(gè)數(shù)據(jù)文件中,從而產(chǎn)生很多大容量數(shù)據(jù)文件,且以xlsx數(shù)據(jù)格式為主[1-2].從這些大容量xlsx數(shù)據(jù)文件中抽取數(shù)據(jù)以構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)是企業(yè)數(shù)據(jù)挖掘的重要過(guò)程[3].雖然一些學(xué)者對(duì)相關(guān)問(wèn)題的數(shù)據(jù)抽取技術(shù)進(jìn)行了研究,并提出了不同的解決方案[4-7],但針對(duì)大容量xlsx數(shù)據(jù)文件的抽取算法研究相對(duì)較少.對(duì)此,本研究通過(guò)對(duì)常規(guī)數(shù)據(jù)抽取算法的策略進(jìn)行優(yōu)化,提出并設(shè)計(jì)了一種優(yōu)化的大容量數(shù)據(jù)文件抽取算法.測(cè)試結(jié)果表明,該算法具有數(shù)據(jù)容量自適應(yīng)抽取、數(shù)據(jù)快速寫(xiě)入數(shù)據(jù)庫(kù)等特點(diǎn),從而極大提高了大容量數(shù)據(jù)文件抽取的效率.

        1 算法的優(yōu)化設(shè)計(jì)

        本研究的思路是:針對(duì)大容量數(shù)據(jù)文件的抽取,數(shù)據(jù)抽取算法應(yīng)該具備數(shù)據(jù)容量自適應(yīng)處理、自動(dòng)抽取和數(shù)據(jù)快速寫(xiě)入數(shù)據(jù)庫(kù)的特點(diǎn),這樣才使得大容量數(shù)據(jù)文件的數(shù)據(jù)抽取效率能夠真正被提高.

        1.1 數(shù)據(jù)容量自適應(yīng)處理

        當(dāng)對(duì)xlsx數(shù)據(jù)文件進(jìn)行數(shù)據(jù)抽取時(shí),常規(guī)算法一般采用Apache的簡(jiǎn)潔版模糊實(shí)現(xiàn)(Poor obfuscation implementation,POI)組件的用戶(hù)模式進(jìn)行xlsx數(shù)據(jù)文件的抽取操作.由于該模式將xlsx數(shù)據(jù)文件中的所有記錄數(shù)據(jù)以二維數(shù)據(jù)表形式一次性全部讀入內(nèi)存后再進(jìn)行處理,當(dāng)數(shù)據(jù)記錄條數(shù)|records|>10 000時(shí),會(huì)出現(xiàn)內(nèi)存溢出的錯(cuò)誤.對(duì)于很多大容量數(shù)據(jù)文件,其數(shù)據(jù)記錄條數(shù)超過(guò)3萬(wàn)條(|records|>30 000),常規(guī)策略顯然無(wú)法抽取這些大容量數(shù)據(jù).為此,本研究對(duì)常規(guī)策略進(jìn)行優(yōu)化處理,使得算法具有數(shù)據(jù)容量自適應(yīng)處理的能力.

        當(dāng)xlsx數(shù)據(jù)文件的記錄條數(shù)未超過(guò)內(nèi)存溢出的閾值時(shí),算法采用常規(guī)POI組件的用戶(hù)模式進(jìn)行數(shù)據(jù)抽取操作.對(duì)于大容量數(shù)據(jù)文件的抽取操作,算法采用POI的XML簡(jiǎn)單應(yīng)用程序接口(Simple API for XML,SAX)模式進(jìn)行處理:首先,將xlsx數(shù)據(jù)格式轉(zhuǎn)換為逗號(hào)分隔值文件格式(Comma-separated values,CSV)數(shù)據(jù)格式;然后,用SAX模式解析數(shù)據(jù),這種方式的最大特點(diǎn)是不需要將文件中所有記錄數(shù)據(jù)以二維數(shù)據(jù)表形式一次性讀入內(nèi)存,而是以設(shè)定的記錄數(shù)據(jù)為單位抽取數(shù)據(jù)到內(nèi)存,從而避免了內(nèi)存溢出錯(cuò)誤.由于SAX模式中需要確定xlsx數(shù)據(jù)文件記錄列數(shù),本算法采用自動(dòng)確定的策略,其主要體現(xiàn)為:對(duì)大容量數(shù)據(jù)文件,首先利用SAX模式讀取第1行記錄數(shù)據(jù),計(jì)算記錄列數(shù),然后再將列數(shù)值作為參數(shù),利用SAX模式從第2行記錄數(shù)據(jù)開(kāi)始依次抽取數(shù)據(jù).該策略使得算法具有大容量xlsx數(shù)據(jù)文件自適應(yīng)性處理的特性.數(shù)據(jù)容量自適應(yīng)處理流程如圖1所示.

        圖1 數(shù)據(jù)容量自適應(yīng)處理流程

        1.2 數(shù)據(jù)寫(xiě)入的優(yōu)化設(shè)計(jì)

        數(shù)據(jù)寫(xiě)入的常規(guī)策略是從數(shù)據(jù)文件中每抽取1行記錄數(shù)據(jù)后,并以該行記錄數(shù)據(jù)為單位寫(xiě)入數(shù)據(jù)庫(kù).當(dāng)抽取大容量數(shù)據(jù)文件時(shí),由于抽取的記錄數(shù)據(jù)量非常龐大,如果仍然采用常規(guī)的數(shù)據(jù)寫(xiě)入策略,其數(shù)據(jù)寫(xiě)入的速度較慢,那么數(shù)據(jù)處理的總體效率非常低.為了提高數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的速度,本研究對(duì)數(shù)據(jù)寫(xiě)入的常規(guī)策略進(jìn)行了優(yōu)化設(shè)計(jì),提出了一種數(shù)據(jù)寫(xiě)入優(yōu)化策略.

        在該優(yōu)化策略中,提高數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)速度的關(guān)鍵部分是將xlsx數(shù)據(jù)文件中抽取的數(shù)據(jù)以數(shù)據(jù)塊為單位寫(xiě)入數(shù)據(jù)庫(kù),每次將1個(gè)數(shù)據(jù)塊一次性寫(xiě)入數(shù)據(jù)庫(kù),極大地提高了數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的速度,從而解決了記錄數(shù)據(jù)寫(xiě)入的低效率問(wèn)題.數(shù)據(jù)寫(xiě)入優(yōu)化策略的處理流程如圖2所示.

        在數(shù)據(jù)寫(xiě)入優(yōu)化策略中,算法首先將xlsx數(shù)據(jù)文件中抽取的記錄數(shù)據(jù)存儲(chǔ)到內(nèi)存表中,將內(nèi)存表以k條記錄數(shù)據(jù)為單位劃分?jǐn)?shù)據(jù)塊,每次根據(jù)數(shù)據(jù)塊號(hào)i獲取數(shù)據(jù)塊,然后以數(shù)據(jù)塊為單位一次性寫(xiě)入數(shù)據(jù)庫(kù).其中,數(shù)據(jù)塊datablock、分塊數(shù)datablocks、內(nèi)存表中記錄數(shù)據(jù)的條數(shù)recordsizes之間的關(guān)系如式1所示.

        圖2數(shù)據(jù)寫(xiě)入優(yōu)化策略的處理流程

        (1)

        當(dāng)內(nèi)存表中記錄數(shù)據(jù)的條數(shù)recordsizes

        對(duì)內(nèi)存表的記錄數(shù)據(jù)進(jìn)行分塊讀取時(shí),數(shù)據(jù)讀取位置按照分塊進(jìn)行變化,如式2所示,

        (2)

        式中,offseti為第i個(gè)數(shù)據(jù)塊在內(nèi)存表中的數(shù)據(jù)讀取位置.

        1.3 算法實(shí)現(xiàn)

        大容量數(shù)據(jù)文件抽取算法的代碼結(jié)構(gòu)如下:

        Algorithm1 Large-Data-Capacity-extraction(log-datafilename)

        //log-datafilename:日志文件,記錄數(shù)據(jù)文件的地址信息

        begin

        1:從log-datafilename獲取數(shù)據(jù)文件datafilename的地址信息;

        2:try{;

        3:以POI的用戶(hù)模式抽取數(shù)據(jù)文件datafilename的記錄數(shù)據(jù)到內(nèi)存表;

        4:catch(內(nèi)存溢出異常){;

        5:以POI的SAX模式抽取數(shù)據(jù)文件datafilename的記錄數(shù)據(jù)到內(nèi)存表;

        6:};

        7:清洗datafilename地址信息中的特殊字符;

        8:以datafilename地址信息為名稱(chēng)在數(shù)據(jù)庫(kù)中構(gòu)建數(shù)據(jù)表datafilename;

        9:以k為單位對(duì)內(nèi)存表劃分?jǐn)?shù)據(jù)塊;

        10:i←1;

        11:while i≤分塊數(shù)do;

        12:計(jì)算第i個(gè)數(shù)據(jù)塊在內(nèi)存表中的數(shù)據(jù)讀取位置;

        13:讀出第i個(gè)數(shù)據(jù)塊;

        14:第i個(gè)數(shù)據(jù)塊一次性寫(xiě)入數(shù)據(jù)表datafilename;

        15:i←i+1;

        16:end while;

        17:釋放資源;

        end

        2 算法測(cè)試實(shí)驗(yàn)

        在測(cè)試中,Algorithm1算法采用Java、Apache的POI框架及JDBC接口編程實(shí)現(xiàn);測(cè)試環(huán)境為:操作系統(tǒng)為Windows 7,CPU為Intel core i5,內(nèi)存為12 GiB,數(shù)據(jù)庫(kù)系統(tǒng)采用SQL Server 2008 R2,數(shù)據(jù)庫(kù)服務(wù)器為localhost.本研究在實(shí)驗(yàn)中測(cè)試了算法的功能實(shí)現(xiàn),并測(cè)試了數(shù)據(jù)的寫(xiě)入速度.

        2.1 實(shí)驗(yàn)分析

        實(shí)驗(yàn)中,存儲(chǔ)xlsx數(shù)據(jù)文件的地址信息日志文件如圖3所示.“行情數(shù)據(jù)1.xlsx"的數(shù)據(jù)記錄條數(shù)為10 000條,每條記錄34列;“行情數(shù)據(jù)2.xlsx"的數(shù)據(jù)記錄條數(shù)為45 000條,每條記錄34列.通過(guò)Algorithm1算法的抽取操作,其數(shù)據(jù)分別存儲(chǔ)在數(shù)據(jù)庫(kù)的“dbo.c-6-行情數(shù)據(jù)1-xlsx"數(shù)據(jù)表和“c-6-行情數(shù)據(jù)2-xlsx"數(shù)據(jù)表,如圖4和圖5所示.

        圖3日志文件內(nèi)容

        圖4數(shù)據(jù)庫(kù)的存儲(chǔ)形式

        圖5數(shù)據(jù)表的存儲(chǔ)形式

        從圖3~圖5可知,Algorithm1算法能夠自適應(yīng)數(shù)據(jù)文件的數(shù)據(jù)量并實(shí)現(xiàn)了自動(dòng)抽取操作.

        2.2 數(shù)據(jù)分塊寫(xiě)入測(cè)試

        為了驗(yàn)證Algorithm1算法的數(shù)據(jù)寫(xiě)入優(yōu)化的效率,本研究對(duì)算法的數(shù)據(jù)寫(xiě)入操作進(jìn)行了測(cè)試.首先進(jìn)行數(shù)據(jù)塊的分塊大小設(shè)置的測(cè)試實(shí)驗(yàn),測(cè)試的xlsx數(shù)據(jù)文件的記錄數(shù)據(jù)條數(shù)為10 000行,每個(gè)數(shù)據(jù)塊設(shè)置后測(cè)試10次,測(cè)試結(jié)果如表1所示.

        表1 數(shù)據(jù)塊的分塊設(shè)置測(cè)試結(jié)果

        在表1中,Rows of record(datablock)為數(shù)據(jù)塊的記錄數(shù)據(jù)條數(shù)(數(shù)據(jù)塊的大小),Cols of record為數(shù)據(jù)塊的記錄列數(shù),Best time為數(shù)據(jù)寫(xiě)入的最小時(shí)間(以s為單位),Worst time為數(shù)據(jù)寫(xiě)入的最差時(shí)間(以s為單位),Average time為數(shù)據(jù)寫(xiě)入的平均時(shí)間(以s為單位).

        從表1可知,當(dāng)數(shù)據(jù)塊大小設(shè)置為400時(shí),數(shù)據(jù)寫(xiě)入的速度相對(duì)最快.

        另外,本研究將常規(guī)的數(shù)據(jù)寫(xiě)入策略和優(yōu)化的數(shù)據(jù)寫(xiě)入策略所消耗的時(shí)間進(jìn)行了對(duì)比測(cè)試實(shí)驗(yàn).數(shù)據(jù)塊大小設(shè)置為400,每個(gè)數(shù)據(jù)文件測(cè)試10次,實(shí)驗(yàn)結(jié)果如表2所示.

        表2 數(shù)據(jù)寫(xiě)入策略的對(duì)比測(cè)試結(jié)果

        在表2中,Rows of record為數(shù)據(jù)文件的記錄數(shù)據(jù)總條數(shù),Cols of record為數(shù)據(jù)文件的記錄列數(shù),Data writing time of conventional algorithm為常規(guī)策略的平均數(shù)據(jù)寫(xiě)入時(shí)間(以s為單位),Data writing time of optimization algorithm為優(yōu)化策略的平均數(shù)據(jù)分塊寫(xiě)入時(shí)間(以s為單位).

        數(shù)據(jù)寫(xiě)入時(shí)間的曲線變化圖如圖6所示.

        圖6數(shù)據(jù)寫(xiě)入策略消耗時(shí)間的曲線變化圖

        從圖6可知,數(shù)據(jù)寫(xiě)入優(yōu)化策略所消耗的時(shí)間均低于1 min.從表2可知,數(shù)據(jù)寫(xiě)入優(yōu)化策略所消耗的時(shí)間均明顯小于數(shù)據(jù)寫(xiě)入常規(guī)策略所消耗的時(shí)間,數(shù)據(jù)寫(xiě)入速度平均提高了187倍.

        3 結(jié) 論

        為了解決大容量數(shù)據(jù)文件常規(guī)抽取策略的局限性問(wèn)題,本研究對(duì)常規(guī)策略進(jìn)行了優(yōu)化,提出了一種優(yōu)化的大容量數(shù)據(jù)文件抽取算法.為了驗(yàn)證算法的優(yōu)化效果,本研究進(jìn)行了自適應(yīng)數(shù)據(jù)量的數(shù)據(jù)抽取實(shí)驗(yàn)和數(shù)據(jù)寫(xiě)入速度對(duì)比實(shí)驗(yàn).實(shí)驗(yàn)結(jié)果表明,算法既能夠?qū)崿F(xiàn)不同數(shù)據(jù)容量的文件抽取,又能以遠(yuǎn)遠(yuǎn)高于常規(guī)寫(xiě)入速度的方式完成數(shù)據(jù)快速寫(xiě)入數(shù)據(jù)庫(kù)的操作,從而驗(yàn)證了算法優(yōu)化的有效性.

        猜你喜歡
        條數(shù)數(shù)據(jù)文件大容量
        12-20升大容量PET瓶裝式吹瓶機(jī)
        數(shù)據(jù)文件恢復(fù)專(zhuān)題問(wèn)答
        數(shù)據(jù)文件安全管控技術(shù)的研究與實(shí)現(xiàn)
        巧算金魚(yú)條數(shù)
        SQL數(shù)據(jù)文件恢復(fù)工具
        人民網(wǎng)、新華網(wǎng)、中國(guó)非公企業(yè)黨建網(wǎng)兩新黨建報(bào)道條數(shù)排行
        能變出雨衣的18升大容量背包
        對(duì)多邊形對(duì)角線條數(shù)的探究
        每只小貓給了貓媽媽幾條魚(yú)
        基于大容量指紋識(shí)別的實(shí)時(shí)身份認(rèn)證系統(tǒng)
        99精品视频69V精品视频| 亚洲一区二区二区视频| 国内女人喷潮完整视频| 国产精品对白交换视频| 制服丝袜人妻中出第一页| 黄色潮片三级三级三级免费| 亚洲a∨无码精品色午夜| 日韩精品无码视频一区二区蜜桃| 亚洲国产成人精品91久久久| 国产成人av一区二区三| 一本久久综合亚洲鲁鲁五月夫| 天天色天天操天天日天天射| 成人免费直播| 国内少妇自拍区免费视频| 日本草逼视频免费观看| 久久96日本精品久久久| 在线涩涩免费观看国产精品 | 婷婷开心深爱五月天播播| 国产黄片一区视频在线观看| 精品国产一区二区三区av免费| √新版天堂资源在线资源| 欧美日韩亚洲成人| 国产三级av在线播放| 日本道免费一区二区三区日韩精品 | 国产一起色一起爱| 国产免费一区二区av| 性av一区二区三区免费| 羞羞视频在线观看| 香蕉国产人午夜视频在线观看| 狠狠综合久久av一区二区三区| 少妇被粗大的猛进出69影院| 十八岁以下禁止观看黄下载链接 | av人妻在线一区二区三区| 国产av一区二区三区天堂综合网| 少妇厨房愉情理伦片bd在线观看| 开心五月婷婷综合网站| 一区二区三区最新中文字幕| 天天做天天爱天天爽综合网| 久久与欧美视频| 亚洲sm另类一区二区三区| 无码免费一区二区三区|