吳重言++吳成偉++熊燕玲++陶佩瑩
摘要 近年來,農業數據的類型和數量劇烈增長,給農業大數據的獲取、集成、存儲與處理帶來了巨大挑戰。云計算、大數據等重要技術為農業提供了解決方法。本文從大數據引出農業大數據的概念與發展現狀,介紹了農業大數據的關鍵技術,包括采集、集成、存儲與處理技術,詳細分析了云計算技術、MapReduce、分布式文件系統、分布式數據庫,并對農業大數據面臨的挑戰與解決方案提出了思考。
關鍵詞 農業大數據;云計算;物聯網;關鍵技術
中圖分類號 S126 文獻標識碼 A 文章編號 1007-5739(2017)17-0290-03
Abstract In recent years,the type and quantity of agricultural data has grown dramatically,which brings great challenge to the agricultural data acquisition,integration,storage and processing.Cloud computing,big data and other important technologies provide a solution to agriculture.This paper drew on the concept and development of agricultural big data from big data,and introduced the key technologies of agricultural big data,including the technology of collection,integration,storage and processing,and analyzed the detail of the cloud computing technology,MapReduce,distributed file system,distributed database. Finally,challenges and solutions to the agricultural big data were put forward.
Key words agricultural big data;cloud computing;Internet of things;key technology
1 大數據及農業大數據概述
1.1 概念和基本特征
目前,對于大數據的定義還沒有明確的規定。Gartner公司認為大數據是需要高效和創新的信息處理方式以增強洞察力和決策能力來適應大量,高速和多樣化的信息資產[1]。麥肯錫全球研究所提出,大數據是指其大小超出了典型數據庫軟件工具捕獲、存儲、管理和分析能力的數據集[2]。最初大數據有三大特征,分別是規模化(volume)、多樣性(va-riety)和高速率(velocity)。隨著對大數據了解的不斷深入,國際數據公司IDC認為其第四特征為有價值(value),IBM提出第四特征為真實性(veriety),也有學者認為第四特征為活力(vitality)。農業大數據,就是利用大數據的理念、技術和方法,解決農業或涉農領域數據的采集、存儲、計算與應用等一系列問題,是大數據的理論和技術在農業上的應用與實踐[3]。農業大數據除了具備大數據的三大特征以外還具備以下特征:農業大數據無所不在(泛在性);農業大數據規律性變化(周期性);農業大數據地域性變化(地域性);農業大數據反映社會狀態變化(社會性);農業大數據影響交叉(交叉性);農業大數據在不同時間差異大(多變性);農業大數據間相互聯系,相互作用(綜合性);農業大數據組織分散(分散性)。
1.2 研究進展
《Nature》雜志[4]及《Science》雜志[5]先后出版大數據專刊,表明大數據的影響力增加以及為大數據的發展帶來了挑戰與機會。同時,國內發表大數據論文[6]、開展大數據會議、成立計算機學會大數據專家委員會、發布大數據白皮書,探討了大數據核心問題和重大意義。2009年土壤抽樣分析服務商Solum和2011年云端上的農場Farmeron成立,表明大數據已經應用到農業中,對于挖掘農業價值,制定生產計劃和獲取利益最優化具有重要意義。國內謝潤梅[7]、許世衛[8]和黎玲萍[9]等人也發表農業大數據方面的論文,分析了農業大數據的機遇、應用并設計了智能分析平臺,但是對農業大數據的關鍵技術論述不夠完善。本文在此基礎上介紹了農業大數據的獲取、集成、存儲與處理技術,并分析了面臨挑戰與解決方案,有利于實現指導農業實踐、制定生產計劃和實現利益最優化。
2 農業大數據的關鍵技術
農業大數據具有泛在性、多樣性、高速率、規模化等特征,傳統的數據獲取、集成、存儲與處理技術無法滿足農業大數據的需求。農業大數據的出現也必然伴隨著新的關鍵技術。
2.1 農業大數據獲取
農業大數據獲取指的是利用信息技術對農業要素進行數據采集、傳輸的過程。農業大數據主要包括農業生產環境數據、農業網絡數據、農業市場數據和動植物生命信息數據。針對不同的數據需要不同的采集技術,農業生產環境數據,如土壤濕度和溫度、天氣溫度、風速,主要依靠傳感器技術和光譜、核磁共振等先進檢測技術獲取;農業網絡數據,如網站、論壇上的最新資訊,主要采用爬蟲技術采集,有利于了解農業大體方向;農業市場經濟技術獲取,如農產品價格、農產品流通,主要通過RFID識別技術與智能終端、APP等移動采集技術獲取;動植物生命信息智能感知,如檢測動物體溫、植物氮元素含量,主要通過光譜技術、熱紅外線等技術獲取。
2.2 農業大數據集成技術
農業大數據分為結構化數據、半結構化數據和非結構化數據,為了對農業大數據進行后續存儲與分析處理,由于農業大數據的多樣性,人們將多種類型的復雜數據轉化為單一的、易于處理的數據。因為轉化得到的數據可能不正確、無價值,甚至包含噪聲和干擾項,所以最終需要對其進行過濾。傳統的數據集成方法分為數據復制方法和模式映射方法。數據復制方法最常用的是數據倉庫方法,模式映射方法主要包括聯邦數據庫、中間件集成方法和P2P數據集成方法。endprint
隨著農業大數據越來越復雜,新的異構數據集成技術涉包括有本體集成技術[10]、面向對象技術、XML[11]、分布式對象技術、網絡技術、基于CORBA的異構數據集成技術、基于Web Service的異構數據集成技術[12]。
2.3 農業大數據存儲與處理技術
2.3.1 云計算技術。面對大數據的影響,傳統的數據處理平臺存在可擴展性,容錯性等方面的限制,無法滿足實際需求。Google于2006年開創了云計算的概念。云計算是分布式計算,互聯網技術和大規模資源管理技術的集成和開發,云計算的提出在學術界和行業中引起了廣泛的關注。相關研究[13]給出了云計算更完整的定義,即云計算是一個由規模經濟驅動的大規模分布式模型,其計算資源是抽象的、虛擬的、動態可擴展的和可管理的,其計算資源、存儲、平臺和服務通過互聯網傳遞給外部客戶端。
云計算是大數據分析處理技術的核心原理,也是大數據分析應用的基礎平臺。首先,云計算靈活,可以根據負載動態分配資源,保持負載均衡。其次,云計算支持異構網絡資源應用,并利用資源池共享資源,以提高資源重用率,降低運營成本。最后,針對大數據的云計算服務,強調可用性和容錯性,不再僅僅追求準確性和一致性。云計算是大數據處理的基礎,也是大數據分析的支撐技術[14]。
2.3.2 MapReduce。MapReduce是一種分布式編程模型,它可以支持大型數據集的并行和分布式計算。該模型是在分布式計算系統上運行的并行程序數據流的抽象,為用戶提供了2個功能,為Map和Reduce的接口。用戶通過覆蓋這2個功能來交互和操縱數據流。在MapReduce中,任務分為幾個相同大小的子任務。子節點執行Map功能來處理這些子任務,并生成鍵值對
MapReduce系統解決了傳統數據庫中可擴展性這一最大的限制,適合大數據處理。但與傳統的數據處理系統相比,MapReduce系統的執行性能和準確性差距很大。MapReduce還有很大的改進空間。
2.3.3 分布式文件系統。分布式文件系統是文件系統中的物理存儲資源,不一定直接連接在本地節點,而是通過計算機網絡連接與節點相連。Google最早開發了Google文件系統(GFS)以處理種類復雜與數據量大的數據。GFS是基于分布式集群的大規模分布式文件系統,為MapReduce提供了底層數據存儲。由于存儲數據的計算機便宜且不可靠,數據故障被認為是正常的,所以GFS至少創建3個副本用于存儲數據。副本被分發到不同的計算節點以提高系統的可靠性。當節點發生故障時,系統將快速調用副本以提高處理效率。
GFS設計之初只有一個主服務器用于元數據存儲,其他節點將數據存儲為塊服務器。主機管理文件系統命名空間和鎖定工具。主機定期與塊服務器通信,收集管理信息,向服務器發送命令,承擔負載均衡和故障修復工作。圖2顯示了GFS的具體配置。
GFS通過一個主服務器實現大數據分布式存儲,簡化了系統設計,可能會發生單一服務器性能瓶頸。基于這一點,Google改進了GFS,并提出了Colosuss[15],提出了單點故障問題的有效解決方案。
除了Google提出的GFS和Colosuss,還有Hadoop Distr-ibuted File System(HDFS)[16]、Taobao File System(TFS)、Gen-eral Parallel File System(GPFS)、Parallel File System(PFS)、Taobao File System (TFS)、NFS[17]等,這些分布式文件系統由不同的應用需求催生而來,能夠按照不同的應用需求提供不同的服務。
2.3.4 分布式數據庫。由于大數據時代下數據量大,數據種類多,設立理念的差異,傳統的關系型數據庫不再滿足數據存儲要求,為了解決這個問題,Google走在了時代的前列,提出了BigTable數據庫。
BigTable數據庫是一個基于GFS的分布式數據庫,用戶可以更方便、高效地訪問數據庫。BigTable使用NoSQL(Not Only SQL)模型有效地解決了傳統并行數據庫在可擴展性方面的缺點,并大大提高了數據庫系統的可用性和可擴展性。在BigTable數據庫中,數據以多維表的形式存儲在子表服務器中,可以通過行名,列名和時間戳索引數據,以便于用戶查詢。在數據庫中,數據存儲結構不受限制,因此適用于存儲非結構化數據。Chubby服務器隨時監控每個子表服務器。當Chubby發現子表的故障時,會及時向主服務器報告故障,主服務器接收到故障信息后,會迅速將數據傳輸到其他子表上,以確保正常使用數據。主服務器還可以根據需要添加或刪除子服務器。圖3顯示了BigTable的架構。
BigTable數據庫支持高讀/寫速度,每秒可以執行數百萬次操作。此外,BigTable還可以實現自我管理,動態添加/刪除子表服務器,并自動調整負載平衡。目前,BigTable已經在許多項目中使用,例如Google搜索,谷歌地圖等。谷歌在2012年開發了基于BigTable的Spanner[18]系統。Spanner是最新的Google數據庫系統,它是實現全球規模擴張和支持外部一致性的第一個數據庫。
除了BigTable以外,其他的適用于大數據存儲的分布式數據庫有Yahoo! 的PNUTS和Amazon′s 的Dynamo。
3 農業大數據面臨的問題與解決方案
大數據技術面臨諸多挑戰,例如異構數據范圍廣泛、實時問題、數據不完整、缺乏先驗知識、隱私等。農業大數據面臨的問題與大數據技術相一致,但與大數據相比,農業大數據在安全或隱私問題上并不敏感,農業數據挖掘旨在利用結果指導農業實踐。因此,農業大數據總是面臨以下問題。
3.1 農業大數據存儲
3.1.1 異構數據。農業大數據從資源來看,數據來自無線電設備,農業信息網站和各種先進的移動終端;從內容上看,不僅包括統計資料,還包括與農業相關的經濟實體的基本信息、投資信息、進出口信息和GIS坐標信息;數據類型還包括結構化數據,半結構化數據和非結構化數據。由于對不同,存儲硬件設備的處理不同,存儲異構數據以及讀寫能力將是一個值得研究的問題。除了采用分布式文件系統,創建索引也是一種解決方案。
3.1.2 異構硬件。異構硬件也是存儲農業大數據的問題之一。在數據中心的不同機器之間會有非常顯著的性能差異,不同的硬件設備具有不同的識字和處理能力,將浪費大量時間等待較慢的存儲設備。在這種情況下,存儲設備和服務器的線性增長不一定會帶來計算能力的線性增長,“木桶效應”限制了整個集群的性能。異構硬件問題的一般解決方案是在異構硬件環境中的不同方面使用不同的存儲設備。當異構環境的規模擴展到數千個群集時,問題將變得非常復雜。
3.2 農業大數據分析
3.2.1 數據分析技術。數據分析是農業大數據全過程的核心,農業大數據的價值在大數據分析過程中產生。目前,糧食安全、土壤管理、有害生物預報與預防、農業消費等方面存在諸多問題。原始數據來自農業信息的提取和整合,選擇全部或部分數據利用農業大數據分析來解決這些問題。傳統的分析技術不適用于處理農業大數據,例如數據挖掘、機器學習、統計分析等技術。
3.2.2 數據挖掘算法。傳統的數據挖掘算法,如機器學習等領域,不再適用于農業大數據。一方面,挖掘少量數據的算法無法直接應用于大數據;另一方面,農業大數據具有特殊性,算法的準確性不再是主要標準,在許多情況下,算法需要在時間和處理精度之間取得平衡。
3.2.3 質量分析指標。分析結果質量的指標也是一個重大挑戰。大數據類型復雜,導致算法設計指標的諸多問題。經過多年的研究和開發,數據挖掘、機器學習、統計分析等信息分析已經被證明對小數據有顯著的影響。這些算法可以進行調整,以適應云計算系統。但必須注意的是,在這些算法的調整過程中應考慮農業大數據實時和可預測的特征。
3.2.4 算法與結果評估。評估農業大數據算法的結果是很重要和困難的。根據農業大數據的特點,利用及時性作為衡量標準,利用先驗知識來測試算法。它可以在一定程度上評估算法的質量,還可以考查數據結果的可靠性。
3.3 農業大數據的及時性
隨著時間的推移,數據的固有價值不斷衰減。因此,在分析農業大數據時必須考慮及時性。不及時的數據分析可能導致農業災害的生產,特別是在氣象數據以及與數據分析相關的環境條件等方面。例如,低糧價損害農民事件的發生是管理生產成本和其他信息不及時導致的結果。因此,及時性的特點在農業大數據中尤其重要,是農業大數據分析的核心需求。大量的研究也圍繞著這一需求而擴大,確保及時性有3種方法。
3.3.1 流處理模式。雖然流式傳輸模式適用于實時系統,但其應用領域相對有限。流應用模型側重于實時統計系統,在線監控。
3.3.2 批處理模式。近年來,批量實時系統的發展已成為熱點話題,取得了很大的成就。
3.3.3 流處理與批處理組合模式。主要思想是使用Map-Reduce編程模型實現流處理。
4 結語
本文首先介紹了農業大數據的定義、特征、大數據的國內外發展現狀、農業大數據的國內外發展現狀。然后討論了農業大數據的獲取和集成技術,特別對云計算技術、Map-Reduce、分布式文件系統、分布式數據庫等存儲處理技術進行詳細闡述。最后提出農業大數據存儲、農業大數據分析和及時性農業大數據的問題與解決方案。農業大數據具有數據規模大、數據類型多、數據流轉快等特征。農業大數據的關鍵技術能夠從復雜、海量、散亂的數據集合中提取出有價值的信息,在為戶提供生產決策和提高農業生產效率等方面具有重要意義。
5 參考文獻
[1] GANDOMI A,HAIDER M.Beyond the hype:Big data concepts,methods,and analytics[J].International Journal of Information Management,2015, 35(2):137-144.
[2] MANYIKA J,CHUI M,BROWN B,et al.Big Data:The Next Frontier For Innovation,Competition,And Productivity[R].San Francisco:Mckinsey Global Institute,2011.
[3] 孫忠富,杜克明,鄭飛翔,等.大數據在智慧農業中研究與應用展望[J].中國農業科技導報,2013(6):63-71.
[4] MITCH W.Big data:Wikiomics[J].Nature,2008,455(7209):22-25.
[5] STAFF S.Dealing with data. Challenges and opportunities.Introduction[J].Science,2011,331(6018):692-693.
[6] 王元卓,靳小龍,程學旗.網絡大數據:現狀與展望[J].計算機學報,2013,36(6):1125-1138.
[7] 謝潤梅.農業大數據的獲取與利用[J].安徽農業科學,2015(30):383-385.
[8] 許世衛,王東杰,李哲敏.大數據推動農業現代化應用研究[J].中國農業科學,2015,48(17):3429-3438.
[9] 黎玲萍,毛克彪,付秀麗,等.國內外農業大數據應用研究分析[J].高技術通訊,2016,26(4):414-422.endprint
[10] 潘佳云.基于本體的異構數據集成技術研究[D].上海:東華大學,2013.
[11] 薛欣雨.基于XML的出版社業務員異構數據集成系統的設計及關鍵技術研究[D].長沙:中南大學,2013.
[12] 向寒坤,鐘金宏,李興國.基于Axis2的CORBA/Web Services集成方案[J].計算機應用與軟件,2010,27(2):108-110.
[13] BERA S,MISRA S,RODRIGUES J J P C. Cloud Computing Applications for Smart Grid:A Survey[J].IEEE Transactions on Parallel & Distributed Systems,2015,26(5):1477-1494.
[14] YANG C,HUANG Q,LI Z,et al.Big Data and cloud computing:innova-tion opportunities and challenges[J].International Journal ot Digital Earth,2016(3):1-41.
[15] MCKUSICK K,QUINLAN S.GFS:evolution on fast-forward[J].Commu-nications of the Acm,2010,53(3):42-49.
[16] SHAFER J,RIXNER S,COW A L.The Hadoop distributed filesystem:Balancing portability and performance[C]//IEEE International Sympos-ium on PERFORMANCE Analysis of Systems & Software.New York: IEEE,2010:122-133.
[17] DAS S.Parallel Network File System with future scope[J].Psycho-Oncologie,2015,4(1):1-4.
[18] COOPER B F.Spanner:Google′s globally-distributed database[J].Acm Transactions on Computer Systems,2012,31(3):251-264.endprint