System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)屬于信息技術(shù)、數(shù)據(jù)分析,具體涉及一種分隔符格式文件高性能分析的方法及裝置。
技術(shù)介紹
1、分隔符格式文件(comma?separated?value,簡(jiǎn)稱csv)解析是數(shù)據(jù)分析研究領(lǐng)域一項(xiàng)長期具有挑戰(zhàn)性的問題,其主要任務(wù)是對(duì)這類分隔符格式文件高效的解析和分析,從原始文件中查詢到用戶所需要的信息。因此,實(shí)現(xiàn)快速解析與實(shí)時(shí)分析是研究該問題的重點(diǎn)。分隔符分隔的csv文件作為基本的文件格式越來越多地出現(xiàn)在各種應(yīng)用程序中。然而,csv文件的固有格式可能會(huì)阻礙并行處理,從而導(dǎo)致性能損失和顯著的開銷。數(shù)據(jù)提取將csv文件轉(zhuǎn)換為表格結(jié)構(gòu),常見的處理流程往往限制于塊解耦和處理嵌套的分隔符,例如字段或引號(hào)內(nèi)字符,導(dǎo)致串行處理。數(shù)據(jù)提取和轉(zhuǎn)換過程仍然是資源密集型的開銷,成為csv數(shù)據(jù)分析時(shí)的瓶頸。而并行處理能夠提升多核系統(tǒng)下cpu的利用率,同時(shí)提高csv數(shù)據(jù)解析與分析的速度。
2、csv并行處理技術(shù)是針對(duì)csv格式的數(shù)據(jù)集的高性能方法,可以極大地加速解析和降低成本。與傳統(tǒng)的基于串行思路為csv文件構(gòu)建索引的思路不同,并行技術(shù)將csv文件切分為同等大小的塊,通過在每個(gè)塊內(nèi)各自構(gòu)建索引,最后將索引進(jìn)行合并。然而現(xiàn)有的研究工作的可伸縮性和性能仍然依賴于對(duì)塊的轉(zhuǎn)換和上下文驗(yàn)證。更快和更復(fù)雜的硬件架構(gòu)凸顯了整個(gè)分析過程中的csv提取和轉(zhuǎn)換瓶頸,特別是在并行處理中。為了適應(yīng)計(jì)算吞吐量的指數(shù)級(jí)增長,制造商正致力于擴(kuò)大核的數(shù)量,并提高單指令多數(shù)據(jù)(single?instructionmultiple?data,simd)的能力。為了充分利用當(dāng)前
技術(shù)實(shí)現(xiàn)思路
1、本專利技術(shù)針對(duì)上述問題,提供一種分隔符格式文件高性能分析的方法及裝置。
2、本專利技術(shù)采用的技術(shù)方案如下:
3、一種分隔符格式文件高性能分析的方法,包括以下步驟:
4、通過迭代的方式采樣輸入文件中的控制字符,確定控制字符的符號(hào)狀態(tài)和邏輯位置;
5、根據(jù)控制字符確定有限狀態(tài)推導(dǎo)器模型中應(yīng)當(dāng)選取的字符轉(zhuǎn)換層級(jí),所述字符轉(zhuǎn)換層級(jí)包括記錄級(jí)和字段級(jí);
6、將輸入文件切分為相等大小的文本塊,并將其放入空閑處理單元中,基于有限狀態(tài)推導(dǎo)器模型實(shí)現(xiàn)并行掃描,并利用simd加速分隔符的識(shí)別,生成位圖索引,所述位圖索引將分隔符的邏輯位置映射到物理位置;
7、基于位圖索引進(jìn)行查詢,包括關(guān)鍵字搜索查詢模式和文件聯(lián)合查詢模式。
8、進(jìn)一步地,所述控制字符包括分隔符、雙引號(hào)、轉(zhuǎn)義字符,所述分隔符包括逗號(hào)、換行符,所述控制字符外的部分稱為文本字符;所述符號(hào)狀態(tài)是指采樣中是否存在;所述邏輯位置是指采樣到的控制字符在文本中的相對(duì)位置。
9、進(jìn)一步地,所述通過迭代的方式采樣輸入文件中的控制字符,包括采用啟發(fā)式算法檢查文件中的控制字符,即只要遇到控制字符中的某控制字符,視為該文件中包含控制字符并停止檢查該控制字符,直至包含控制字符中的全部字符或至文件末尾;并且,使用simd指令集快速對(duì)csv文件中連續(xù)字符串是否包含某類控制字符做出判斷,擴(kuò)大采樣范圍的同時(shí)盡可能維持原先的采樣速度。
10、進(jìn)一步地,所述有限狀態(tài)推導(dǎo)器是基于狀態(tài)最小化的有限狀態(tài)推導(dǎo)器,包括csv格式文件轉(zhuǎn)換的ir、er、iq、eq四種狀態(tài)及其對(duì)應(yīng)的轉(zhuǎn)換,其中ir表示記錄內(nèi),er表示記錄結(jié)束,iq表示引號(hào)內(nèi),eq表示引號(hào)結(jié)束。
11、進(jìn)一步地,所述根據(jù)控制字符確定有限狀態(tài)推導(dǎo)器模型中應(yīng)當(dāng)選取的字符轉(zhuǎn)換層級(jí),包括:當(dāng)采樣不存在雙引號(hào)時(shí),認(rèn)為能夠通過記錄級(jí)的字符轉(zhuǎn)換確定分隔符所處的位置;當(dāng)采樣存在雙引號(hào)時(shí),認(rèn)為需要結(jié)合字段級(jí),進(jìn)行字段級(jí)的字符轉(zhuǎn)換以確定分隔符所處的位置。
12、進(jìn)一步地,對(duì)所述位圖索引進(jìn)行處理以簡(jiǎn)化查詢時(shí)間,或不對(duì)所述位圖索引進(jìn)行處理而直接進(jìn)行查詢。
13、進(jìn)一步地,所述關(guān)鍵字搜索查詢模式,是使用者提供所需要查詢的關(guān)鍵字,返回在文件中查找到的所有完全一致的匹配項(xiàng)的行數(shù)、列數(shù);所述文件聯(lián)合查詢模式,是使用者提供所需要查詢的文件夾名稱以及想要查詢的關(guān)鍵字,然后讀入文件夾目錄下的所有csv文件,并返回在文件中查找到的所有完全一致的匹配項(xiàng)的文件名、行數(shù)、列數(shù)。
14、一種分隔符格式文件高性能分析的方法及裝置,包括:
15、控制字符采樣模塊,用于通過迭代的方式采樣輸入文件中的控制字符,確定控制字符的符號(hào)狀態(tài)和邏輯位置;
16、轉(zhuǎn)換層級(jí)選取模塊,用于根據(jù)控制字符確定有限狀態(tài)推導(dǎo)器模型中應(yīng)當(dāng)選取的字符轉(zhuǎn)換層級(jí),所述字符轉(zhuǎn)換層級(jí)包括記錄級(jí)和字段級(jí);
17、位圖索引生成模塊,用于將輸入文件切分為相等大小的文本塊,并將其放入空閑處理單元中,基于有限狀態(tài)推導(dǎo)器模型實(shí)現(xiàn)并行掃描,并利用simd加速分隔符的識(shí)別,生成位圖索引,所述位圖索引將分隔符的邏輯位置映射到物理位置;
18、查詢模塊,用于基于位圖索引進(jìn)行查詢,包括關(guān)鍵字搜索查詢模式和文件聯(lián)合查詢模式。
19、本專利技術(shù)與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
20、(1)與其他表格數(shù)據(jù)的單線程處理方法相比,本專利技術(shù)在線程級(jí)與指令級(jí)實(shí)現(xiàn)了并行處理,解決了面對(duì)csv文件處理受制于固有格式(多類行、列分隔符)而只能串行處理的速度瓶頸問題。
21、(2)本專利技術(shù)建立了分層有限狀態(tài)推導(dǎo)器模型,能夠啟發(fā)式地確定包含不同控制字符的各類csv文件,并從中選取最簡(jiǎn)狀態(tài)進(jìn)行轉(zhuǎn)換,從而提升了處理速度,減小了內(nèi)存消耗。
22、(3)本專利技術(shù)在不同核心數(shù)量測(cè)試中可擴(kuò)展性表現(xiàn)良好,能夠適配部署在不同核心數(shù)量的環(huán)境中,充分利用當(dāng)前環(huán)境實(shí)現(xiàn)并行。
本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種分隔符格式文件高性能分析的方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述控制字符包括分隔符、雙引號(hào)、轉(zhuǎn)義字符,所述分隔符包括逗號(hào)、換行符,所述控制字符外的部分稱為文本字符;所述符號(hào)狀態(tài)是指采樣中是否存在;所述邏輯位置是指采樣到的控制字符在文本中的相對(duì)位置。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過迭代的方式采樣輸入文件中的控制字符,包括采用啟發(fā)式算法檢查文件中的控制字符,即只要遇到控制字符中的某控制字符,視為該文件中包含控制字符并停止檢查該控制字符,直至包含控制字符中的全部字符或至文件末尾;并且,使用SIMD指令集快速對(duì)CSV文件中連續(xù)字符串是否包含某類控制字符做出判斷,擴(kuò)大采樣范圍的同時(shí)盡可能維持原先的采樣速度。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述有限狀態(tài)推導(dǎo)器是基于狀態(tài)最小化的有限狀態(tài)推導(dǎo)器,包括CSV格式文件轉(zhuǎn)換的IR、ER、IQ、EQ四種狀態(tài)及其對(duì)應(yīng)的轉(zhuǎn)換,其中IR表示記錄內(nèi),ER表示記錄結(jié)束,IQ表示引號(hào)內(nèi),EQ表示引號(hào)結(jié)束。
5.根據(jù)權(quán)利要求1所述的方法,其
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,對(duì)所述位圖索引進(jìn)行處理以簡(jiǎn)化查詢時(shí)間,或不對(duì)所述位圖索引進(jìn)行處理而直接進(jìn)行查詢。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述關(guān)鍵字搜索查詢模式,是使用者提供所需要查詢的關(guān)鍵字,返回在文件中查找到的所有完全一致的匹配項(xiàng)的行數(shù)、列數(shù);所述文件聯(lián)合查詢模式,是使用者提供所需要查詢的文件夾名稱以及想要查詢的關(guān)鍵字,然后讀入文件夾目錄下的所有CSV文件,并返回在文件中查找到的所有完全一致的匹配項(xiàng)的文件名、行數(shù)、列數(shù)。
8.一種分隔符格式文件高性能分析的方法及裝置,其特征在于,包括:
9.一種計(jì)算機(jī)設(shè)備,其特征在于,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被配置為由所述處理器執(zhí)行,所述計(jì)算機(jī)程序包括用于執(zhí)行權(quán)利要求1~7中任一項(xiàng)所述方法的指令。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被計(jì)算機(jī)執(zhí)行時(shí),實(shí)現(xiàn)權(quán)利要求1~7中任一項(xiàng)所述的方法。
...【技術(shù)特征摘要】
1.一種分隔符格式文件高性能分析的方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述控制字符包括分隔符、雙引號(hào)、轉(zhuǎn)義字符,所述分隔符包括逗號(hào)、換行符,所述控制字符外的部分稱為文本字符;所述符號(hào)狀態(tài)是指采樣中是否存在;所述邏輯位置是指采樣到的控制字符在文本中的相對(duì)位置。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過迭代的方式采樣輸入文件中的控制字符,包括采用啟發(fā)式算法檢查文件中的控制字符,即只要遇到控制字符中的某控制字符,視為該文件中包含控制字符并停止檢查該控制字符,直至包含控制字符中的全部字符或至文件末尾;并且,使用simd指令集快速對(duì)csv文件中連續(xù)字符串是否包含某類控制字符做出判斷,擴(kuò)大采樣范圍的同時(shí)盡可能維持原先的采樣速度。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述有限狀態(tài)推導(dǎo)器是基于狀態(tài)最小化的有限狀態(tài)推導(dǎo)器,包括csv格式文件轉(zhuǎn)換的ir、er、iq、eq四種狀態(tài)及其對(duì)應(yīng)的轉(zhuǎn)換,其中ir表示記錄內(nèi),er表示記錄結(jié)束,iq表示引號(hào)內(nèi),eq表示引號(hào)結(jié)束。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)控制字符確定有限狀態(tài)推導(dǎo)器模型中應(yīng)當(dāng)選取的字符轉(zhuǎn)換層級(jí),包括:...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:代培元,張珩,武延軍,
申請(qǐng)(專利權(quán))人:中國科學(xué)院軟件研究所,
類型:發(fā)明
國別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。