單 珂,張一鳴,劉瑞霞
(1.齊魯工業(yè)大學(山東省科學院),山東 濟南 250353; 2.山東省計算中心(國家超級計算濟南中心),山東 濟南 250013;3.山東省人工智能研究院,山東 濟南 250013)
我國科技產業(yè)眾多,科技服務資源種類豐富,各省市的科技服務產業(yè)自成體系,但由于各區(qū)域的經濟發(fā)展、科技發(fā)展不平衡等問題,科技資源分布不均,雖然高校與科研機構有較為豐富的科研資源與專家,但缺乏技術轉移、成果轉化的服務資源,而企業(yè)有豐富的市場資源與生產經驗,但往往缺乏技術創(chuàng)新性,同時對高質量的人才資源有大量需求??萍挤召Y源的分散孤立導致了資源壁壘[1-2]。
中原城市群的科技服務機構類型齊全,科技服務資源眾多,發(fā)展基礎較好,但區(qū)域間缺乏協同,行業(yè)發(fā)展不均衡[3]。安徽、山東兩省科技服務業(yè)的總產值呈現出逐年遞增的趨勢,企業(yè)孵化器、眾創(chuàng)空間等科技服務機構數量較多[4-5];河北省近年來科技服務業(yè)水平不斷提高,但相比北京、上海等地仍有較大差距[6-7];河南、山西兩省存在高層次科技人才比例偏低、知識產權資源相對較少等難題,造成其科技服務規(guī)模較小、科技服務業(yè)效益低[8-9],因此加快區(qū)域科技服務資源池的建設對于促進中原地區(qū)各城市科技資源服務均衡發(fā)展具有重要意義[10]。
因此,整合不同機構的科技服務資源,集產、學、研為一體構建區(qū)域性的科技服務資源池,將大力推進區(qū)域科技創(chuàng)新能力,有助于建立優(yōu)勢互補、互利共贏的科技服務新模式,為各類機構提供科技信息服務,促進科技創(chuàng)新發(fā)展。
現階段,科技資源共享管理在國內外都已有先例[1],其他國家級城市群同樣也在發(fā)展集成各自區(qū)域科技資源的科技服務資源池。
京津冀綜合科技服務資源池由3類資源池組成,分別是新一代信息技術資源池、裝備制造資源池和生態(tài)環(huán)保資源池。京津冀綜合科技服務資源池對資源進行合理分類,借助描述規(guī)范和接口定義,消除了資源間的異構性,實現了數據融合與資源的異地共享[11]。
成渝城市群的科技服務資源池的建設利用了資源整合技術,基于云計算技術以科技資源的云集成為切入點,將多源異構數據轉化為符合規(guī)范的服務資源,通過科技云將其他功能各異的平臺上的資源統一接入至該資源池中[12-13]。
哈長城市群根據產業(yè)特色,構建了以高端裝備制造業(yè)資源、生物醫(yī)藥資源、新材料產業(yè)資源為特色的科技服務資源池[14],通過對這3類產業(yè)的科技服務資源需求進行整理分析,與資源池中的共性服務資源提供方進行對接,實現資源的匹配與優(yōu)選[15]。
為實現中原城市群科技服務資源大數據平臺的構建,需要從各個企業(yè)、科研機構、高校的數據庫中采集數據,由于數據的種類繁多、數據標準不統一,所以需要采用不同的數據接入方式對不同類別的數據分別進行數據采集并存儲,同時制定科技服務資源統一標準,將采集儲存的數據資源按照標準進行清洗[16]。此外,由于某些資源的并發(fā)請求量大,大數據平臺需制定資源調度策略來應對。以下將對大數據平臺的功能性需求進行分析。
在中原城市群科技服務資源的數據源中,數據按獲取方式分為結構化數據、半結構化數據和非結構化數據[17]。系統需要將這些異構數據向大數據平臺遷移,通過資源提供方預設的自定義數據存儲參數,利用數據采集模塊半自動化接入多源異構數據。
對于不同的資源形式,為共建共享科技服務資源的業(yè)務信息數據,針對數字、文本、圖像、視頻、文件等多種形式的大數據設計合理的存儲方案,根據資源提供方接入的數據類型,調用相應存儲系統,從而支持上層系統應用。
由于各個企業(yè)機構的數據存儲標準不同,接入的源數據往往存在許多臟數據,因此,科技資源數據池需要對接入的源數據進行數據清洗,最終獲取到干凈的符合要求的數據。
由于某些稀缺科技資源會被用戶頻繁請求,并發(fā)請求量可能會很大,而系統的并發(fā)處理能力是有限的,所以系統需要分析各資源的狀態(tài)和請求的需求,作出合理調度分配,盡可能做到負載均衡,以保證整體系統能夠正常運行。
結合系統平臺的應用場景,資源池的非公性需求主要滿足以下幾項原則:
1)安全性。
安全性是一個系統平臺最基本的保障,在資源接入的過程中,應該保證系統運行的穩(wěn)定性并且防止數據泄露丟失。對于關鍵的敏感信息需要數據加密,此類信息在遷移、訪問時需要密切監(jiān)控。在確保數據存儲安全的同時,還要完善用戶權限機制和身份驗證過程,保證數據訪問安全和隱私保護。
2)經濟性。
資源遷移過程的設計需要在滿足目標的前提下盡量降低成本和人力資源,應該保證平臺易于維護,減少不必要的人力、物力、財力支出。
3)可用性。
數據接入與資源管理調度過程應該做到整個流程的自動化,需要保證整個平臺24 h無間斷的連續(xù)運行,而且在業(yè)務數據處理出錯時具有報警功能;還需要考慮未來需要增加業(yè)務功能時,可以實現快速開發(fā)部署。
中原城市群科技資源池主要實現對現有的科研數據、人才信息、儀器設備、技術成果等資源進行有效的整合共享。以科技服務資源體系標準為支撐,實現科技服務資源數據標準化,形成不同的標準資源池[18]。為了保證資源池的可擴展性和柔性,資源池的整體設計將采取分層設計思想,每一層都將實現其特有功能。整體系統架構如圖1所示,資源池業(yè)務架構如圖2所示。
圖1 資源池系統架構圖
圖2 資源池業(yè)務架構圖
對數據庫中的字段設計如圖3所示。
圖3 資源數據庫設計
中原城市群內各類科技服務機構、省市級科技服務平臺以及眾多高校院所每天都會產生大量的數據,這些數據存放在它們各自的數據庫中,數據采集就是將這些數據統一采集到科技服務資源池中進行統一處理。
4.1.1 采集內容
中原城市群科技服務資源池囊括了5個省份的科技服務資源,主要分為3類:1)科研信息、科研成果信息、檢驗檢測認證和知識產權等關系型數據,主要來自企業(yè)、高校及相關科技機構;2)文檔、Web數據等半結構化數據,主要包括學術平臺上的項目和門戶網站上的政策性文件、成果報告等;3)與科技資源相關的視頻、圖片等非結構化的數據,主要指儀器設備圖片、科技成果圖片、視頻等資源。
4.1.2 采集方法
中原城市群科技資源數據池支持多種數據采集方式,包括系統對接、網上直報、數據導入、接口對接、網絡采集等多種數據采集方式,能夠滿足科技服務平臺科研數據、科研成果等各類型數據的采集需求,資源提供者可以根據自身實際情況采用不同的方式進行數據上傳。
1)系統對接:通過和國家公共平臺、各地科技平臺等系統對接,獲取相關數據。數據庫對接是數據采集與處理平臺提供的一種特殊的數據采集方式,這種方式的效率很高,但不能進行復雜的格式轉換和篩選過濾。
2)網上直報:可通過在線網上錄入方式直接填寫科研信息、科技成果等內容。
3)數據導入:對于保存在外部數據文件中的大批量數據,均可以采用導入加載的方式批量進行數據采集與處理。
4)接口對接:為了確保平臺數據的安全性,采用數據接口的方式,對接外圍系統,主動獲取對方數據,主動把數據推送給對方。
5)網絡采集:圖片、音頻、視頻等非結構化數據可以采用爬蟲或者API接口的方法直接從各類科研平臺及科研院所獲取相關的數據。
4.1.3 采集標準
利用平臺制定的數據采集標準進行采集。數據采集標準規(guī)定了信息采集的基本原則和要求,包括采集方式、采集范圍、采集內容以及數據質量和安全控制要求。代碼集標準規(guī)定了信息資源共享和交換共享平臺人口、法人信息的數據元值域代碼。數據規(guī)范標準規(guī)定了人口、法人信息資源的數據格式規(guī)范。數據存儲和讀取標準規(guī)定了在數據中心如何存儲和讀取人口、法人以及公共信用信息資源。
根據各個數據來源所能提供的數據項,制定標準化模板,實現模板下載,支持數據文件上傳,采集系統根據上傳的數據文件自動識別采集信息,通過前置交換子系統,將采集數據上傳到中心節(jié)點,并轉發(fā)各個服務節(jié)點。
4.2.1 數據清洗
由于各個企業(yè)機構對資源數據存儲標準不一,在數據接入之后,根據統一數據標準,從各個不同的平臺抽取而來的原始數據可能存在數據缺失和數據錯誤的問題[19]。
數據清洗的對象主要是結構化數據,在本資源池的設計中,Hive將分為2個庫:一個庫存儲由Sqoop從關系型數據庫中抽取到HDFS內的原始數據表;另一個庫存儲原始數據經過數據清理后的干凈數據表。
根據資源池的需求,本文將使用HQL對數據進行簡單處理,制定如下的數據清洗流程:
1)根據制定的資源統一標準在Hive中建立數據表,用于存儲干凈數據。
2)根據所需要的字段,對源數據表中所需要的字段做缺失值檢查。
3)填充缺失數據,可采用均值、眾數或中位數的策略。
4)對某些列做格式轉換,如日期、數值類型等。
5)對需要做數值統計的列做統計,如統計某年科技研發(fā)總金額等。
4.2.2 數據規(guī)約
中原城市群科技服務資源數據規(guī)模巨大,巨大的數據量增加了數據處理的時間,數據清洗只能修改錯誤數據,并不能減少數據規(guī)模,因此本文采用數據規(guī)約的方式來達到降低數據規(guī)模的目的。它主要通過維度的減少或者數據量的減少來實現數據規(guī)模的減少。
1)維度規(guī)約。
維度規(guī)約主要是通過減少所需自變量的個數來實現,主要包括小波變換、主成分分析、特征集選擇等技術。其中,小波變換適用于處理科技金融、軍民融合類高維度數據,主成分分析更適合處理科研人員、檢驗檢測設備數量這類離散數據。
2)數量規(guī)約。
數量規(guī)約是通過較小的數據來替代中原城市群中各類原始數據,比較常用參數規(guī)約的方法,進行數據建模,存放相關參數,通過線性回歸、多元回歸實現和對數線性模型實現數量規(guī)約。
4.2.3 數據分類
科技服務平臺數據池作為數據中心最核心的數據基礎,包含高校、企業(yè)、平臺等結構化、半結構化和非結構化科技資源數據。數據存儲層負責平臺中所有數據的存儲,通過數據采集模塊抽取的資源數據都將存儲在數據存儲層中的資源池內,資源池可以分為研發(fā)設計資源池、技術轉移資源池、知識產權資源池、檢驗檢測認證資源池、創(chuàng)業(yè)孵化資源池、科技金融資源池、軍民融合資源池、科技咨詢資源池。除此以外這一層還包括元數據庫和其他數據,其他數據主要是指一些用于維護資源池平臺正常工作的數據。數據存儲層是數據的存儲中心,整合和集成了各個數據源的資源數據,便于數據的集中管理與調用。
科研項目設計工具、設計方案、設計參數等屬于研發(fā)設計數據,歸屬于資源池中研發(fā)設計資源池;技術成果、技術需求、服務機構信息屬于技術轉移數據,歸屬于技術轉移資源池;中原城市群各類專利、軟著等數據屬于知識產權數據,歸屬于資源池中知識產權資源池;檢驗檢測設備儀器、檢驗檢測機構等屬于檢驗檢測相關數據,歸屬于資源池中檢驗檢測認證資源池;創(chuàng)業(yè)孵化器、創(chuàng)業(yè)孵化平臺、創(chuàng)業(yè)孵化基地屬于創(chuàng)業(yè)孵化數據,歸屬于創(chuàng)業(yè)孵化資源池;金融產品、金融機構、金融超市和金融服務平臺科技屬于科技金融數據,歸屬于科技金融資源池;軍地政策、軍地需求信息、技術協作等屬于軍民融合數據,歸屬于軍民融合資源池;科技政策、法律服務、科技管理等屬于科技咨詢數據,歸屬于科技咨詢資源池。
數據存儲層是數據的存儲中心,整合和集成了各個數據源的資源數據,便于數據的集中管理和調研。數據存儲層不僅包括8大資源池,還包括元數據庫和其他數據。
4.3.1 數據存儲技術
1)MySQL關系型數據庫。
MySQL是一種關系型數據庫,可以用來存儲科技服務數據池中的科研數據、科研成果、檢驗檢測等結構化數據。MySQL具有很多優(yōu)點,比如運行速度快、成本低,同時它還支持在多平臺上進行開發(fā),能夠支持不同來源的數據的存儲與檢索[20]。在架構方面,MySQL具有多個子系統的層次化結構,它可以被用作一個獨立的服務器,還能作為大型程序中的嵌入式數據庫來使用[21]。
2)HDFS分布式文件系統。
HDFS是Hadoop生態(tài)圈中負責數據存儲與管理的組件,是Hadoop體系的基礎[22]。中原城市群中圖片、視頻等類型的數據可以存儲在HDFS中,比如檢驗檢測設備圖片、孵化器平臺介紹視頻等。HDFS容錯性能較高,由于可以部署在廉價的服務器上,所以可以在大大減少成本的同時滿足大量數據訪問的需求。HDFS是由大量節(jié)點構成的集群,這個集群的數據存儲能力是由每個節(jié)點的存儲能力決定的[23]。集群將通過對主節(jié)點的控制來實現對其他節(jié)點的控制,對用戶透明,集群對于用戶來說是一個完整的存儲系統。
3)HBase分布式非關系型數據庫。
HBase采用Master/Slave架構搭建集群[24],由HMaster節(jié)點和HRegionServer節(jié)點組成,在Hadoop生態(tài)圈中屬于結構化存儲層,依賴于ZooKeeper集群的協調一致性服務,使用HDFS作為底層文件系統提供存儲支持,通過MapReduce實現計算處理服務,可以使用Hive作為其訪問數據存儲的用戶接口。HBase的數據存儲以列為基本單位,每列數據都擁有可查詢訪問的索引,HBase提供了大規(guī)模數據的隨機讀寫訪問[25]。
4.3.2 數據儲存方式
數據存儲方式多種多樣,根據科技服務數據的格式、類型、應用場景等多方面情況,制定不同的存儲方式來滿足易用、效率、擴展、穩(wěn)定等多方面的需求。
1)KV存儲。
不涉及過多業(yè)務的數據可以通過KV存儲的方式進行存儲,它是一種非關系型數據庫模型,這種存儲方式具有更強的讀寫功能,在存儲過程中能夠降低訪問磁盤的次數。
2)對象存儲。
對象存儲與硬盤和文件系統等存儲形態(tài)不同,對象存儲常以網絡服務的形式提供數據的訪問,通過HTTP接口提供訪問的存儲服務或者存儲系統。對象存儲往往采用2層或者3層的扁平數據組織結構。
3)文件存儲。
文件級存儲:是網絡附屬存儲(nas)環(huán)境,具體采用網絡文件系統(nfs)或者通用網絡文件(cifs)技術。文件級存儲具有方便管理、節(jié)約成本等優(yōu)點,主要用于文件共享環(huán)境。
4)分層存儲。
科技服務平臺各類數據眾多,需求者對平臺各類數據的興趣程度不一,分層存儲通過對各類數據訪問頻率的統計比較,將數據進行分層存儲,達到合理利用的目的。
4.3.3 數據儲存流程
對于像專利信息、科研成果描述信息這樣的存儲在關系型數據庫的二維表格,將通過Sqoop工具抽取到HDFS內,然后加載到Hive內,如圖4所示。在數據采集過程中,Sqoop會首先讀取原始表的結構,然后按照一定的順序將數據分塊,最后把分割后的數據交給Hadoop集群處理。Hadoop集群會對關系型數據庫內的數據以行為單位讀取,執(zhí)行Map程序后,被保存在HDFS中,加載到Hive后,Hive就存有了原始數據表,經過數據清洗處理后,在Hive中生成干凈數據表,由于Hive不適合數據的實時查詢,Hive適用于清洗、處理和計算原始數據,所以最后要將Hive內的干凈數據表同步至HBase中進行數據存儲。
圖4 資源存儲流程圖
對于圖片、視頻等非結構化數據將采用FTP進行數據流的采集,直接將數據存儲至HDFS;對于互聯網數據,則需要利用爬蟲工具,將互聯網數據先抓取到本地再通過FTP傳輸到HDFS分布式文件系統。
數據存儲代碼如下:
public static void getOutput(String outputfile) throws IOException{
StringremoteFile="hdfs://localhost:9000/hadoop/output/part-r-00000";
Path path=new Path(remoteFile);
Configuration conf=new Configuration();
String hdfsPath="hdfs://localhost:9000/";
FileSystem fs=FileSystem.get(URI.create(hdfsPath),conf);
fs.copyToLocalFile(path, new Path(outputfile));
logger.info("已經將輸出文件保留到本地文件");
fs.close();
}
//執(zhí)行mapReduce處理并存儲結構化數據
public static void runMapReduce(String[] args) throws Exception {
Configuration conf=new Configuration();
String[]otherArgs=newGenericOptionsParser(conf,args).getRemainingArgs();
if(otherArgs.length !=2){
System.exit(2);
}
Job job=new Job(conf, "Data stats");
job.setJarByClass(DataStats.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job,newPath(otherArgs[0]));
FileOutputFormat.setOutputPath(job,newPath(otherArgs[1]));
System.out.println("mapReduce執(zhí)行完畢!");
System.exit(job.waitForCompletion(true)?0:1);
}
4.4.1 資源檢索
資源檢索接口向資源請求方提供了中原城市群地區(qū)科技服務資源信息查詢服務,幫助上層快速地查詢資源數據。資源檢索服務包括條件查詢和關鍵字查詢,用戶在進入檢索功能之后,可以選擇查詢范圍,勾選查詢條件,輸入要查詢的關鍵字,最后得到查詢結果。
資源檢索的數據庫將分為2個部分,一部分是系統平臺的資源池,另一部分是其他數據源。由于此類數據源內的資源具有保密性,不能直接將其中的資源采集存儲到本系統資源池中,所以,對于此類數據源,用戶需要通過WebService接口請求數據,數據將以XML或JSON的格式返回Web端。資源檢索過程見圖3。
圖5 資源檢索流程圖
4.4.2 資源分析
資源檢索接口向資源請求方提供了中原城市群地區(qū)科技服務資源信息分析服務,幫助上層快速地查詢到需要的資源數據。根據查詢分析的實時性和延時需求,可選擇不同的計算框架構建查詢義務,一種是Spark并行大數據計算[26],其擁有Hadoop MapReduce所具有的優(yōu)點,同時輸出結果可以保存在內存里面,不用再次從HDFS中調取數據;另一種是storm實時大數據分析,它是一種分布式的、容錯的、實時的內存流式計算系統。
4.4.3 資源預約與調用
鑒于科技資源分布不均以及科技資源個性化需求,圍繞著服務資源的整合、調度、分配策略、集中管理,基于負載均衡和資源均衡策略,研究從共享的物理和虛擬資源中創(chuàng)建服務管理引擎,為應用系統創(chuàng)建和提供統一服務運行環(huán)境,從而實現科技服務資源的進一步高效利用。為了實現這一目標,資源池還提供了資源調度和資源預約的接口,可以實現用戶對中原城市群科技資源的預約調度功能,從而改善科技資源分布不均的情況。
資源池針對資源體系覆蓋的多種行業(yè)、多種學科專業(yè)、多種應用領域的復雜性,確立適合資源應用的維度劃分,確保能夠從多個維度視角去規(guī)范與切分資源體系;基于總線技術構建了適應不同資源池和自適應接入適配器,從而實現各類科技服務資源池適配接入的可配置性和靈活需求。
科技服務資源作為科技資源的組成部分,利用好科技服務資源對科技發(fā)展具有重要的推動作用?,F階段,中原城市群已經形成了具有地域特色的科技資源,但是中原城市群各地的企業(yè)和機構沒有統一的科技服務系統,造成科技發(fā)展水平滯后。為解決上述問題,本文基于中原城市群現有優(yōu)勢資源,通過對科技資源池的定制需求,研究綜合科技服務資源集成技術,完成了中原城市群科技服務資源池的架構設計,有利于提升中原城市群科技創(chuàng)新能力和科技成果轉化水平。