单 珂,张一鸣,刘瑞霞
(1.齐鲁工业大学(山东省科学院),山东 济南 250353; 2.山东省计算中心(国家超级计算济南中心),山东 济南 250013;3.山东省人工智能研究院,山东 济南 250013)
我国科技产业众多,科技服务资源种类丰富,各省市的科技服务产业自成体系,但由于各区域的经济发展、科技发展不平衡等问题,科技资源分布不均,虽然高校与科研机构有较为丰富的科研资源与专家,但缺乏技术转移、成果转化的服务资源,而企业有丰富的市场资源与生产经验,但往往缺乏技术创新性,同时对高质量的人才资源有大量需求。科技服务资源的分散孤立导致了资源壁垒[1-2]。
中原城市群的科技服务机构类型齐全,科技服务资源众多,发展基础较好,但区域间缺乏协同,行业发展不均衡[3]。安徽、山东两省科技服务业的总产值呈现出逐年递增的趋势,企业孵化器、众创空间等科技服务机构数量较多[4-5];河北省近年来科技服务业水平不断提高,但相比北京、上海等地仍有较大差距[6-7];河南、山西两省存在高层次科技人才比例偏低、知识产权资源相对较少等难题,造成其科技服务规模较小、科技服务业效益低[8-9],因此加快区域科技服务资源池的建设对于促进中原地区各城市科技资源服务均衡发展具有重要意义[10]。
因此,整合不同机构的科技服务资源,集产、学、研为一体构建区域性的科技服务资源池,将大力推进区域科技创新能力,有助于建立优势互补、互利共赢的科技服务新模式,为各类机构提供科技信息服务,促进科技创新发展。
现阶段,科技资源共享管理在国内外都已有先例[1],其他国家级城市群同样也在发展集成各自区域科技资源的科技服务资源池。
京津冀综合科技服务资源池由3类资源池组成,分别是新一代信息技术资源池、装备制造资源池和生态环保资源池。京津冀综合科技服务资源池对资源进行合理分类,借助描述规范和接口定义,消除了资源间的异构性,实现了数据融合与资源的异地共享[11]。
成渝城市群的科技服务资源池的建设利用了资源整合技术,基于云计算技术以科技资源的云集成为切入点,将多源异构数据转化为符合规范的服务资源,通过科技云将其他功能各异的平台上的资源统一接入至该资源池中[12-13]。
哈长城市群根据产业特色,构建了以高端装备制造业资源、生物医药资源、新材料产业资源为特色的科技服务资源池[14],通过对这3类产业的科技服务资源需求进行整理分析,与资源池中的共性服务资源提供方进行对接,实现资源的匹配与优选[15]。
为实现中原城市群科技服务资源大数据平台的构建,需要从各个企业、科研机构、高校的数据库中采集数据,由于数据的种类繁多、数据标准不统一,所以需要采用不同的数据接入方式对不同类别的数据分别进行数据采集并存储,同时制定科技服务资源统一标准,将采集储存的数据资源按照标准进行清洗[16]。此外,由于某些资源的并发请求量大,大数据平台需制定资源调度策略来应对。以下将对大数据平台的功能性需求进行分析。
在中原城市群科技服务资源的数据源中,数据按获取方式分为结构化数据、半结构化数据和非结构化数据[17]。系统需要将这些异构数据向大数据平台迁移,通过资源提供方预设的自定义数据存储参数,利用数据采集模块半自动化接入多源异构数据。
对于不同的资源形式,为共建共享科技服务资源的业务信息数据,针对数字、文本、图像、视频、文件等多种形式的大数据设计合理的存储方案,根据资源提供方接入的数据类型,调用相应存储系统,从而支持上层系统应用。
由于各个企业机构的数据存储标准不同,接入的源数据往往存在许多脏数据,因此,科技资源数据池需要对接入的源数据进行数据清洗,最终获取到干净的符合要求的数据。
由于某些稀缺科技资源会被用户频繁请求,并发请求量可能会很大,而系统的并发处理能力是有限的,所以系统需要分析各资源的状态和请求的需求,作出合理调度分配,尽可能做到负载均衡,以保证整体系统能够正常运行。
结合系统平台的应用场景,资源池的非公性需求主要满足以下几项原则:
1)安全性。
安全性是一个系统平台最基本的保障,在资源接入的过程中,应该保证系统运行的稳定性并且防止数据泄露丢失。对于关键的敏感信息需要数据加密,此类信息在迁移、访问时需要密切监控。在确保数据存储安全的同时,还要完善用户权限机制和身份验证过程,保证数据访问安全和隐私保护。
2)经济性。
资源迁移过程的设计需要在满足目标的前提下尽量降低成本和人力资源,应该保证平台易于维护,减少不必要的人力、物力、财力支出。
3)可用性。
数据接入与资源管理调度过程应该做到整个流程的自动化,需要保证整个平台24 h无间断的连续运行,而且在业务数据处理出错时具有报警功能;还需要考虑未来需要增加业务功能时,可以实现快速开发部署。
中原城市群科技资源池主要实现对现有的科研数据、人才信息、仪器设备、技术成果等资源进行有效的整合共享。以科技服务资源体系标准为支撑,实现科技服务资源数据标准化,形成不同的标准资源池[18]。为了保证资源池的可扩展性和柔性,资源池的整体设计将采取分层设计思想,每一层都将实现其特有功能。整体系统架构如图1所示,资源池业务架构如图2所示。
图1 资源池系统架构图
图2 资源池业务架构图
对数据库中的字段设计如图3所示。
图3 资源数据库设计
中原城市群内各类科技服务机构、省市级科技服务平台以及众多高校院所每天都会产生大量的数据,这些数据存放在它们各自的数据库中,数据采集就是将这些数据统一采集到科技服务资源池中进行统一处理。
4.1.1 采集内容
中原城市群科技服务资源池囊括了5个省份的科技服务资源,主要分为3类:1)科研信息、科研成果信息、检验检测认证和知识产权等关系型数据,主要来自企业、高校及相关科技机构;2)文档、Web数据等半结构化数据,主要包括学术平台上的项目和门户网站上的政策性文件、成果报告等;3)与科技资源相关的视频、图片等非结构化的数据,主要指仪器设备图片、科技成果图片、视频等资源。
4.1.2 采集方法
中原城市群科技资源数据池支持多种数据采集方式,包括系统对接、网上直报、数据导入、接口对接、网络采集等多种数据采集方式,能够满足科技服务平台科研数据、科研成果等各类型数据的采集需求,资源提供者可以根据自身实际情况采用不同的方式进行数据上传。
1)系统对接:通过和国家公共平台、各地科技平台等系统对接,获取相关数据。数据库对接是数据采集与处理平台提供的一种特殊的数据采集方式,这种方式的效率很高,但不能进行复杂的格式转换和筛选过滤。
2)网上直报:可通过在线网上录入方式直接填写科研信息、科技成果等内容。
3)数据导入:对于保存在外部数据文件中的大批量数据,均可以采用导入加载的方式批量进行数据采集与处理。
4)接口对接:为了确保平台数据的安全性,采用数据接口的方式,对接外围系统,主动获取对方数据,主动把数据推送给对方。
5)网络采集:图片、音频、视频等非结构化数据可以采用爬虫或者API接口的方法直接从各类科研平台及科研院所获取相关的数据。
4.1.3 采集标准
利用平台制定的数据采集标准进行采集。数据采集标准规定了信息采集的基本原则和要求,包括采集方式、采集范围、采集内容以及数据质量和安全控制要求。代码集标准规定了信息资源共享和交换共享平台人口、法人信息的数据元值域代码。数据规范标准规定了人口、法人信息资源的数据格式规范。数据存储和读取标准规定了在数据中心如何存储和读取人口、法人以及公共信用信息资源。
根据各个数据来源所能提供的数据项,制定标准化模板,实现模板下载,支持数据文件上传,采集系统根据上传的数据文件自动识别采集信息,通过前置交换子系统,将采集数据上传到中心节点,并转发各个服务节点。
4.2.1 数据清洗
由于各个企业机构对资源数据存储标准不一,在数据接入之后,根据统一数据标准,从各个不同的平台抽取而来的原始数据可能存在数据缺失和数据错误的问题[19]。
数据清洗的对象主要是结构化数据,在本资源池的设计中,Hive将分为2个库:一个库存储由Sqoop从关系型数据库中抽取到HDFS内的原始数据表;另一个库存储原始数据经过数据清理后的干净数据表。
根据资源池的需求,本文将使用HQL对数据进行简单处理,制定如下的数据清洗流程:
1)根据制定的资源统一标准在Hive中建立数据表,用于存储干净数据。
2)根据所需要的字段,对源数据表中所需要的字段做缺失值检查。
3)填充缺失数据,可采用均值、众数或中位数的策略。
4)对某些列做格式转换,如日期、数值类型等。
5)对需要做数值统计的列做统计,如统计某年科技研发总金额等。
4.2.2 数据规约
中原城市群科技服务资源数据规模巨大,巨大的数据量增加了数据处理的时间,数据清洗只能修改错误数据,并不能减少数据规模,因此本文采用数据规约的方式来达到降低数据规模的目的。它主要通过维度的减少或者数据量的减少来实现数据规模的减少。
1)维度规约。
维度规约主要是通过减少所需自变量的个数来实现,主要包括小波变换、主成分分析、特征集选择等技术。其中,小波变换适用于处理科技金融、军民融合类高维度数据,主成分分析更适合处理科研人员、检验检测设备数量这类离散数据。
2)数量规约。
数量规约是通过较小的数据来替代中原城市群中各类原始数据,比较常用参数规约的方法,进行数据建模,存放相关参数,通过线性回归、多元回归实现和对数线性模型实现数量规约。
4.2.3 数据分类
科技服务平台数据池作为数据中心最核心的数据基础,包含高校、企业、平台等结构化、半结构化和非结构化科技资源数据。数据存储层负责平台中所有数据的存储,通过数据采集模块抽取的资源数据都将存储在数据存储层中的资源池内,资源池可以分为研发设计资源池、技术转移资源池、知识产权资源池、检验检测认证资源池、创业孵化资源池、科技金融资源池、军民融合资源池、科技咨询资源池。除此以外这一层还包括元数据库和其他数据,其他数据主要是指一些用于维护资源池平台正常工作的数据。数据存储层是数据的存储中心,整合和集成了各个数据源的资源数据,便于数据的集中管理与调用。
科研项目设计工具、设计方案、设计参数等属于研发设计数据,归属于资源池中研发设计资源池;技术成果、技术需求、服务机构信息属于技术转移数据,归属于技术转移资源池;中原城市群各类专利、软著等数据属于知识产权数据,归属于资源池中知识产权资源池;检验检测设备仪器、检验检测机构等属于检验检测相关数据,归属于资源池中检验检测认证资源池;创业孵化器、创业孵化平台、创业孵化基地属于创业孵化数据,归属于创业孵化资源池;金融产品、金融机构、金融超市和金融服务平台科技属于科技金融数据,归属于科技金融资源池;军地政策、军地需求信息、技术协作等属于军民融合数据,归属于军民融合资源池;科技政策、法律服务、科技管理等属于科技咨询数据,归属于科技咨询资源池。
数据存储层是数据的存储中心,整合和集成了各个数据源的资源数据,便于数据的集中管理和调研。数据存储层不仅包括8大资源池,还包括元数据库和其他数据。
4.3.1 数据存储技术
1)MySQL关系型数据库。
MySQL是一种关系型数据库,可以用来存储科技服务数据池中的科研数据、科研成果、检验检测等结构化数据。MySQL具有很多优点,比如运行速度快、成本低,同时它还支持在多平台上进行开发,能够支持不同来源的数据的存储与检索[20]。在架构方面,MySQL具有多个子系统的层次化结构,它可以被用作一个独立的服务器,还能作为大型程序中的嵌入式数据库来使用[21]。
2)HDFS分布式文件系统。
HDFS是Hadoop生态圈中负责数据存储与管理的组件,是Hadoop体系的基础[22]。中原城市群中图片、视频等类型的数据可以存储在HDFS中,比如检验检测设备图片、孵化器平台介绍视频等。HDFS容错性能较高,由于可以部署在廉价的服务器上,所以可以在大大减少成本的同时满足大量数据访问的需求。HDFS是由大量节点构成的集群,这个集群的数据存储能力是由每个节点的存储能力决定的[23]。集群将通过对主节点的控制来实现对其他节点的控制,对用户透明,集群对于用户来说是一个完整的存储系统。
3)HBase分布式非关系型数据库。
HBase采用Master/Slave架构搭建集群[24],由HMaster节点和HRegionServer节点组成,在Hadoop生态圈中属于结构化存储层,依赖于ZooKeeper集群的协调一致性服务,使用HDFS作为底层文件系统提供存储支持,通过MapReduce实现计算处理服务,可以使用Hive作为其访问数据存储的用户接口。HBase的数据存储以列为基本单位,每列数据都拥有可查询访问的索引,HBase提供了大规模数据的随机读写访问[25]。
4.3.2 数据储存方式
数据存储方式多种多样,根据科技服务数据的格式、类型、应用场景等多方面情况,制定不同的存储方式来满足易用、效率、扩展、稳定等多方面的需求。
1)KV存储。
不涉及过多业务的数据可以通过KV存储的方式进行存储,它是一种非关系型数据库模型,这种存储方式具有更强的读写功能,在存储过程中能够降低访问磁盘的次数。
2)对象存储。
对象存储与硬盘和文件系统等存储形态不同,对象存储常以网络服务的形式提供数据的访问,通过HTTP接口提供访问的存储服务或者存储系统。对象存储往往采用2层或者3层的扁平数据组织结构。
3)文件存储。
文件级存储:是网络附属存储(nas)环境,具体采用网络文件系统(nfs)或者通用网络文件(cifs)技术。文件级存储具有方便管理、节约成本等优点,主要用于文件共享环境。
4)分层存储。
科技服务平台各类数据众多,需求者对平台各类数据的兴趣程度不一,分层存储通过对各类数据访问频率的统计比较,将数据进行分层存储,达到合理利用的目的。
4.3.3 数据储存流程
对于像专利信息、科研成果描述信息这样的存储在关系型数据库的二维表格,将通过Sqoop工具抽取到HDFS内,然后加载到Hive内,如图4所示。在数据采集过程中,Sqoop会首先读取原始表的结构,然后按照一定的顺序将数据分块,最后把分割后的数据交给Hadoop集群处理。Hadoop集群会对关系型数据库内的数据以行为单位读取,执行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();
}
//执行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执行完毕!");
System.exit(job.waitForCompletion(true)?0:1);
}
4.4.1 资源检索
资源检索接口向资源请求方提供了中原城市群地区科技服务资源信息查询服务,帮助上层快速地查询资源数据。资源检索服务包括条件查询和关键字查询,用户在进入检索功能之后,可以选择查询范围,勾选查询条件,输入要查询的关键字,最后得到查询结果。
资源检索的数据库将分为2个部分,一部分是系统平台的资源池,另一部分是其他数据源。由于此类数据源内的资源具有保密性,不能直接将其中的资源采集存储到本系统资源池中,所以,对于此类数据源,用户需要通过WebService接口请求数据,数据将以XML或JSON的格式返回Web端。资源检索过程见图3。
图5 资源检索流程图
4.4.2 资源分析
资源检索接口向资源请求方提供了中原城市群地区科技服务资源信息分析服务,帮助上层快速地查询到需要的资源数据。根据查询分析的实时性和延时需求,可选择不同的计算框架构建查询义务,一种是Spark并行大数据计算[26],其拥有Hadoop MapReduce所具有的优点,同时输出结果可以保存在内存里面,不用再次从HDFS中调取数据;另一种是storm实时大数据分析,它是一种分布式的、容错的、实时的内存流式计算系统。
4.4.3 资源预约与调用
鉴于科技资源分布不均以及科技资源个性化需求,围绕着服务资源的整合、调度、分配策略、集中管理,基于负载均衡和资源均衡策略,研究从共享的物理和虚拟资源中创建服务管理引擎,为应用系统创建和提供统一服务运行环境,从而实现科技服务资源的进一步高效利用。为了实现这一目标,资源池还提供了资源调度和资源预约的接口,可以实现用户对中原城市群科技资源的预约调度功能,从而改善科技资源分布不均的情况。
资源池针对资源体系覆盖的多种行业、多种学科专业、多种应用领域的复杂性,确立适合资源应用的维度划分,确保能够从多个维度视角去规范与切分资源体系;基于总线技术构建了适应不同资源池和自适应接入适配器,从而实现各类科技服务资源池适配接入的可配置性和灵活需求。
科技服务资源作为科技资源的组成部分,利用好科技服务资源对科技发展具有重要的推动作用。现阶段,中原城市群已经形成了具有地域特色的科技资源,但是中原城市群各地的企业和机构没有统一的科技服务系统,造成科技发展水平滞后。为解决上述问题,本文基于中原城市群现有优势资源,通过对科技资源池的定制需求,研究综合科技服务资源集成技术,完成了中原城市群科技服务资源池的架构设计,有利于提升中原城市群科技创新能力和科技成果转化水平。