陳亞東 鮮國建 趙瑞雪 劉現武 郭淑敏

摘要:蘋果是高附加值的果品,也是世界四大水果之一。蘋果產業在千余年的發展過程中,積累了豐富的數據資源,這些資源也是產業數據分析的基礎和關鍵。由于蘋果產業的數據來源豐富、結構各異,因此,數據的集成和共享還存在一定的難度,對數據進行整合十分必要。以國家科技圖書文獻中心篇名含“蘋果”的數據資源為材料,以基于ETL-KETTLE的數據轉換模式為研究方法,提出面向蘋果產業數據整合的思路。結果表明,基于ETL-KETTLE的數據整合法則,可以分析蘋果產業多源異構數據的關鍵節點、過濾和清洗噪音數據、發現和解析多源數據的字段,最后通過表輸出完成題目、摘要、關鍵詞等字段的統一,從而實現蘋果產業數據的整合。將基于ETL-KETTLE模式的整合方法應用于蘋果產業,可以為產業數據的重組與共享提供科學的工具,為數據的高效獲取和有效組織表達提供新的思路和方法,助力蘋果產業的科技創新,提升蘋果產業的國際競爭力。
關鍵詞:蘋果產業;ETL;KETTLE;數據;整合;應用
中圖分類號: S126;TP311.13? 文獻標志碼: A? 文章編號:1002-1302(2019)10-0230-05
蘋果是世界四大水果之一,也是果品市場上的重要消費品,蘋果產業在我國農業經濟發展中長期占有重要的地位[1]。蘋果產業的數據資源較為豐富且類型多樣,用戶需要的數據通常以不同的格式分散存儲在不同的網頁或者數據庫中[2],因此蘋果產業數據的集中訪問和集成共享還存在一定的難度,尚未形成一套科學系統的數據處理方式和方法,有待于從微觀層面進一步解決數據的集成統一問題,以實現異質數據的標準化輸出,為蘋果產業數據的共享復用奠定基礎。ETL即數據的抽取-轉換-裝載,是用于解決多源異構數據集成的一系列過程,也是獲取高質量數據的關鍵[3]。KETTLE是ETL的一種開源工具,能夠對數據進行穩定抽取,可以提供面向不同行業的數據集成解決方案[4],郭丹等通過構建KETTLE過程模型,對煙卷銷售數據進行整合與挖掘,為煙草行業的決策提供數據基礎[5]。李云松利用KETTLE開源軟件,對小型和微型企業的數據進行整合,可以在同一個平臺得到共享,滿足后臺用戶對數據的查詢和管理需求[6]。尹曉楠等基于KETTLE進行研究,使整個企業的生產數據工具對北京市水務數據進行提取與轉換,實現了北京水務普查數據的整合和無縫對接,提高了普查工作的精確度[7]。基于相關的技術模型和前人的成功經驗,本試驗以蘋果產業的數據整合為目標,基于ETL的開源軟件KETLLE對蘋果產業數據的標準化整合及其應用進行研究,以期為我國蘋果產業數據共享和知識檢索提供數據基礎。
1 材料與方法
1.1 數據材料
(數據)材料來源于國家科技圖書文獻中心(NSTL,http://www.nstl.gov.cn),以題目含有“蘋果”為檢索詞進行檢索,檢索后所得到的數據為本研究的材料,這些數據資源涵蓋了蘋果產業數據的主要組成,具有代表性和可獲取性。
1.2 研究方法
1.2.1 ETL過程簡述 ETL是數據轉換的一個關鍵環節,是多元數據集成的有效方法,其含義是從多個數據源抽取數據,通過數據的抽取、轉換和加載等相關規則轉換成最后所需要的數據格式,最后裝載到對應的數據庫中(圖1)。ETL技術的關鍵點主要有3個方面:第一是數據抽取,這是數據轉化的前提條件,其過程是將數據從各種原始的數據中首先讀取出來;第二是數據的轉換,按照相關的規則將多源異構數據進行格式和結構統一;第三是數據的裝載,將轉換后形成統一格式的數據批量導入到數據倉庫中進行存儲[8]。ETL技術與數據倉庫相比較,能夠有效地集成數據,避免了數據倉庫不能對數據進行修改而只能進行數據增加的弊端,可以靈活實現數據的刪除和修改,實用性更強[9]。
1.2.2 KETTLE過程簡述 KETTLE是構建數據集成解決方案的ETL工具,也是ETL的一種開源工具,它的本意是將不同格式的數據注入到同一個數據庫中,經過數據的處理與轉換之后,成為統一格式的數據進行輸出。KETTLE提供了一個圖形化的工作界面及相應的對象設置來描述用戶的任務需求,用戶在使用過程中對KETTLE內部的數據處理過程可以一無所知[6]。作為數據整合的重要工具,KETTLE能夠對不同格式的數據進行接收和輸入,包括XML、ACCESS、Cube、Excel等,數據被接收以后,在相應的法則下可以進行源數據結構分析、清洗以及解碼,最后實現數據的整合[10]。
2 基于ETL-KETTLE模式的數據轉換
2.1 數據的抽取與輸入
在國家科技圖書文獻中心(NSTL)系統中抽取篇名含有“蘋果”的數據,其XML樣本的片段截圖如圖2所示。數據抽取完成后,使用KETTLE工具對數據進行接收,將所有被抽取的XML(也可支持CSV、Excel等更多格式)文件進行結構解析。數據抽取的過程包括數據剖析、增量數據捕獲以及數據抽取3個環節[11]。數據剖析過程主要是對源數據的數據結構以及數據的內容進行分析,如不同數據的字段規律等;增量數據的捕獲主要是實現增量的抽取,其關鍵點是如何準確快速地捕獲變化的數據;數據抽取則是對源數據的獲取,不同數據源的數據須要經過合并后才能存入到數據倉庫中,在數據抽取完成后,這些數據都會被臨時存入數據的一個中轉區域。
2.2 數據的轉換
2.2.1 數據轉換原理 KETTLE在實際工作過程中是通過工作流的方式來完成數據轉換的,按照工具中預先設置好的工作步驟,逐步對數據流的操作進行處理。數據轉換的過程主要包括對數據進行節點分析、過濾清洗以及映射匹配3個步驟,KETTLE工具基于XML數據轉換的工作原理圖如圖3所示,將XML的原始文件輸入以后,KETTLE能夠解析XML文件的文檔結構,并過濾清洗噪音數據,通過對各文件中關鍵詞等組合進行自動分析,將各文檔的關鍵字段自動解析并進行不同來源文件的映射匹配,最后將作者姓名、作者工作單位、摘要等信息解析出來,利用KETTLE的內部轉換公式進行統一格式的表輸出。
2.2.2 節點解析 數據的節點解析是指對數據的有效性以及節點結構的分析,從而提高數據的有效性和可靠性。KETTLE能自動解析XML文件的結構,主要是經過以下3種驗證:XML驗證是檢驗文件是否為形式正確的XML文檔,主要是檢驗語法的正確性;DTD驗證是檢驗文件是否為有效形式的XML文檔,保證XML格式的正確和有效;XSD驗證為XML結構定義,目的是檢查XML文檔是否符合其要求。驗證成功之后,KETTLE可以列出XML來源文件中的標簽節點名稱和對應的XPath路徑(圖4),利用KETTLE可以將所有含“蘋果”數據中的關鍵詞、作者、通信地址、標題、DOI等信息節點通過路徑解析出來。
2.2.3 數據清洗 數據清洗的目的是發現并糾正數據文件中可識別的錯誤,把不合規則的數據進行處理和過濾,包括檢查數據的一致性、處理無效值和缺省值等[12]。在數據的輸入與輸出之間,必須對數據進行過濾、去質量、替換內容等數據清洗工作,這類數據包括同名的錯誤數據、噪聲數據,諸如唯一標識符、標題、作者等有些必備內容為空的數據,這些數據必須進行過濾和刪除;還有些數據并不是很完整,意義不大,這部分數據則須要根據具體的情況來處理;對于內容有誤的錯誤數據也要進行及時的清洗和過濾,否則會影響數據資源的準確性和科學性;還有一類數據叫作數據冗余即重復的數據,這類數據會占用一部分內存,造成數據空間的浪費,因此也要進行清洗。
2.2.4 映射匹配 映射匹配主要是將原數據類型及其值的含義映射成為符合目標數據的類型與含義的數據過程[13]。基于KETTLE工具對數據進行解析和過濾之后,可以指定轉換后的目標數據輸出,如指定統一存放的關系型數據庫對應的表,同時可以指定XML文件中節點名稱與數據庫表結構字段的對應關系,從而將來源數據中的字段與目標數據庫中的字段進行映射匹配。通過映射匹配,轉換后的數據由異構變成結構化數據,不同來源的文件在摘要、DOI、標題、起始頁碼等字段進行映射匹配,實現多源異構數據的結構化匹配。
2.3 數據的輸出
經過數據的抽取和轉換,不同來源與不同結構的數據在基于ETL-KETTLE的轉換中實現了數據結構與節點解析、噪聲清洗與字段匹配,異構數據通過相同的節點與流字段進行重組,從而實現了數據的共享和復用。數據輸出的結果如圖5所示,所有的XML數據經過整合以后,原始的數據集群按照新的數據結構重新輸出,字段類型包括文章的篇名、語言種類、摘要、頁碼等,數據輸出后可通過相關的工具直接裝載和導入到所需的數據庫中,為科研人員及不同需求的用戶提供快速與全面的產業數據服務。
3 基于數據整合的應用
3.1 檢索服務與知識服務
基于ETL-KETTLE的整合方法,蘋果產業的數據可以同構化在一個平臺實現共享,提供基于產業數據的檢索服務和知識服務。如輸入專家的名字“劉鳳之”進行檢索,可以檢索到其發表的科技文獻、項目報告、成果專利等,滿足用戶對于知識獲取的需要,減少用戶通過不同來源獲取不同類型數據的時間成本。同時,以檢索詞為中心的數據間的關系能夠進一步被發現,形成知識立方,幫助用戶發掘潛在的需求。如專家劉鳳之的研究方向、工作機構、研究的品種與相關的栽培技術等可以形成知識網格,為檢索用戶提供更深層次的知識服務(圖6)。
3.2 生產指導
通過產業數據進行整合,可以將栽培生產的知識都載入到數據庫中,在用戶提問的過程中首先激活數據庫中的知識,通過過程性的推理來滿足生產者的作業需求。數據整合在生產指導上的應用,可以從很大程度上提高蘋果生產的品質和產量,輔助農戶解決生產問題。例如,果農在蘋果的生產中遇到一種病害,但并不知道病害的名字,只了解病害發病的癥狀,想快速獲取病害防治的方法,可以根據系統的提示輸入發病的部位和選擇相關的癥狀,系統根據輸入的內容與數據庫中的信息進行匹配返回給用戶進行選擇,直到最后實現系統的反饋條件與所輸入的條件完全匹配,即可獲得相關的解決方案(圖7),讓農民足不出戶就能得到指導,提高生產效益。
3.3 統計分析
基于ETL-KETTLE數據整合的方法,還能夠實現蘋果產業各類數據的統計分析。以2010—2014年的病害和蟲害數據為基礎,數據來源于全國蘋果病蟲害防控協作網、國家蘋果產業技術體系、中國蘋果網、科技文獻,將整合結果去質量后可以得出我國蘋果四大產區主要發生的病蟲害。對四大產區的病蟲害發生情況(表1)進行分析,可以為我國蘋果產業的栽培生產與病蟲害防治提供支持,也可為生產預警和災害預測提供依據。對于各個產區病蟲害發生的分析,可以對于我國病蟲害的防治、各個地區天敵引入以及產區之間的協調發展與栽培品種調整起到很好的指導作用。
4 結論與討論
隨著“互聯網+農業”時代的到來,信息化已逐漸融入到農業領域的各個產業,不斷滿足用戶對于信息和知識的需要[14]。在大數據時代下,圍繞蘋果產業發展的突出問題和薄弱環節,充分運用數據理念、創新的思路和方法,可以快速、全面和準確地獲取產業數據,推動產業的科技創新和轉型升級。數據整合作為我國蘋果產業在信息化建設中的基礎環節和重點環節,其整合程度會影響到蘋果產業數據的捕獲能力以及決策支持的精準度。本研究將ETL-KETTLE技術應用到蘋果產業,以ETL技術為核心,利用KETTLE工具,驗證和實現蘋果產業多源異構數據的轉換與重組,推動產業數據的共享和利用,有效避免了用戶反復查找數據帶來的時間與成本的浪費,提升了蘋果產業數據應用與服務的信息化能力。經過ETL-KETTLE整合后的數據可以存儲在數據庫和不同的服務器中,在相應的功能模塊實現蘋果產業的科技文獻、專利、科研報告等多類型的數據錄入與查詢,基于整個產業鏈條來完成數據的共享與利用,為政府部門決策支持和市場主體生產經營的決策提供普惠式的服務。
本試驗也存在一定的不足之處:首先,在操作中所涉及的數據語言類型只有1種,沒有針對中英文等多語言的數據集成整合進行進一步的深入研究,期望其在以后會有更多的學者來探討和研究。其次,在此只是選取了部分數據作為材料,驗證該方法在蘋果產業數據整合的可行性,基于此方法,可應用于更多來源數據的整合研究。基于數據整合后的應用,這里的知識闡述了3個方面并作了案例分析,在實踐的過程中還可以在其他方面來進一步拓展。未來的數據整合會朝著優化ETL-KETTLE流程的方向發展,完善數據清洗和轉換的過程,從而提高數據整合的質量。同時,基于本研究對蘋果產業數據整合的思路與工具,也可應用于小麥、玉米、番茄等其他類別的農業領域,期望后續有更多的學者關注和加強農業領域產業數據的整合研究,為產業的健康可持續發展提供基礎數據資源保障。
參考文獻:
[1]韓明玉,馮寶榮. 國內外蘋果產業技術發展報告[M]. 楊凌:西北農林科技大學出版社,2011.
[2]陳亞東,孟憲學,趙瑞雪,等. 我國蘋果產業科學數據建設初探[J]. 果樹學報,2016,33(6):719-726.
[3]張 瑞. ETL數據抽取研究綜述[J]. 軟件導刊,2010,9(10):164-165.
[4]張欣宇. 基于Kettle的數據傳輸平臺的設計與實現[D]. 大連:大連理工大學,2016.
[5]郭 丹,樊 紅. 基于ETL-KETTLE的貴州卷煙營銷大數據分析及可視化[J]. 計算機系統應用,2017,26(1):74-80.
[6]李云松. 小微企業數據整合中ETL工具Kettle的應用[J]. 菏澤學院學報,2014,36(2):19-22.
[7]尹曉楠,鄒曉濤,張 冬. 基于kettle的北京市水務普查數據的提取與轉換[J]. 中國水利,2013(21):57-59,42.
[8]王克龍,王 玲,王平立,等. 數據倉庫中ETL技術的探討與實踐[J]. 計算機應用與軟件,2005,22(11):30-31,78.
[9]廉 博. 數據倉庫中ETL技術的研究與實現[D]. 沈陽:沈陽工業大學,2006.
[10]崔友洋,崔有文. 基于ETL-Kettle的中藥飲片企業商業智能研究[J]. 產業與科技論壇,2014,13(22):47-50.
[11]崔有文,周金海. 基于KETTLE的數據集成研究[J]. 計算機技術與發展,2015,25(4):153-157.
[12]王曰芬,章成志,張蓓蓓,等. 數據清洗研究綜述[J]. 現代圖書情報技術,2007(12):50-56.
[13]鄧盼盼,常 春. 基于精確匹配的概念映射關系規則研究[J]. 圖書情報工作,2013,57(16):25-29.
[14]許世衛,王東杰,李哲敏. 大數據推動農業現代化應用研究[J]. 中國農業科學,2015,48(17):3429-3438.