在新時(shí)代,大數(shù)據(jù)為統(tǒng)計(jì)學(xué)發(fā)展和政府統(tǒng)計(jì)提供了新手段、新視角、新要求、新挑戰(zhàn)[1]。近年來,我國(guó)政府統(tǒng)計(jì)大數(shù)據(jù)應(yīng)用取得較大進(jìn)展,比如利用遙感影像和無人機(jī)測(cè)量數(shù)據(jù)完善農(nóng)業(yè)統(tǒng)計(jì),以及利用機(jī)器學(xué)習(xí)方法進(jìn)行行業(yè)智能賦碼等等[2]。普查數(shù)據(jù)資料開發(fā)中應(yīng)用大數(shù)據(jù)技術(shù),將進(jìn)一步拓寬大數(shù)據(jù)在政府統(tǒng)計(jì)領(lǐng)域的應(yīng)用路徑。
大數(shù)據(jù)的經(jīng)典定義是3 個(gè)“V”,指包含多樣化(Variety)、體量(Volume)不斷增長(zhǎng)并且具有時(shí)效性(Velocity)的數(shù)據(jù)[3]。隨著大數(shù)據(jù)的進(jìn)一步發(fā)展,行業(yè)內(nèi)對(duì)在數(shù)據(jù)的定義又增加了價(jià)值(value)稀疏、真實(shí)性(veracity)等多個(gè)“V”。對(duì)照定義,普查數(shù)據(jù)不符合大數(shù)據(jù)的特征,靜態(tài)看體量不夠大,動(dòng)態(tài)看有明確體量上限,結(jié)構(gòu)有明確的定義,多樣化有限,價(jià)值也不稀疏。普查數(shù)據(jù)來自于統(tǒng)計(jì)機(jī)構(gòu)內(nèi)部設(shè)計(jì),屬于常規(guī)數(shù)據(jù)源[4]。大數(shù)據(jù)另有一種技術(shù)角度的描述性定義:大數(shù)據(jù)是通過獲取、存儲(chǔ)、分析,從大容量數(shù)據(jù)中挖掘價(jià)值的一種全新的技術(shù)架構(gòu)。按此定義,大數(shù)據(jù)不僅僅在于數(shù)據(jù)量大,更在于量變后引發(fā)的數(shù)據(jù)處理思想和技術(shù)的全面革新,大數(shù)據(jù)思想和技術(shù)的應(yīng)用并不受限于數(shù)據(jù)本身,即使應(yīng)用在常規(guī)數(shù)據(jù)上,也會(huì)帶來效能的極大提升。普查數(shù)據(jù)雖然仍是常規(guī)統(tǒng)計(jì)數(shù)據(jù),但應(yīng)用大數(shù)據(jù)技術(shù)進(jìn)行處理將大幅提升數(shù)據(jù)處理能力和工作效率。
當(dāng)前,普查數(shù)據(jù)資料開發(fā)均在數(shù)據(jù)處理平臺(tái),或?qū)iT的數(shù)據(jù)資料開發(fā)平臺(tái)上進(jìn)行。此類平臺(tái)均為“服務(wù)器-客戶端”,即“BS”架構(gòu),在網(wǎng)頁客戶端操作,優(yōu)點(diǎn)是通用性、適用性廣,操作簡(jiǎn)便、直觀,可制作多樣化、個(gè)性化的匯總表。但缺陷也很明顯:首先,制作匯總表需要不斷重復(fù)相同的操作,枯燥且低效;第二,不同表、不同層級(jí)無法共用計(jì)算資源,不能有效發(fā)揮服務(wù)器的計(jì)算能力;第三,匯總表計(jì)算完成后,距離交付排版印刷仍有很多后續(xù)工作。普查數(shù)據(jù)資料開發(fā)傳統(tǒng)模式的缺陷需占用很多人力資源,尤其經(jīng)普涉及到多個(gè)專業(yè),數(shù)據(jù)資料開發(fā)甚至要分到各個(gè)專業(yè)分頭制作,整個(gè)工作流程更加低效。雖然可以完成工作任務(wù),但要使用大量人力資源,假設(shè)每個(gè)省、市、縣都需要2 個(gè)人工作1 個(gè)月完成,全國(guó)就需要約6000 人月。當(dāng)前各級(jí)統(tǒng)計(jì)部門人力資源緊張,按現(xiàn)模式完成普查數(shù)據(jù)資料開發(fā)工作捉襟見肘。
MapReduce 是大數(shù)據(jù)技術(shù)中重要的計(jì)算架構(gòu),分為兩個(gè)基本過程:分解(Map)和歸約(Reduce)[5],即通過分散計(jì)算處理海量數(shù)據(jù)。其基本思想非常簡(jiǎn)單,但也非常深刻,甚至我們普查數(shù)據(jù)資料開發(fā)的傳統(tǒng)模式也是基于此思想,只不過是通過對(duì)不同專業(yè)和層級(jí)人力資源分配實(shí)現(xiàn)的,而不是通過對(duì)計(jì)算能力的分配?,F(xiàn)各種大數(shù)據(jù)平臺(tái),框架均是對(duì)大規(guī)模計(jì)算任務(wù)的分解和歸約,計(jì)算能力非常強(qiáng)大。我們?cè)谄詹閿?shù)據(jù)資料開發(fā)中應(yīng)用大數(shù)據(jù)技術(shù),就是摒棄傳統(tǒng)上基于人力資源分配任務(wù)的模式,改為基于大數(shù)據(jù)技術(shù)對(duì)計(jì)算能力分配,從而達(dá)到節(jié)約人力資源、提高工作效率的目的。
查閱多年各類普查數(shù)據(jù)資料,會(huì)發(fā)現(xiàn),普查數(shù)據(jù)資料的多樣性非常有限,更明顯的特征是規(guī)范性,指標(biāo)均在普查方案中,普查方案有延續(xù)性,匯總方式只有求和、計(jì)數(shù)、條件計(jì)數(shù)等若干種,分組同樣是有限且固定若干種。普查數(shù)據(jù)資料的規(guī)范性特征,非常適合使用大數(shù)據(jù)技術(shù)進(jìn)行處理,可以立桿見影成倍的提高效率。根據(jù)普查數(shù)據(jù)資料的規(guī)范性特征,將普查數(shù)據(jù)資料建模為地區(qū)×分組×指標(biāo)×匯總方式的集合,新架構(gòu)設(shè)計(jì)的目標(biāo)就是將此集合高效的計(jì)算出來,再對(duì)計(jì)算結(jié)果進(jìn)行分割,制作匯數(shù)據(jù)資料匯總表。根據(jù)此模型,普查資料開發(fā)可以簡(jiǎn)化成幾個(gè)標(biāo)準(zhǔn)的操作:計(jì)算分組、分組與數(shù)據(jù)合并、匯總數(shù)據(jù),分組數(shù)據(jù)、匯總結(jié)果可以復(fù)用,從而達(dá)到流程標(biāo)準(zhǔn)化及提高效率的目標(biāo)。
根據(jù)普查數(shù)據(jù)資料模型,新架構(gòu)共分為4 個(gè)模塊,分別是數(shù)據(jù)預(yù)處理、生成分組、數(shù)據(jù)匯總和切片制表。預(yù)處理對(duì)數(shù)據(jù)結(jié)構(gòu)重整,合并同類數(shù)據(jù),使數(shù)據(jù)處理流程能夠通用化,如合并同一主題數(shù)據(jù),為所有數(shù)據(jù)集添加地區(qū)、調(diào)查對(duì)象代碼等連接鍵變量;生成分組,對(duì)定義好的所有分組進(jìn)行計(jì)算,每個(gè)分組包含地區(qū)和主體鍵變量以及分組值;匯總數(shù)據(jù),將分組數(shù)據(jù)與數(shù)據(jù)表合并,按地區(qū)和分組值對(duì)所有適用指標(biāo)進(jìn)行各類匯總計(jì)算,及后續(xù)非匯總操作,如轉(zhuǎn)置、過濾等,最終生成大匯總表;切片制表,對(duì)大匯總表進(jìn)行指標(biāo)分塊,并計(jì)算比例、結(jié)構(gòu),編制標(biāo)題和表號(hào),生成規(guī)范可展示的統(tǒng)計(jì)匯總表。
第一,整體性,對(duì)普查數(shù)據(jù)資料建模為集合,不但成倍減少了定義分組和匯總表指標(biāo)的數(shù)量,而且提升了數(shù)據(jù)資料產(chǎn)品完整性、邏輯性和一致性;第二,無需手工制表,計(jì)算完成后,直接在匯總好的數(shù)據(jù)中選取,生成最終產(chǎn)品;第三,調(diào)整優(yōu)化了數(shù)據(jù)匯總和制表的順序,傳統(tǒng)處理流程是先制表、再匯總,新架構(gòu)改為先計(jì)算集合再分割制表,實(shí)現(xiàn)了對(duì)全部數(shù)據(jù)進(jìn)行大規(guī)模計(jì)算,提高了計(jì)算效率;第四,輸出為最終產(chǎn)品,可直接交付印刷排版,無需導(dǎo)出。新架構(gòu)模式實(shí)現(xiàn)充分發(fā)揮計(jì)算能力,對(duì)普查數(shù)據(jù)的規(guī)模完全勝任,對(duì)人力資源的需求大幅減少,人口普查、經(jīng)濟(jì)普查、農(nóng)業(yè)普查等三大普查均適用。
在浙江省第三次農(nóng)業(yè)普查數(shù)據(jù)資料開發(fā)的實(shí)踐中,選用的大數(shù)據(jù)平臺(tái)是Spark,Spark 是開源的大規(guī)模數(shù)據(jù)分布式通用計(jì)算分析引擎[6],基于彈性分布數(shù)據(jù)集(RDD,resilient distributed dataset)[7],RDD 是基于內(nèi)存的分布式抽象數(shù)據(jù)集[8],RDD 的延遲設(shè)計(jì)及對(duì)分布式內(nèi)存的使用避免了對(duì)磁盤的重復(fù)讀寫,大幅提高了迭代計(jì)算的效率。因數(shù)據(jù)量不大,我們采用單臺(tái)服務(wù)器,配置為8 核英特爾至強(qiáng)E7-4830CPU,64GB 內(nèi)存,系統(tǒng)為Ubuntu19.0,Spark 布署為本地模式。數(shù)據(jù)預(yù)處理、生成分組和匯總數(shù)據(jù)等3 個(gè)模塊在部署在服務(wù)器上運(yùn)行,使用Spark 平臺(tái)的原生程序語言Scala 完成開發(fā)。切片制表模塊使用Python 開發(fā),在普通辦公計(jì)算機(jī)Windows系統(tǒng)運(yùn)行。
浙江第三次農(nóng)業(yè)普查普查數(shù)據(jù),原始數(shù)據(jù)以CSV 文本格式保存為35個(gè)文件,共33GB,數(shù)據(jù)預(yù)處理模塊將全部數(shù)據(jù)按主題合并為主表、種植表、畜牧業(yè)表、服務(wù)業(yè)表、村表、鄉(xiāng)表等14 張表,以Parquet 列式存儲(chǔ)格式保存為7.3GB。共設(shè)計(jì)鄉(xiāng)村、人口特征、實(shí)際經(jīng)營(yíng)耕地規(guī)模、農(nóng)業(yè)經(jīng)營(yíng)單位屬性等12 個(gè)分組,生成分組數(shù)據(jù)共21GB。共生成82 張大匯總表,以Parquet 列式存儲(chǔ)格式保存近2.1GB,輸出為xlsx 格式共62M,3 個(gè)模塊全部運(yùn)行一遍只要4小時(shí)。
匯總表設(shè)計(jì)時(shí),共分成9 章,每章2到9組不等,每組表數(shù)不等,每地區(qū)匯總表近600 張,全省、11 個(gè)設(shè)區(qū)市、87 個(gè)涉農(nóng)市(縣、區(qū)),共99 個(gè)地區(qū),生成匯總表近6 萬張。切片制表模塊布署在普通辦公用臺(tái)式計(jì)算機(jī)上,全部生成一次只要15分鐘。
使用新普查數(shù)據(jù)資料開發(fā)架構(gòu),人工參與的工作只有定義分組及設(shè)計(jì)匯總表標(biāo)題、編號(hào)及包含指標(biāo),通過指標(biāo)號(hào)和文字表述,使用XML 格式,定義分組的文檔只有64 行,3000余字;定義匯總表標(biāo)題、編號(hào)及包含指標(biāo)的文檔包括空行和注釋共500行,4 萬余字。定義文件中大部分字符為格式要求的標(biāo)記,需要人工輸入的只占十分之一。分組和匯總表定義工作,不包括查詢歷史普查數(shù)據(jù)資料時(shí)間,2 天時(shí)間就能全部完成。使用新普查數(shù)據(jù)資料開發(fā)架構(gòu),浙江第三次農(nóng)業(yè)普查數(shù)據(jù)資料開發(fā),只有1人參與了設(shè)計(jì),設(shè)計(jì)加執(zhí)行時(shí)間不超過2 天,人力資源的節(jié)約相當(dāng)明顯,工作效率明顯提高。
新架構(gòu)在浙江第三次農(nóng)業(yè)普查數(shù)據(jù)資料開發(fā)中的應(yīng)用實(shí)踐,效果良好,不但工作結(jié)果標(biāo)準(zhǔn)進(jìn)一步提高,而且成倍的節(jié)約了人力資源。仍有幾個(gè)方面可以進(jìn)一步研究:第一,利用現(xiàn)有BS 架構(gòu)數(shù)據(jù)處理平臺(tái),進(jìn)行資料開發(fā)設(shè)計(jì)及結(jié)果的展示;第二,代碼實(shí)現(xiàn)仍有優(yōu)化的空間,計(jì)算時(shí)間仍可進(jìn)一步縮短;第三,Spark 配置為集群模式后,計(jì)算能力的提高程度。
普查數(shù)據(jù)資料開發(fā)的新架構(gòu)如果應(yīng)用于全國(guó)普查數(shù)據(jù),只要根據(jù)數(shù)據(jù)規(guī)模增加計(jì)算節(jié)點(diǎn),就可以完成全國(guó)數(shù)據(jù)的計(jì)算。如應(yīng)用于其他普查,只要根據(jù)普查方案和數(shù)據(jù)格式調(diào)整數(shù)據(jù)預(yù)處理模塊的設(shè)定,針對(duì)資料出發(fā)需要,參考?xì)v史數(shù)據(jù)資料,重新定義分組及匯總表標(biāo)題、編號(hào)、和指標(biāo),便可使用。新架構(gòu)可以提高普查數(shù)據(jù)資料開發(fā)的整體效率,可以有效解決基層在普查數(shù)據(jù)資料開發(fā)工作上的負(fù)擔(dān),提升政府統(tǒng)計(jì)能力建設(shè)水平。