丁作坤
(安徽省農(nóng)業(yè)信息中心,合肥230001)
大數(shù)據(jù)正快速發(fā)展為發(fā)現(xiàn)新知識、創(chuàng)造新價值、提升新能力的新一代信息技術(shù)和服務(wù)業(yè)態(tài),成為推動我國經(jīng)濟(jì)轉(zhuǎn)型發(fā)展的新動力、重塑國家競爭優(yōu)勢的新機(jī)遇和提升政府治理能力的新途徑,是國家的戰(zhàn)略資源[1]。農(nóng)業(yè)農(nóng)村是大數(shù)據(jù)產(chǎn)生和應(yīng)用的重要領(lǐng)域之一,是我國大數(shù)據(jù)發(fā)展重要組成部分。隨著信息化和農(nóng)業(yè)現(xiàn)代化深入推進(jìn),農(nóng)業(yè)農(nóng)村大數(shù)據(jù)正與農(nóng)業(yè)產(chǎn)業(yè)全面深度融合,逐漸成為農(nóng)業(yè)生產(chǎn)的定位儀、農(nóng)業(yè)生產(chǎn)的導(dǎo)航燈和農(nóng)業(yè)管理的指揮棒,日益成為智慧農(nóng)業(yè)的神經(jīng)系統(tǒng)和推進(jìn)農(nóng)業(yè)現(xiàn)代化的關(guān)鍵因素[2]。
在國家政策和數(shù)據(jù)智能技術(shù)的驅(qū)動下[3-4],基于全省農(nóng)業(yè)信息系統(tǒng)現(xiàn)狀和數(shù)據(jù)增長趨勢,應(yīng)用數(shù)字化技術(shù)建設(shè)了安徽省農(nóng)業(yè)大數(shù)據(jù)中心。通過對全省各農(nóng)業(yè)業(yè)務(wù)系統(tǒng)的梳理和對農(nóng)業(yè)大數(shù)據(jù)中心的架構(gòu)設(shè)計(jì),將農(nóng)業(yè)相關(guān)各類型的數(shù)據(jù)匯聚到統(tǒng)一的數(shù)據(jù)庫中,搭建分布式數(shù)據(jù)處理模塊和在線數(shù)據(jù)建模挖掘模塊,完成對數(shù)據(jù)規(guī)律和智能應(yīng)用的探索與實(shí)現(xiàn),并將數(shù)據(jù)價值賦能到各業(yè)務(wù)系統(tǒng),推動安徽省智慧農(nóng)業(yè)的發(fā)展。
安徽省農(nóng)業(yè)大數(shù)據(jù)中心,通過搭建“一庫”、“一圖”、“一網(wǎng)”、“一平臺”的整理體系,全面打通各部門信息資源的數(shù)據(jù)交換渠道,實(shí)現(xiàn)基礎(chǔ)數(shù)據(jù)共享,業(yè)務(wù)流程閉環(huán)運(yùn)行的格局。以農(nóng)業(yè)、農(nóng)村、農(nóng)民、生態(tài)、改革五大領(lǐng)域?yàn)橹骶€,面向各級領(lǐng)導(dǎo)建設(shè)科學(xué)決策平臺,提供領(lǐng)導(dǎo)指揮艙;面向各級業(yè)務(wù)管理人員建設(shè)精準(zhǔn)管理平臺,提供業(yè)務(wù)直通車;面向生產(chǎn)經(jīng)營主體、農(nóng)民與社會公眾建設(shè)綜合服務(wù)平臺,提供信息服務(wù)窗。平臺通過海量的數(shù)據(jù)采集、有效的資源整合以及準(zhǔn)確的數(shù)據(jù)模型,提供豐富的農(nóng)業(yè)應(yīng)用和多樣的用戶視圖,讓使用者能以更易讀易懂的方式指導(dǎo)農(nóng)業(yè)生產(chǎn)。
安徽省農(nóng)業(yè)大數(shù)據(jù)中心功能架構(gòu)主要圍繞管理、服務(wù)、支撐、數(shù)據(jù)四大體系進(jìn)行設(shè)計(jì)。支撐體系和數(shù)據(jù)體系是管理體系和服務(wù)體系的底層支撐。服務(wù)體系依托于農(nóng)業(yè)應(yīng)用與資源綜合管理平臺,提出在線數(shù)據(jù)建模平臺、可視化定制平臺、農(nóng)業(yè)知識庫、AI 能力開放等服務(wù)。管理體系依托圖說數(shù)據(jù)平臺,基于農(nóng)業(yè)大數(shù)據(jù)庫的信息支撐,實(shí)現(xiàn)對各類涉農(nóng)主體圖形化展示,為管理層的各種決策提供強(qiáng)有力的支撐。支撐體系有數(shù)據(jù)交換共享平臺、在線數(shù)據(jù)建模挖掘平臺、可視化平臺三大平臺。數(shù)據(jù)體系有農(nóng)業(yè)資源數(shù)據(jù)庫、農(nóng)業(yè)知識專題庫、數(shù)據(jù)建模專題庫和地理圖層專題庫等四大庫。具體如圖1 所示。
圖1 農(nóng)業(yè)大數(shù)據(jù)中心功能架構(gòu)圖
數(shù)據(jù)作為系統(tǒng)的核心資產(chǎn),在設(shè)計(jì)系統(tǒng)數(shù)據(jù)架構(gòu)時,不僅需要滿足事務(wù)型數(shù)據(jù)要求,也需要滿足分析型數(shù)據(jù)的需求。因此在統(tǒng)一規(guī)劃信息數(shù)據(jù)時,采用數(shù)據(jù)倉庫[5]的設(shè)計(jì)思想,將各項(xiàng)農(nóng)業(yè)數(shù)據(jù)源的數(shù)據(jù)經(jīng)過數(shù)據(jù)整合后,存入不同的數(shù)據(jù)層,并基于分層數(shù)據(jù)創(chuàng)建相應(yīng)的數(shù)據(jù)應(yīng)用,整體設(shè)計(jì)如圖2 所示。
圖2 系統(tǒng)數(shù)據(jù)架構(gòu)設(shè)計(jì)圖
其中STG 層數(shù)據(jù)主要用來進(jìn)行數(shù)據(jù)緩沖處理,是內(nèi)部數(shù)據(jù)整合的基礎(chǔ),原則上增量抽取,支持接口表、文件等多種方式分布式采集。ODS 按照數(shù)據(jù)模型進(jìn)行落地,主要是明細(xì)數(shù)據(jù),分為種植業(yè)、園藝、畜牧、水產(chǎn)、農(nóng)機(jī)、政務(wù)等主題域。DW 數(shù)據(jù)層存儲企業(yè)運(yùn)營的統(tǒng)計(jì)、匯總后的數(shù)據(jù),是系統(tǒng)的重要組成部分。根據(jù)分析應(yīng)用需求抽取ODS 相關(guān)數(shù)據(jù)所形成的數(shù)據(jù)集合(數(shù)據(jù)集市),主要用于數(shù)據(jù)分析、數(shù)據(jù)監(jiān)控、自助取數(shù)、數(shù)據(jù)稽核等應(yīng)用。通過數(shù)據(jù)分層設(shè)計(jì)實(shí)現(xiàn)了數(shù)據(jù)標(biāo)準(zhǔn)化保證數(shù)據(jù)的一致性、準(zhǔn)確性、及時性、明確數(shù)據(jù)管理,實(shí)行生產(chǎn)與分析據(jù)的分離,增強(qiáng)數(shù)據(jù)的深度挖掘應(yīng)用能力,滿足了管理、運(yùn)營、操作的各個層面的數(shù)據(jù)需求。
在構(gòu)建農(nóng)業(yè)大數(shù)據(jù)中心時,針對需要將全省的農(nóng)業(yè)相關(guān)數(shù)據(jù)匯聚到統(tǒng)一的數(shù)據(jù)庫的要求,采用了分布式數(shù)據(jù)采集與匯聚技術(shù)來保證數(shù)據(jù)傳輸?shù)男?;由于農(nóng)業(yè)數(shù)據(jù)種類多、數(shù)據(jù)量大,使用了分布式數(shù)據(jù)庫處理技術(shù)來保證數(shù)據(jù)處理的效率;針對數(shù)據(jù)挖掘建模需保證數(shù)據(jù)的安全性的要求,設(shè)計(jì)了在線數(shù)據(jù)挖掘建模平臺來完成數(shù)據(jù)在離開平臺的前提下完成數(shù)據(jù)價值挖掘;為了讓模型能夠賦能更多同類型場景,設(shè)計(jì)了場景化自動學(xué)習(xí)模塊,使能模型在不同區(qū)域不同時間都能有較好的泛化性;為了將數(shù)據(jù)分析的結(jié)果快速地以直觀的方式展現(xiàn)給決策者,研發(fā)了可視化定制模塊實(shí)現(xiàn)通過圖表編排的方式快速完成定制化大屏設(shè)計(jì)的需求。從數(shù)據(jù)生命周期來看,整體的核心技術(shù)關(guān)系如圖3所示。
圖3 基于數(shù)據(jù)生命周期的核心技術(shù)關(guān)系圖
分布式數(shù)據(jù)采集匯聚模塊主要采用注冊中心+分布式采集節(jié)點(diǎn)的架構(gòu)設(shè)計(jì),每個采集節(jié)點(diǎn)既可作為調(diào)度節(jié)點(diǎn),同時也作為采集運(yùn)行節(jié)點(diǎn)。由統(tǒng)一配置層進(jìn)行數(shù)據(jù)采集任務(wù)及調(diào)度策略配置,并緩存到Redis。調(diào)度節(jié)點(diǎn)使采用quartz 集群調(diào)度的方式,由Redis 作為jobstore 存儲定時任務(wù)配置,每個節(jié)點(diǎn)分布式進(jìn)行任務(wù)的調(diào)度分配以及任務(wù)切分。同時利用Redis 集群作為注冊中心,分布式節(jié)點(diǎn)啟動后會自動注冊發(fā)現(xiàn),執(zhí)行數(shù)據(jù)采集任務(wù)。
在任務(wù)調(diào)度過程中,會根據(jù)指定分割策略(包括時間、主鍵、切片等)進(jìn)行任務(wù)切分,當(dāng)執(zhí)行大批量數(shù)據(jù)、文件采集時,會將任務(wù)切成多份,分布式并發(fā)采集執(zhí)行,在軟件層面提高傳輸效率。具體采集過程如圖4所示。
圖4 分布式數(shù)據(jù)采集調(diào)度流圖
在任務(wù)傳輸過程中,采用數(shù)據(jù)流管道的模式,所有數(shù)據(jù)進(jìn)入數(shù)據(jù)傳輸管道,由采集匯聚層,根據(jù)規(guī)則配置,進(jìn)行讀,異構(gòu)轉(zhuǎn)換,寫操作,最終采集匯聚到目標(biāo)數(shù)據(jù)源。具體過程如圖5 所示。
圖5 數(shù)據(jù)匯聚流圖
由于農(nóng)業(yè)數(shù)據(jù)具備種類多、增長快等特點(diǎn),傳統(tǒng)的基于Hadoop 體系[6]的數(shù)據(jù)處理架構(gòu)不能夠滿足。因此在構(gòu)建農(nóng)業(yè)大數(shù)據(jù)中心的時候,應(yīng)用了基于Click-House[7]的分布式并行數(shù)據(jù)庫處理,使得數(shù)據(jù)處理底層具備向量化執(zhí)行、減枝等優(yōu)化能力,實(shí)現(xiàn)了強(qiáng)勁的查詢和處理性能。如圖6 所示,通過數(shù)據(jù)采集模塊接入業(yè)務(wù)數(shù)據(jù)、政策文件、IOT 數(shù)據(jù)至相應(yīng)的數(shù)據(jù)存儲系統(tǒng),然后使用clickhouse 實(shí)現(xiàn)對數(shù)據(jù)的快速查詢與處理,為上層的在線數(shù)據(jù)建模、可視化報表和業(yè)務(wù)系統(tǒng)實(shí)現(xiàn)查詢提供高速數(shù)據(jù)響應(yīng)。
圖6 分布式并行數(shù)據(jù)處理模塊流圖
該模塊的主要特點(diǎn)是支持主鍵索引和稀疏索引功能。其中主鍵索引功能是將每列數(shù)據(jù)按照index granularity(默認(rèn)8192 行)進(jìn)行劃分,每個index granularity 的開頭第一行被稱為一個mark 行。主鍵索引存儲該mark 行對應(yīng)的primary key 的值。對于where 條件中含有primary key 的查詢,通過對主鍵索引進(jìn)行二分查找,能夠直接定位到對應(yīng)的index granularity,避免了進(jìn)行全局掃描從而加速查詢。
稀疏索引功能是指對任意列創(chuàng)建任意數(shù)量索引。其中被索引的value 可以是任意的合法SQL Expression,并不僅僅局限于對column value 本身進(jìn)行索引。之所以叫稀疏索引,是因?yàn)樗举|(zhì)上是對一個完整index granularity(默認(rèn)8192 行)的統(tǒng)計(jì)信息,并不會具體記錄每一行在文件中的位置。
對于匯聚到大數(shù)據(jù)中心的農(nóng)業(yè)相關(guān)數(shù)據(jù),需要在平臺里直接完成數(shù)據(jù)規(guī)律探索和價值挖掘,形成數(shù)據(jù)能力并賦能業(yè)務(wù)應(yīng)用。通過將在線數(shù)據(jù)建模和挖掘相關(guān)算法、方法進(jìn)行封裝成可視化算子,研發(fā)基于可視化算子編排的在線數(shù)據(jù)建模與挖掘模塊,構(gòu)建了包括數(shù)據(jù)處理、特征工程、模型訓(xùn)練、模型評估、模型部署的全流程AI 開發(fā)組件[8]。主要是將數(shù)據(jù)建模過程中常用的數(shù)據(jù)處理方法、特征工程方法、算法封裝成可視化算子,開發(fā)者根據(jù)需要將相應(yīng)的算子拖到工作區(qū),并根據(jù)數(shù)據(jù)流程將相應(yīng)的算子連接起來,即可構(gòu)建相應(yīng)的數(shù)據(jù)探索或數(shù)據(jù)挖掘的流圖。通過數(shù)據(jù)在數(shù)據(jù)圖中流動處理實(shí)現(xiàn)數(shù)據(jù)的探索與建模。具體如圖6 所示。
圖7 基于可視化算子的在線建模與挖掘功能架構(gòu)圖
數(shù)據(jù)準(zhǔn)備部分主要包括從本地導(dǎo)入、從大數(shù)據(jù)中心導(dǎo)入兩種方式。數(shù)據(jù)處理部分主要包括刪除重復(fù)行、刪除列、數(shù)據(jù)過濾、缺失值填充、異常值處理、上采樣、下采樣、ADF 檢驗(yàn)、數(shù)據(jù)拆分等算子。特征工程部分主要包括數(shù)值化映射、歸一化、卡方、信息熵、特征融合、離散化、獨(dú)熱編碼、PCA 降維、孤立森林等算法。
模型訓(xùn)練主要分類時序預(yù)測、分類預(yù)測、圖像分類三個類型,時序預(yù)測算法主要有ARIMA、prophet、LSTM[9]等算法,分類預(yù)測主要有LightGBM、XGboost、Catboost[10]等算法,圖像分類包括ALexNet、VGG16、InceptionV4[11]等算子。數(shù)據(jù)可視化部分主要包括數(shù)據(jù)透視表、柱狀圖、折線圖等。模型評估主要包括MSE、MAE、F1-score、查準(zhǔn)率、查全率、AUC 等主要算子。模型部署主要包括在線部署、離線SDK 部署兩種方式。
通過平臺的在線建模功能構(gòu)建的農(nóng)業(yè)智能應(yīng)用,由于其是基于特定場景下的數(shù)據(jù)訓(xùn)練得到的,在不同的時間點(diǎn)和區(qū)域的應(yīng)用條件下,無法得到最好的預(yù)測效果。另外傳統(tǒng)的方法是只能重新經(jīng)過數(shù)據(jù)建模過程構(gòu)建具體場景的應(yīng)用模型,費(fèi)時耗力。因此提出了場景化自動學(xué)習(xí)的方法,用戶只需要選擇相應(yīng)的場景,提供相應(yīng)的數(shù)據(jù)即可快速得到一個高可用的模型能力。
場景化自動學(xué)習(xí)主要分為兩部分,一部分是場景化,另一部分是自動化機(jī)器學(xué)習(xí)[12]。其中場景化主要是指基于農(nóng)業(yè)大數(shù)據(jù)中心的數(shù)據(jù)創(chuàng)建農(nóng)業(yè)智能應(yīng)用場景,主要包括價格趨勢預(yù)測、植物蟲害識別、植物病害識別、植物生長預(yù)測等。自動化機(jī)器學(xué)習(xí)是將自動化和機(jī)器學(xué)習(xí)相結(jié)合的方式,將數(shù)據(jù)建模過程中的數(shù)據(jù)處理、特征工程、算法選擇、模型評估的復(fù)雜過程封裝成一個黑箱子,僅需輸入符合要求的數(shù)據(jù)即可得到相應(yīng)的模型。
為了充分利用場景下歷史模型的價值,將模型根據(jù)實(shí)際的場景進(jìn)行細(xì)分,結(jié)合自動機(jī)器學(xué)習(xí)技術(shù)和遷移學(xué)習(xí)技術(shù),實(shí)現(xiàn)在歷史模型的基礎(chǔ)上,使用新場景數(shù)據(jù)進(jìn)行參數(shù)微調(diào),快速訓(xùn)練具體數(shù)據(jù)條件下的有效智能模型。具體如圖8 所示。
圖8 場景化自動學(xué)習(xí)流程圖
通過從地理空間、時間序列、邏輯關(guān)系等多種角度分析數(shù)據(jù),把不同維度的數(shù)據(jù)規(guī)律以適當(dāng)?shù)囊曈X方式呈現(xiàn)出來,以便決策者理解數(shù)據(jù)背后蘊(yùn)藏的價值、規(guī)律、趨勢和關(guān)系。針對農(nóng)業(yè)大數(shù)據(jù)的數(shù)據(jù)種類多樣、分析場景豐富等特點(diǎn),平臺應(yīng)用了可視化定制技術(shù),實(shí)現(xiàn)對農(nóng)業(yè)涉及的種植業(yè)、畜牧業(yè)、漁業(yè)、科技教育、農(nóng)業(yè)機(jī)械等專題數(shù)據(jù)的定制化大屏快速創(chuàng)建。
基于大屏可視化定制技術(shù)的大數(shù)據(jù)可視化平臺,總體功能從邏輯上分為支撐層、平臺層和應(yīng)用層。支撐層主要提供數(shù)據(jù)訪問能力,支持多種數(shù)據(jù)源的連接。實(shí)現(xiàn)數(shù)據(jù)交換、數(shù)據(jù)分析與計(jì)算、數(shù)據(jù)存儲及數(shù)據(jù)建模的能力。平臺層主要提供可視化編排/運(yùn)行的能力。通過基礎(chǔ)管理保障平臺安全,而開放服務(wù)提供了強(qiáng)大的代碼注入能力和可視化組件開放能力,集成框架使得編排的頁面可以無縫的集成到第三方業(yè)務(wù)系統(tǒng)。應(yīng)用層為最終成果產(chǎn)物,支持Dashboard、交互式Web 應(yīng)用、自助式分析、可視化大屏、高級數(shù)據(jù)可視等多種表現(xiàn)形式。具體架構(gòu)如圖9 所示。
圖9 可視化定制模塊架構(gòu)圖
通過構(gòu)建農(nóng)業(yè)大數(shù)據(jù)中心,一方面實(shí)現(xiàn)將農(nóng)業(yè)各類型數(shù)據(jù)匯聚到統(tǒng)一大數(shù)據(jù)庫中,消除數(shù)據(jù)孤島,實(shí)現(xiàn)各業(yè)務(wù)系統(tǒng)數(shù)據(jù)互通互聯(lián),能夠有效提升業(yè)務(wù)辦理效率;另一方面,通過在線建模挖掘技術(shù)和可視化定制技術(shù),實(shí)現(xiàn)對數(shù)據(jù)價值的充分挖掘,賦能農(nóng)業(yè)智能化生產(chǎn),輔助管理者精準(zhǔn)決策。
目前,安徽省大數(shù)據(jù)中心已打通數(shù)據(jù)接口,建立部、省、廳屬涉農(nóng)數(shù)據(jù)的交換共享建立數(shù)據(jù)交換標(biāo)準(zhǔn)和規(guī)范,實(shí)現(xiàn)農(nóng)業(yè)農(nóng)村部數(shù)據(jù)、省政務(wù)數(shù)據(jù)、廳屬業(yè)務(wù)數(shù)據(jù)的匯聚和交換?;诖髷?shù)據(jù)中心,建立線上業(yè)務(wù)流程,將傳統(tǒng)的線下紙質(zhì)的報告信息工作轉(zhuǎn)變?yōu)榫€上的信息填報審核流程,全面提供辦公人員工作效率。融合分布式數(shù)據(jù)處理和可視化定制,建立圖說平臺,搭建領(lǐng)導(dǎo)駕駛艙,實(shí)現(xiàn)將數(shù)據(jù)規(guī)律以直觀易懂的方式呈現(xiàn),輔助精準(zhǔn)決策?;谠诰€數(shù)據(jù)建模組件和場景化自動學(xué)習(xí),融合大數(shù)據(jù)中心數(shù)據(jù),實(shí)現(xiàn)了小麥病蟲害識別、小麥生長趨勢預(yù)測、填報異常數(shù)據(jù)檢測等一些AI 能力應(yīng)用,賦能農(nóng)業(yè)智慧生產(chǎn)。
隨著大數(shù)據(jù)中心數(shù)據(jù)的積累,為進(jìn)一步釋放數(shù)據(jù)價值,后續(xù)將從兩方面探索數(shù)據(jù)應(yīng)用。一方面是融合農(nóng)業(yè)的業(yè)務(wù)數(shù)據(jù)、圖像數(shù)據(jù)、農(nóng)技數(shù)據(jù)等多模態(tài)知識數(shù)據(jù),應(yīng)用知識圖譜技術(shù)[13],構(gòu)建農(nóng)業(yè)智能助手,實(shí)現(xiàn)自動業(yè)務(wù)辦理;另一方面將農(nóng)業(yè)數(shù)據(jù)進(jìn)行價值共享,應(yīng)用聯(lián)邦學(xué)習(xí)技術(shù)[14],在數(shù)據(jù)不可見的前提下共享數(shù)據(jù)能力,助力農(nóng)業(yè)相關(guān)領(lǐng)域的智能化演進(jìn)。