庄良源
(福建省南安市市场监督管理局 福建省南安市 362300)
在当前科技飞速发展的背景下,专利的数据存储工作也显得越发的繁琐和复杂,传统数据库已经渐渐不能满足大量专利数据存储的功能。其中的难点就是异构数据的存贮,异构数据的特点就是收录校验和数据存储的难度大,同时它的资源通常较为分散,数据增长速度快的同时类型也更加的多样化,所以如果实现针对异构数据的存储是专利部门数据库开发人员不得不面临的难题。专利部门的专利数据就是典型的异构数据,本文针对专利数据的特点,在云平台的基础上开发了专利数据库,对异构数据实现了一定程度的智能化管理,能够用于多个地使用场景,希望能对相关的数据库开发项目提供一些建议。
本次设计计划针对专利数据中心的专利数据安全云提供相应的支持,核心是针对此类型的异构数据建立相应的储存、检索和管理框架。整个专利数据库系统架构共分为三个数据模块,分别是数据储存模块、数据检索模块和数据管理模块。针对这三个模块的特点笔者采用了HDFS、MySQL 和Redis 所综合而成的数据库技术方案与MVVM 为主的前后端分离式Web 系统设计。
HDFS 技术是指Hadoop 分布式文件系统,作为针对大数据运行日志存储让设计出来的分布式储存系统,HDFS 有着良好的储存效果,但是实际的数据基础与应用需求表现不佳,所以仅使用Hadoop 框架下的HDFS 作为数据储存的核心之一。
MySQL 是一类常见的开源关系型数据库类型,其本身有着完全多线程编程、具备优化的SQL 算法、多平台支持和集群部署等优势。MySQL 数据库可以分为用户层、SQL 节点、数据节点和管理服务器等部分,能够很好的满足异构数据的储存需求,所以本次研究使用MySQL 作为主要数据储存核心。[1]
Redis 是一类常见的内存数据库,与上述数据库的储存方式不同,Redis 数据库的存储和计算工作完全在计算机内存中运作。Redis 的特点在于其支持半结构化的数据存储功能和部分特殊数据结构的存储,使用对象非常的灵活,对于数据增长速度快的同时类型也更加的多样化的异构数据来说非常合适。此外Redis 的操作满足原子性约束的原理,有着非常高的读写性能的同时支持数据持久化,运行起来非常的稳定可靠。[2]所以本次研究同样使用Redis 作为主要数据储存核心。
所谓MVVM 架构是模型(Model)、视图(View)、视图模型(ViewModel)平行架构的简称。MVVM 大致可以分为视图层、视图模型层、模型层三层,三层之间进行着同步更新,并且采用数据绑定技术和指令绑定技术进行绑定,从而形成了无缝的数据反馈,能够方便永兴进行大量数据的编辑和读取调用工作。针对专利异构数据的运行特点,笔者采用MVVM 作为本次数据库的前端框架结构。[3]
本次专利数据库采用前后端分离式Web 系统,其中前段框架采用上文介绍的MVVM 架构中的Vue 框架,同时绑定DOM 用以实现数据的实时更新、编辑和读取调用。后段技术框架则采用Gin框架,作为Golang 编写的开源框架,Gin 有着支持多个子程序段并发和占用堆栈大小非常小的特点。能够很好的处理专利数据库中关于文件上传、参数获取、数据处理和协议验证等工作。
本次专利数据库所采用的Web 服务器是Nginx 服务器,其特点为要求低、体积小和负载均衡模块灵活,所以应用到特定的专利数据库中能够节省一定程度的系统开销,同时安装配置简单,并且支持服务器集群策略,所以在异构数据处理上有着一定的拓展性优势。[4]
本次研究针对的是专利数据库建设,基于笔者的数据库开发经验,笔者认为本次研究的难点主要在于专利数据统一存储和检索以及专利数据的完备度校验上。
专利数据面临的数据来源多种多样,不同专利面临的数据内容不同,但从数据结构上来看可以分为半结构化数据、结构化数据和非结构化数据,三类数据分布于不同的数据库中,需要进行统一的存储。同时专利数据的跨库检索实现起来也有一定的难度,不同数据库之间的检索入口和条件设置都有所区别,因此云平台基础上的专利数据库设计的首要难点就是针对存储和检索方案进行设计。
3.1.1 专利数据存储方案
本次研究的专利数据库存储系统针对半结构化数据、结构化数据和非结构化数据的特点,采用Redis 存储半结构化数据、MySQL存储节后华数据、HDFS 存储类型文件数据的存储方法,同时利用Redis 的特性实现数据的检索和缓存,进而实现后续的数据检索模块。
3.1.2 专利数据检索方案
在专利数据的跨库检索方面,可以将本次上文三类数据存储的数据归结为数据库检索和数值检索两个方面。其中数据库检索需要建立特定的三级表结构,依照小型数据库字库和大型数据库字库采取不同的应对措施。小型数据库字库规定数据条数为1000 以内,采取后端程序分段检测的检测方式,大型数据库规定数据条数为1000 及以上,采用直接调取三级表中目标数据库的id 形式,进而进行相应的解析,然后获得子数据库后进行针对性的检索;在数值检索方面,需要建立作为检索起点的数据表,然后对用户的检索选项进行相应的区分与判断,然后基于B+树的检索结果进行缓存方案,用来优化专利数据库数值检索的效率,进而完成相应的索引构建。
本次设计的专利数据库的完备度校验采用自动化入库和自动化完备度分析工具为基础,作为一种面向对象的关系型数据库,自动化入库和自动化完备度分析工具支持在标准数据库系统中管理相关数据,一方面能够实现数据的完整性,另一方面能够保证使用过程的安全。基于本次试验实际情况,笔者将专利数据库系统完备度校验的构建分为如下几步:
(1)针对该数据库的专利数据系统信息数据进行搜集和整理,针对不同的分类完成格式、单位和尺度的统一,最终将该数据库的数据库完备度信息编程有效的字段名和表头;
(2)完成自动化入库和自动化完备度分析工具的构建,依照完备度的实际情况将不同的参数进行分类和储存;
(3)把剩下的数据储存到access 属性的二维表数据库中,同时完成分类和编码;
(4)完善自动化入库和自动化完备度分析工具各版块的构建和相应的管理系统。
专利异构数据存在数据资源分散,数据类型、资源总量扩张迅速的特征。目前,专利数据库系统中收录的数据主要为自身企业在运转过程中所产生的海量数据,部分数据量为TB 级。随着专利局云用户的不断增长,专利局云应用的开发与增加,专利局专利数据库系统中的数据量将快速增长。与此同时,目前专利局云的目标用户为内部用户,数据访问量较低,而随着专利局云的推广、数据收录的增加,远期应用场景可能会面对高并发请求、高数据存储请求的应用场景。
为满足专利数据库系统的上述技术特征与需求,框架结构选择阶段需要考虑系统对于云其他模块的底层支持,同时对用户量、数据量增长后服务器扩容的基础条件等因素进行评估。
本文使用了基于NGV(Nginx+Gin+Vue)技术栈的MuVM 框架,其中Nginx 为基础Web 服务器,实现请求的分流与转发,同时实现系统的负载均衡。Gin 为后端服务器框架,Vue 为前端框架,系统的设计模式为MVVM 模式,实现前后端的轻耦合,降低用户与服务器间的数据通信量,进而提高系统的并发性能。
本次研究的云平台基础上专利数据库设计其架构可以分为Nginx、基于Vue 开发的前端程序、基于Gin 开发的后端程序、存储层三个层面。
其中Nginx 分为proxy 反向代理模块和upstream 负载均衡模块;
基于Vue 开发的前端程序分为权限控制模块、数据基础服务模块、跨库访问模块、数据检索模块、数据可视化模块、数据库管理模块和软件资源管理模块;
基于Gin 开发的后端程序分为DAO 模块、SSO 模块、TXTWO 格式解析器、数据库管理模块、权限服务模块和数据收录分析模块
储存层则分为HDFS、MySQL 和Redis 所综合而成的数据库存储模块。
专利数据库系统采用了基于NGV 技术栈的MVVM 开发模式,实现了对单机部署、分离部署、集群部署三种部署方案的支持,而上述三种部署方案需要经过测试验证以确保方案的可行性、科学性。
单机部署测试软硬件环境:
硬件环境为CPU:1Core(IntelE-2682-V4@2.SGhz)内存:0.5GB
软件环境为操作系统:ubuntu 16.04
功能测试过程中,针对相应系统的单机部署方案的有效性、可行性进行了部署、验证,在单机部署模式下,专利数据库系统能够正常提供数据即软件服务,各项功能正常,单机部署方案是可行的。
专利管理部门的主要功能对专利的信息进行录入、修改、查询、删除,具体分为管理者未确认、管理者已确认和管理者已驳回三种不同的场景。当专利管理人员将专利录入系统后,自动转入管理者未确认状态。而管理者可以执行两种操作:驳回、确认。当管理者驳回专利时,需要说明驳回原因,专利管理人员根据管理者驳回原因可以选择进行修改或者作废该专利。除此之外,在专利管理人员录入专利的同时,需要填写管理者的基本信息,后台将己经提交的专利信息中关于管理者的基本信息存入数据库中的管理者表单中,具体数据依照实际应对的类型不同进行相应的调整。
专利数据种类多,数据更新频繁,使得数据资源的覆盖度和完整性分析成为数据管理过程中的难点。专利数据目前以TXTWO格式存储,为实现专利数据的自动化收录,本文设计开发了针对TXTWO 格式的专利数据自动化入库工具。数据库管理员或用户上传TXTWO 格式的文本后,专利异构数据库系统处理程序首先对用户上传的专利数据文件进行分片,得到每条数据对应的数据值,从中提取对应数据。专利异构数据库系统收到用户上传文件后,首先进行格式校验,确认其为TXTWO 文件后计算器HASH 码,并与己有数据比对,若是己有文件则直接向用户展示对应的数据内容。若用户上传的是新文件,则直接将TXTWO 文件存入HDFS 系统中,同时则根据TXTWO 数据组织及数据规定,读取出对应的参数,并根据文件说明从每条数据中整理出对应的数据参数,并整理存储进入到MySQL 数据库中,从而实现专利数据的自动化入库。数据上传进入专利数据库系统后,数据库管理员可直接使用对应的数据统计工具快速分析其中的数据资源。
总而言之,专利数据库构建是当前数据库构建领域发展的重要方向,将之组合不仅能够挖掘传输识别过程中各个已有数据之间的潜在关系,更能快速地构建起相关的预测模型。当然本次研究也存在着许多的不足,虽然本次研究对专利数据库构建在当前数据库构建应用中存在的问题进行了分析,但仍不够深入,希望将来能有机会继续对数据库构建的问题进行研究,进而为我国相关领域的发展做出贡献。