常征 呂勇
摘 要:針對目前主流的數(shù)據(jù)提取、變形、加載(ETL)工具和受限環(huán)境下一些應(yīng)用的不足之處,結(jié)合受限應(yīng)用場景下的特殊要求,提出一種基于正則表達(dá)式的海量數(shù)據(jù)清洗系統(tǒng)(REMCS)。REMCS首先針對超長錯誤數(shù)據(jù)問題、批量數(shù)據(jù)源文件融合問題、數(shù)據(jù)源文件自動分揀問題等典型的6個問題找到數(shù)據(jù)的特點,其次根據(jù)數(shù)據(jù)的特點設(shè)置合適的正則表達(dá)式和預(yù)處理算法,然后使用算法模型去除數(shù)據(jù)中的錯誤完成數(shù)據(jù)預(yù)處理工作。同時詳細(xì)闡述了REMCS的系統(tǒng)邏輯結(jié)構(gòu)、常見問題、對應(yīng)的解決算法和代碼實現(xiàn)方案。最后通過對兼容的數(shù)據(jù)源文件格式、能夠處理的問題種類、問題處理時間、處理數(shù)據(jù)極限值等4個方面進(jìn)行對比,從幾組常見的數(shù)據(jù)處理問題的對比實驗可知,相較于傳統(tǒng)的ETL工具,REMCS支持csv格式、json格式、dump格式等典型的9種文件格式,能夠處理全部的6種常見問題,處理時間更短,能夠支持的數(shù)據(jù)極限值更大。實驗結(jié)果驗證了針對受限應(yīng)用場景下常見的數(shù)據(jù)處理問題,REMCS具有很好的適用性和準(zhǔn)確性。
關(guān)鍵詞: 正則表達(dá)式;數(shù)據(jù)清洗;大數(shù)據(jù);提取、變形、加載工具
中圖分類號:TP391
文獻(xiàn)標(biāo)志碼:A
Abstract:Based on the current mainstream Extract Transform Load (ETL) tools for data and the disadvantages of some applications in restricted environments, a Regular Expression Mass-data Cleaning System (REMCS) was proposed for the specific requirements in the restricted application scenarios. Firstly, the data features of six typical problems including ultra-long error data, batch fusion of data source files, automatic sorting of data source files, were discovered. And the appropriate regular expressions and pre-processing algorithms were put forward according to the data features. Then, data pre-processing was completed by using the algorithm model to remove the errors in data. At the same time, the system logical structure, common problems, and corresponding solutions, and code implementation scheme of REMCS were described in detail. Finally, the comparison experiments of several common data processing problems were carried out with the following four aspects: the compatible data source file formats, the soveble problem types, the problem processing time and the data processing limit value. Compared with the traditional ETL tools, REMCS can support nine typical file formats such ascsv format, json format, dump format,? and can address all six common problems with shorter processing time and larger supportable data limit value. Experimental results show that REMCS has better applicability and high accuracy for common data processing problems in restricted application scenarios.Key words: regular expression; data cleaning; mass data; Extract Transform Load (ETL) tool
0 引言
筆者參與某集團(tuán)公司的“核心電子器件在電子信息裝備中的驗證與應(yīng)用”課題,本課題組通過構(gòu)建的聯(lián)試驗證環(huán)境掌握了大量的實驗數(shù)據(jù)的原始文件,亟須一種自主可控可靠的數(shù)據(jù)處理技術(shù)方法。
截止2017年10月底,該集團(tuán)公司聯(lián)試驗證環(huán)境掌握的實驗數(shù)據(jù)原始文件總大小為21.1TB,實驗數(shù)據(jù)原始文件總數(shù)目為4970405。因為數(shù)據(jù)涉及商業(yè)秘密,該集團(tuán)公司聯(lián)試驗證環(huán)境要求所有工作及工具必須經(jīng)過嚴(yán)格審查。本項目團(tuán)隊面臨的具體業(yè)務(wù)問題就是把如此海量的數(shù)據(jù)在有限的工具和環(huán)境下進(jìn)行清洗、導(dǎo)入、遷移和發(fā)布[1]。
目前國內(nèi)外針對海量數(shù)據(jù)的預(yù)處理過程已經(jīng)有很多成熟的數(shù)據(jù)預(yù)處理——提取、變形、加載(Extract Transform Load, ETL)工具,包括Kettle、Spark stream、Navicat等[2]。關(guān)于不同應(yīng)用場景下的ETL的學(xué)術(shù)研究也有很多,比較新的研究有基于MySQL環(huán)境下處理大數(shù)據(jù)量的輕量級SETL系統(tǒng)[3],也有針對Hadoop環(huán)境下的視頻流數(shù)據(jù)的ETL工具的研究[4],還有面向銀行支付清算業(yè)務(wù)的大數(shù)據(jù)分析平臺的ETL流程設(shè)計的研究[5]。
本項目團(tuán)隊在數(shù)據(jù)處理過程中遇到了許多問題:總量成千上萬,來源多種多樣,格式千奇百怪,質(zhì)量參差不齊,內(nèi)容范圍廣泛。
而上面提及的主流工具和研究在面對海量實驗數(shù)據(jù)處理時暴露出一些不足,例如處理數(shù)據(jù)靈活性不夠,處理數(shù)據(jù)格式不夠多樣,針對數(shù)據(jù)處理過程中出現(xiàn)的問題沒給出定位信息等。
而且因為數(shù)據(jù)敏感性較高,該集團(tuán)公司聯(lián)試驗證環(huán)境要求盡可能在現(xiàn)有基礎(chǔ)工具環(huán)境下進(jìn)行處理,對于其他各種成熟工具都需要另外進(jìn)行審批和檢查。所以這就要求本項目團(tuán)隊必須在現(xiàn)有環(huán)境下進(jìn)行數(shù)據(jù)處理方法上的創(chuàng)新,研發(fā)一些自動化工具模型來解決本項目團(tuán)隊處理實驗數(shù)據(jù)時候面臨的一些問題。
針對本項目中發(fā)現(xiàn)的問題,通過這一年來的積累,本項目團(tuán)隊逐漸累積下來一些常用的模型工具,整合得到基于正則表達(dá)式的海量數(shù)據(jù)清洗系統(tǒng)(Regular Expression Mass-data Cleaning System, REMCS)。
1 問題的提出
該集團(tuán)公司聯(lián)試驗證環(huán)境要求盡可能在現(xiàn)有基礎(chǔ)工具環(huán)境下進(jìn)行處理,對于其他各種成熟工具都需要另外進(jìn)行審批和檢查。本項目團(tuán)隊加入之前,該集團(tuán)公司聯(lián)試驗證環(huán)境的處理方式是通過人工查找。這種人力方法既費時費力,又只能處理少量的小文件,對于大量的數(shù)據(jù)文件或者單個大文件都無能為力。
在實驗數(shù)據(jù)處理過程中本項目團(tuán)隊發(fā)現(xiàn)一些常見的典型問題:
1)數(shù)據(jù)源文件中出現(xiàn)過長數(shù)據(jù)內(nèi)容問題;
2)大量單一表結(jié)構(gòu)數(shù)據(jù)文件處理問題[6];
3)大量多表數(shù)據(jù)源文件混雜問題;
4)結(jié)構(gòu)化數(shù)據(jù)重排列問題;
5)數(shù)據(jù)內(nèi)容代碼翻譯問題[7];
6)數(shù)據(jù)內(nèi)出現(xiàn)錯行問題[8-9]。
接下來,本文就針對以上這6個典型問題給出基于正則表達(dá)式的海量數(shù)據(jù)清洗系統(tǒng)(REMCS)的處理方式。
2 方法
本文提出的基于正則表達(dá)式的海量數(shù)據(jù)清洗系統(tǒng)的總體結(jié)構(gòu)如圖1所示。
該結(jié)構(gòu)參考了最新的ETL研究。
例如:基于Kafka和Disruptor技術(shù)的優(yōu)化ETL工具[10],面向數(shù)據(jù)倉庫的ETL工具的研究與實現(xiàn)[11],支持探索式研判分析的動態(tài)ETL流程服務(wù)研究[12],以及基于Kettle軟件對氣象數(shù)據(jù)ETL流程的政務(wù)云氣象數(shù)據(jù)倉庫研究[13],還有高性能正則表達(dá)式匹配算法研究[14]和正則表達(dá)式匹配算法研究[15]。這些最新的研究為本文提供了很好的研究思路,也為本項目團(tuán)隊后續(xù)的工作提供了參考。
與目前主流的三種典型ETL工具(包括Kettle、Spark stream、Navicat)相比,本文提出的REMCS的不同點主要體現(xiàn)在:
1)工具集合。REMCS針對常見的預(yù)處理典型問題預(yù)制了對應(yīng)的模型工具,通過對比實驗可以證明處理兼容性和時間效率上都更好。
2)輸入輸出接口。REMCS針對常見的數(shù)據(jù)源文件格式都提供了讀取解析工具和輸出工具,對于數(shù)據(jù)源文件格式和輸出文件格式的兼容性更好。
3)預(yù)處理工作臺。REMCS針對數(shù)據(jù)源文件中的常見錯誤都能自動糾正或者給出錯誤位置信息,便于后續(xù)糾正。
接下來本文將針對第1章提出的6個典型問題,重點闡述一下系統(tǒng)的工作原理。
本文會根據(jù)不同的問題給出不同的算法實現(xiàn)流程,以下算法模型都是使用Python腳本完成,運行調(diào)試環(huán)境都是sublime text3和Python2.7編譯器。本文針對實際數(shù)據(jù)處理過程中遇到的不同數(shù)據(jù)格式文件出現(xiàn)同一常見問題,提供了多種實現(xiàn)模型。
2.1 特定超長字段自動化檢測模型本模型主要針對數(shù)據(jù)原文件中出現(xiàn)超長問題字段的自動化檢測問題,這種問題大量存在于excel格式數(shù)據(jù)、csv格式數(shù)據(jù)、文本格式數(shù)據(jù)等。
本文設(shè)計了特定字段超長自動化檢測模型,并且提供了不同格式數(shù)據(jù)文件的處理功能。流程如圖2所示。
圖2 特定超長字段自動化檢測模型流程因為這個問題廣泛存在于多種數(shù)據(jù)格式的文件中,所以REMCS提供了多種數(shù)據(jù)文件的支持,包括:文本文件處理模型、excel文件處理模型、dmp文件處理模型。因為原始數(shù)據(jù)比較敏感而且數(shù)量很大,本文均以樣例數(shù)據(jù)代替。
這里以文本文件處理模型為例。樣例數(shù)據(jù)如下所示:
REMCS通過遍歷所有的數(shù)據(jù),分析得到每一個數(shù)據(jù)項,然后比較數(shù)據(jù)項的長度,得到超過最大限制值的數(shù)據(jù)項內(nèi)容,給出對應(yīng)的位置信息和數(shù)據(jù)內(nèi)容。
數(shù)據(jù)處理人員就可以根據(jù)位置信息和數(shù)據(jù)內(nèi)容來排除數(shù)據(jù)錯誤,使得數(shù)據(jù)能夠成功導(dǎo)入。
2.2 批量文件合并自動化模型
本模型主要針對大量單一表結(jié)構(gòu)數(shù)據(jù)文件的批量自動化處理問題。多個數(shù)據(jù)源文件中字段都是一樣的,該集團(tuán)公司聯(lián)試驗證環(huán)境現(xiàn)在提供的數(shù)據(jù)導(dǎo)入工具每次只能對于單一數(shù)據(jù)文件進(jìn)行導(dǎo)入操作,所以對于大量的小數(shù)據(jù)文件就需要通過人力不停地進(jìn)行導(dǎo)入配置,既費力費時又效率不高。
批量文件合并自動化模型的流程如圖3所示。
REMCS處理這種問題的思路是通過Python腳本來遍歷指定文件夾下所有原始數(shù)據(jù)文件的數(shù)據(jù),把所有數(shù)據(jù)合并到一個數(shù)據(jù)文件中。
數(shù)據(jù)處理人員可以直接處理合并之后的數(shù)據(jù)源文件。
2.3 字段名稱批量對比模型
本模型主要針對大量多表數(shù)據(jù)源文件混雜問題。根據(jù)不同的表頭信息,大量數(shù)據(jù)源文件可以分為若干類,這樣對于每一類數(shù)據(jù)源文件就可以歸結(jié)到上面第二個問題了。
這種問題大量存在于excel格式數(shù)據(jù)、csv格式數(shù)據(jù)、文本格式數(shù)據(jù)等。
本文設(shè)計了字段名稱批量對比模型,并且提供了不同格式數(shù)據(jù)文件的處理功能。
流程如圖4所示。
這里以多個csv文件挑選為例。樣例數(shù)據(jù)如下所示。
REMCS處理這種問題的思路是通過Python腳本來遍歷所有的數(shù)據(jù)源文件,分析得到每一個數(shù)據(jù)源文件的表頭信息,然后對比表頭信息,將數(shù)據(jù)源文件分到不同的文件夾中。數(shù)據(jù)處理人員可以在不同的文件夾中運行2.2節(jié)中的模型。
2.4 結(jié)構(gòu)化數(shù)據(jù)重排模型
本模型主要針對結(jié)構(gòu)化數(shù)據(jù)重排列問題。實驗數(shù)據(jù)中的人力資源數(shù)據(jù)的預(yù)處理過程需要從文本格式文件中將人力資源信息進(jìn)行重新排列,使其能夠符合自動化導(dǎo)入工具要求的應(yīng)用場景,并且將對應(yīng)導(dǎo)出的人員圖像根據(jù)其員工號碼進(jìn)行重命名。這種問題大量存在于txt格式數(shù)據(jù)、sql格式數(shù)據(jù)、 json格式數(shù)據(jù)等。本文設(shè)計了結(jié)構(gòu)化數(shù)據(jù)重排列模型,并且提供了不同格式數(shù)據(jù)文件的處理功能。
REMCS通過Python腳本來遍歷所有的數(shù)據(jù),借助正則表達(dá)式分析得到每一個數(shù)據(jù)項,然后根據(jù)數(shù)據(jù)自動導(dǎo)入工具對格式的要求對分析得到的數(shù)據(jù)項進(jìn)行重新排列。數(shù)據(jù)處理人員可以使用重新排列之后的數(shù)據(jù)文件進(jìn)行導(dǎo)入操作。
2.5 文本數(shù)據(jù)代碼批量翻譯模型
本模型主要針對數(shù)據(jù)內(nèi)容代碼翻譯問題。當(dāng)數(shù)據(jù)來源文件為文本文件,并且數(shù)據(jù)來源方提供了對應(yīng)的數(shù)據(jù)字典,需要根據(jù)數(shù)據(jù)來源方提供的數(shù)據(jù)字典對數(shù)據(jù)源文件內(nèi)部數(shù)據(jù)進(jìn)行代碼翻譯。
文本數(shù)據(jù)代碼批量翻譯模型的流程如圖6所示。
REMCS處理這種問題的思路是通過Python腳本來遍歷指定文件夾下所有原始數(shù)據(jù)文件的數(shù)據(jù),并結(jié)合數(shù)據(jù)來源提供的數(shù)據(jù)字典,對數(shù)據(jù)內(nèi)容進(jìn)行翻譯。數(shù)據(jù)處理人員可以直接導(dǎo)入翻譯之后的數(shù)據(jù)源文件。
2.6 錯行數(shù)據(jù)自動清洗模型
本模型主要針對數(shù)據(jù)內(nèi)出現(xiàn)錯行問題。某些文本格式數(shù)據(jù)原始文件中數(shù)據(jù)內(nèi)部因為出現(xiàn)回車符,導(dǎo)致同一字段內(nèi)部數(shù)據(jù)出現(xiàn)跨行,該集團(tuán)公司聯(lián)試驗證環(huán)境提供指定數(shù)據(jù)導(dǎo)入工具針對錯行數(shù)據(jù)導(dǎo)入出現(xiàn)錯誤。
REMCS處理這種問題的思路是通過Python腳本來遍歷指定文件夾下所有原始數(shù)據(jù)文件的數(shù)據(jù),模型可以通過正則表達(dá)式找到出錯的數(shù)據(jù)行,并將跨行的數(shù)據(jù)記錄進(jìn)行糾正。數(shù)據(jù)處理人員可以直接導(dǎo)入處理之后的數(shù)據(jù)源文件。
3 實驗與分析
為了驗證本文提出的REMCS在功能和性能上的優(yōu)勢,從幾個不同的角度進(jìn)行實驗對比。本實驗使用簡化過的測試數(shù)據(jù),數(shù)據(jù)錯誤出現(xiàn)概率符合正態(tài)分布抽樣,以便于對算法模型進(jìn)行檢驗。實際數(shù)據(jù)體量應(yīng)該需要放大成千上萬倍,實際生產(chǎn)環(huán)境下的工作結(jié)果說明了上述算法模型在實際的海量數(shù)據(jù)環(huán)境下依然能夠正常高效工作。
3.1 不同ETL工具問題適用文件對比
這里本文使用3種常見的通用ETL工具(包括Kettle、Spark stream、Navicat)和本文提出的系統(tǒng)對常見的數(shù)據(jù)文件格式進(jìn)行實驗處理對比,包括txt文件、sql文件、csv文件、dmp文件、 json文件、bson文件、xml文件、xls/xlsx文件、doc/docx文件等,以便驗證本文提出的REMCS數(shù)據(jù)預(yù)處理系統(tǒng)對以上常見數(shù)據(jù)的兼容性。
和本文提出的系統(tǒng)對第2章中提出的6種常見典型問題進(jìn)行實驗對比,包括:特定超長字段自動化檢測問題(簡稱問題1)、批量文件自動化合并問題(簡稱問題2)、字段名稱批量對比問題(簡稱問題3)、結(jié)構(gòu)化數(shù)據(jù)重排問題(簡稱問題4)、本文數(shù)據(jù)代碼批量翻譯問題(簡稱問題5)、錯行數(shù)據(jù)自動化清洗問題(簡稱問題6),以便驗證本文提出的數(shù)據(jù)預(yù)處理系統(tǒng)對以上6種典型問題的處理效果。
從表2可知,本文提出的REMCS對于6種常見的典型問題都具有很好的處理能力,而其他的3種常見通用工具都有或多或少的局限,不能很好地處理全部6種常見的典型問題。
3.3 處理時間對比
本實驗使用3種常見的通用ETL工具和本文提出的系統(tǒng)對于給定3組數(shù)據(jù)集合進(jìn)行處理,對比各種工具的處理時間。本文按照樣本數(shù)量從UCI公共數(shù)據(jù)集合中選擇了3組數(shù)據(jù)集合進(jìn)行對比實驗,如表3所示,
包括:
大樣本量的數(shù)據(jù)集合Census Income(下文稱集合1)、
中等樣本數(shù)量的數(shù)據(jù)集合Wine Quality(下文稱集合2)和
小樣本量的數(shù)據(jù)集合Student Performance(下文稱集合3),
并對這些標(biāo)準(zhǔn)化數(shù)據(jù)插入錯誤數(shù)據(jù)。錯誤數(shù)據(jù)種類會根據(jù)3組數(shù)據(jù)集合進(jìn)行選擇,錯誤數(shù)據(jù)的插入位置隨機(jī)選擇。
從圖8的結(jié)果可知,本文提出的RENCS能夠兼容3類數(shù)據(jù)集合的同時,還具有相對較短的處理時間。
相比較于其他的3種工具,本文提出的REMCS系統(tǒng)對于全部3組數(shù)據(jù)中的錯誤都進(jìn)行了自動處理或者給出錯誤定位;而Navicat雖然在數(shù)據(jù)集合2上耗時接近REMCS,但是在數(shù)據(jù)集合1上因為無法處理的錯誤數(shù)據(jù)而意外終止;Kettle在數(shù)據(jù)集合2上也因為無法處理的錯誤導(dǎo)致意外終止,從而缺少結(jié)果數(shù)據(jù)。
在數(shù)據(jù)集合1中,REMCS、Kettle和Spark stream檢測出全部的200處錯誤,Navicat意外終止是因為無法處理連續(xù)出現(xiàn)的數(shù)據(jù)內(nèi)出現(xiàn)錯行問題,當(dāng)錯行問題數(shù)量超過600行以上時會出現(xiàn)工具意外終止的現(xiàn)象。在數(shù)據(jù)集合2中,REMCS、Spark stream和Navicat檢測出全部的50處錯誤,Kettle意外終止是因為出現(xiàn)無法處理數(shù)據(jù)源中數(shù)據(jù)過長的問題,當(dāng)數(shù)據(jù)長度超過1000B以上時會出現(xiàn)工具意外終止現(xiàn)象。在數(shù)據(jù)集合3中,REMCS、Kettle、Spark stream和Navicat均檢測出全部的10處錯誤。
3.4 處理極限值對比
為了驗證本文提出的REMCS的處理極限值,這里本文跟其他的3種常見通用預(yù)處理工具進(jìn)行了對比實驗。
為了避免測試數(shù)據(jù)的數(shù)據(jù)量對實驗結(jié)果的干擾,本文在不同大小的三種數(shù)據(jù)集合上都進(jìn)行了多次實驗,并統(tǒng)計了各種算法的處理時間。
本文按照樣本數(shù)量從UCI公共數(shù)據(jù)集合中選擇了3組分類問題數(shù)據(jù)集合進(jìn)行對比實驗,如表4所示,包括:SIFT10M(大總量,多字段,下文稱集合4)、HEPMASS(大總量,較少字段,下文稱集合5)和Record Linkage Comparison Patterns(較少總量,較少字段,下文稱集合6),并對這些標(biāo)準(zhǔn)化數(shù)據(jù)隨機(jī)插入錯誤數(shù)據(jù),插入的錯誤數(shù)據(jù)是4種工具都可以處理的簡單錯誤。
本文提出的REMCS對比其他工具在處理大數(shù)據(jù)量的數(shù)據(jù)時候也能滿足時間和功能性的要求,對于全部的三種大小的數(shù)據(jù)集合都能在可接受的時間內(nèi)處理完畢,并自動處理其中的錯誤或給出定位信息,便于用戶進(jìn)行手動調(diào)整。
4 結(jié)語
本項目團(tuán)隊針對處理大量實驗數(shù)據(jù)過程中遇見的常見典型問題總結(jié)出REMCS。REMCS的應(yīng)用場景為高度受限的敏感數(shù)據(jù)中心環(huán)境,該環(huán)境要求盡可能在現(xiàn)有基礎(chǔ)工具環(huán)境下進(jìn)行敏感數(shù)據(jù)的處理,對于其他各種成熟工具都需要進(jìn)行繁瑣的審批和檢查。REMCS提升了本項目團(tuán)隊處理實驗數(shù)據(jù)的效率,減輕了數(shù)據(jù)預(yù)處理工作的工作量和工作壓力。本文通過多個對比實驗從不同方面說明了所提REMCS在受限環(huán)境下的優(yōu)良特性。
致謝 非常感謝“核心電子器件在電子信息裝備中的驗證與應(yīng)用課題”對本項目的大力支持。
參考文獻(xiàn)(References)
[1] KARAGIANNIS A, VASSILIADIS P, SIMITSIS A. Scheduling strategies for efficient ETL execution[J]. Information Systems, 2013, 38(6): 927-945.
[2] WILKINSON K, SIMITSIS A, CASTELLANOS M, et al. Leveraging business process models for ETL design[C]// Proceedings of the 2010 International Conference on Conceptual Modeling, LNCS 6412. Berlin: Springer, 2010: 15-30.
[3] 馮運輝. 一種基于MySQL的可擴(kuò)展ETL系統(tǒng)的研究與實現(xiàn)[J]. 電子技術(shù)與軟件工程, 2018(5): 185-187. (FENG Y H. Research and implementation of an extensible ETL system based on MySQL[J]. Electronic Technology and Software Engineering, 2018(5): 185-187.)
[4] 張敬鋒, 劉瓊, 李磊. Hadoop與ETL技術(shù)在視頻數(shù)據(jù)中的應(yīng)用[J]. 警察技術(shù), 2018, 170(5): 29-31. (ZHANG J F, LIU Q, LI L. Application of Hadoop and ETL in video data[J]. Police Technology, 2018, 170(5): 29-31.)
[5] 謝亞龍. 支付清算業(yè)務(wù)大數(shù)據(jù)分析平臺ETL流程設(shè)計與實踐[J]. 金融科技時代, 2018, 276(8): 62-64. (XIE Y L. Design and practice of ETL process for large data analysis platform of payment and settlement business[J]. Financial Technology Time, 2018, 276(8): 62-64.)
[6] EL AKKAOUI Z, ZIMNYI E, MAZN J, et al. A model-driven framework for ETL process development[C]// Proceedings of the 14th ACM International Workshop on Data Warehousing and OLAP. New York: ACM, 2011: 45-52.
[7] SIMITSIS A, VASSILIADIS P, DAYAl U, et al. Benchmarking ETL workflows[C]// Proceedings of the 2009 Technology Conference on Performance Evaluation and Benchmarking, LNCS 5895. Berlin: Springer, 2009: 199-220.
[8] 徐安令. 正則表達(dá)式的應(yīng)用研究[J]. 數(shù)字技術(shù)與應(yīng)用, 2016(5): 68-68. (XU A L. Research on regular expression application[J]. Digital Technology and Application, 2016(5): 68-68.)
[9] 陳增鑫, 歐陽林艷, 龔思思, 等. 正則表達(dá)式在數(shù)據(jù)抓取中的應(yīng)用研究 [J]. 佳木斯職業(yè)學(xué)院學(xué)報, 2017(4): 408-408. (CHEN Z X, OUYANG L Y, GONG S S, et al. Research on the application of regular expression in data grabbing[J]. Journal of Jiamjusi Vocational Institute, 2017(4): 408-408.)
[10] 王梓, 梁正和, 吳瑩瑩. 基于Kafka、Disruptor技術(shù)對傳統(tǒng)ETL的改進(jìn)[J]. 計算機(jī)技術(shù)與發(fā)展, 2018, 28(11): 26-29. (WANG Z, LIANG Z H, WU Y Y. Improvement of traditional ETL based on Kafka and Disruptor technology[J]. Computer Technology and Development, 2018, 28(11): 26-29.)
[11] 林昆. 面向數(shù)據(jù)倉庫的ETL工具的研究與實現(xiàn)[J]. 計算技術(shù)與自動化, 2018, 37(1): 136-140. (LIN K. Research and implementation of ETL tool oriented data warehouse[J]. Computing Technology and Automation, 2018, 37(1): 136-140.)
[12] 張碩, 趙卓峰, 王桂玲, 等. 支持探索式研判分析的動態(tài)ETL流程服務(wù)[J]. 小型微型計算機(jī)系統(tǒng), 2019, 40(1): 176-180. (ZHANG S, ZHAO Z F, WANG G L, et al. Dynamic ETL process service to exploratory judgment analysis[J]. Journal of Chinese Computer Systems, 2019, 40(1): 176-180.)
[13] 許皓皓, 廉亮, 姚浩立. 基于ETL的政務(wù)云氣象數(shù)據(jù)倉庫構(gòu)建[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2018,27(9): 224-228. (XU H H, LIAN L, YAO H L. Establishment of meteorological data warehouse based on ETL tools[J]. Computer Systems & Applications, 2018,27(9): 224-228.)
[14] 付哲, 李軍. 高性能正則表達(dá)式匹配算法綜述[J]. 計算機(jī)工程與應(yīng)用, 2018, 54(20): 6-18. (FU Z, LI J. Survey on high performance regular expression matching algorithms[J]. Computer Engineering and Applications, 2018, 54(20): 6-18.)
[15] 邵翔宇, 劉勤讓, 孫淼. 基于模板有限自動機(jī)的正則表達(dá)式匹配算法[J]. 計算機(jī)應(yīng)用研究, 2016, 33(7): 2139-2142, 2147. (SHAO X Y, LIU Q R, SUN M. Regular expressions matching algorithm based on templates finite automata[J]. Application Research of Computers, 2016, 33(7): 2139-2142, 2147.)