一种基于规则的数据标准化方法及系统与流程

文档序号:18900429发布日期:2019-10-18 21:52阅读:599来源:国知局
一种基于规则的数据标准化方法及系统与流程

本发明涉及数据处理领域,尤其涉及一种基于规则的数据标准化方法及系统。



背景技术:

在信息化领域中一个非常重要的系统就是数据联网系统。各行各业,各级政府部门都建设了大量的信息化系统。以智慧城市为例,省市区县各级都建设了各自的系统,并逐步接入各个行业和部门的数据。由于建设的时间不同,建设的标准各异,承建商的开发规范、对外接口都千差万别。数据联网系统的建设由此成为各级智慧城市总体工程建设的重要组成部分,通过联网系统平台建设,可完成各级智慧城市核心技术平台的搭建,为后续的各行业应用建设和接入奠定坚实的技术基础。数据联网系统作为各级智慧城市整体架构下的基础平台,将分散在各部门的业务数据进行加工处理、分析挖掘形成统一的、完整的、有序的数据资产体系,通过共享交换,实现跨行业、跨部门、跨区域的综合应用和数据共享。在数据联网过程中数据千差万别,加大了分析的难度。而应用平台随着对接的系统的增加,支持的数据种类随之增加。每次联网对接都需要单独开发,并且解析后的数据不能复用。不仅开发复杂,也不易节约成本。因此,数据的标准化成为信息系统开发中一个非常重要的课题。

对于数据标准化,目前市场有以下几种常见方法:

1、需求定制化

根据用户给定数据,定制解决方案,进行需求的定制化开发,以达到数据可用目的。

这种方法的缺点是无法满足未知数据接入标准化需求,每次数据的对接,都需要根据对接数据的格式进行定制化开发,开发工作量大,对接周期长。

2、通过暴露代码支持不同数据格式。

例如将c、nodejs、java等语言置入转换平台,让企业可以基于不同格式数据标准化。

这种方法的缺点是运维成本高,不易扩展。

因此,本领域的技术人员致力于开发一种基于规则的数据标准化方法及系统,根据事先定义的规则文件,无需开发就可实现数据的标准化。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是可以根据用户标准化需求生成不同规则,不同格式的数据通过配置对应规则,实现数据的标准化处理。新数据接入无需改动方案和开发工作,只需要增加新的规则即可。

为实现上述目的,本发明提供了一种基于规则的数据标准化方法,包括规则管理,转换管理,输出管理,规则管理定义数据标准化规则,转换管理根据规则管理定义的数据标准化规则,将输入数据转换为标准化结构数据,输出管理将标准化结构数据进行持久化输出。

进一步地,数据标准化规则采用xml文件格式。

进一步地,规则管理包括规则解析和规则匹配,规则解析将xml文件加载到内存中,规则匹配为转换管理提供对应的数据标准化规则。

进一步地,规则解析包括以下步骤:

s101、从配置路径读取数据标准化规则文件;

s102、用xml工具解析数据标准化规则文件;

s103、新建一个元素节点;

s104、如果是一个连续开始标签,则新建一个模型节点;

s105、如果节点为condition,为特殊节点不新建元素节点,取出属性赋值给模型节点条件存储结构condition;

s106、xml取值默认为string类型,为了后续转换,根据type属性将value转换为对应类型;

s107、取出属性赋值给模型节点条件存储结构condition;

s108、特殊处理修改开始标记和结束标记,使得下一个节点与condition节点在同一父节点下;

s109、如果模型节点中元素存储为空,则手动创建存储空间;

s110、将新建元素节点放入模型节点map中;

s111、新建元素节点的模型父节点为当前模型;

s112、如果是一个连续结束标签,则需要向上退一次到父模型节点;

s113、结束标签结构化完成;

s114、将结构化规则存储到id对应哈希表中。

进一步地,规则匹配包括以下步骤:

s201、根据数据定义模型得出规则id;

s202、根据规则id查找数据对应转换规则;

s203、将匹配到的转换规则结果以结构化指针返回。

进一步地,转换管理包括数据解析和数据转换,数据解析将不同格式的源数据进行结构解析,数据转换根据转换规则将源数据转换为标准化数据。

进一步地,数据解析包括以下步骤:

s301、接收源数据,将源数据结构化到内存;

s302、获取源数据首部标识信息;

s303、根据首部标识信息生成规则id;

s304、根据规则id获取对应数据转换规则。

进一步地,数据转换包括以下步骤:

s401、获取转换规则key;

s402、根据规则中key值查找数据中是否有对应字段;

s403、查找到对应字段,根据数据格式判断下一步操作;

s404、如果为数据类型,循环数组中所有元素;

s405、如果为对象则进一步拆分对象;

s406、如果为单个元素,则根据元素key对应转换目的字段取出数据值放入缓存;

s407、循环递归执行步骤s403、s404、s405、s406,遍历源数据中所有字段,根据规则找到对应的转换结果;

s408、将转换后的结构化结果输出。

进一步地,输出管理将标准化结构数据组装为json格式并持久化,持久化方法包括kafka,rest,数据库等,具体实现过程包括以下步骤:

s501、根据数据类型获取内部标准数据结构;

s502、根据字段名称获取数据类型;

s503、根据数据类型将外部字段类型转换为标准化类型;

s504、循环执行s502、s503直到将数据中类型转换为标准化类型;

s505、将标准化后数据打包为json统一输出;

s506、根据用户输出需求持久化。

本发明还公开了一种基于规则的数据标准化系统,包括输入数据模块、数据模型模块、规则管理模块、转换数据模块、打包数据模块、输出数据模块,按照前述方法进行数据的标准化。

本发明可以根据用户标准化需求生成不同规则,新数据接入无需改动方案和二次开发,只需要增加对应转换规则,就可以实现不同格式数据的标准化。规则文件通过配置xml文件实现,简单易懂。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的数据交互逻辑图;

图2是本发明的一个较佳实施例的数据处理流程图;

图3是本发明的一个较佳实施例的规则文件逻辑结构图。

具体实施方式

以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。

如图一所示,基于规则的数据标准化系统,包括输入数据模块、数据模型模块、规则管理模块、转换数据模块、打包数据模块、输出数据模块。输入数据模块负责源数据的输入,通过数据模型模块,确定转换所需使用的规则模型。规则管理模块负责转换规则的管理,根据源数据的类型,增加所需的转换规则。数据转换模块则根据转换规则,实现源数据的具体转换,通过打包数据模块生成结构化的标准数据,输出数据模块将打包数据模块生成的结构化数据持久化。

智能安防系统中机动车摄像会产生大量的数据且各个部门经常需要进行数据的交换,而不同系统产生的数据格式不同,因此需要按照标准规范进行数据的转换。

一个具体的源数据如下:

该源数据包括了机动车的基本信息、使用过程中拍摄到的车道、速度、拍摄时间、设备号、图片格式、图片存储路径等信息,以及若干张相关图片的信息。

为了实现不同部门、上下级之间的数据共享,需要将该数据标准化为统一的格式。标准化数据包含如下字段:motorvehicleid、infokind、sourceid、scenesimageid、sceneseventsort、scenesdeviceid、scenestype、faceimageid、faceeventsort、facedeviceid、facetype字段。其中标准化数据需要的字段在源数据中有对应的字段,可以直接获取,有些字段则需要根据图片的不同类型,选择性地进行数据的抽取和转换。

为此,需要在规则文件中增加一条针对该源数据机动车sdk的转换规则,采用xml文件格式描述,具体规则文件描述如下:

规则文件的逻辑结构如图三所示,描述了规则文件的逻辑关系,以及根据不同条件进行图片信息标准化转换的逻辑。其中,motorvehicleid、infokind、sourceid字段可以直接抽取,scenesimageid、sceneseventsort、scenesdeviceid、scenestype需要根据源数据中图片的type值为“14”的图片信息进行转换;faceimageid、faceeventsort、facedeviceid、facetype则需要根据源数据中图片的type值为“1”的图片信息进行转换。因此,在规则文件中分别定义了两个condition节点,对subimageinforobject中不同imageid图片的type值进行判断,并根据判断结果进行赋值。

待转换数据作为源数据,按照图二所示的数据转换流程图进行数据转换,步骤如下:

步骤一:开始。

步骤二:初始化转换规则,将名称为机动车sdk的转换规则导入内存。具体导入步骤为:

从配置路径读取规则文件“机动车sdk”;

用xml工具解析该规则文件;

依次建立motorvehicleid、infokind、sourceid的转换规则;

建立一个condition节点,如果type的值为“14”,依次建立scenesimageid、sceneseventsort、scenesdeviceid、scenestype的转换规则;

建立另一个condition节点,如果type的值为“1”,依次建立faceimageid、faceeventsort、facedeviceid、facetype的转换规则;

标签结构解析完成。

步骤三:判断初始化是否成功,如不成功则结束,成功则继续步骤四。

步骤四:判断是否有数据。

步骤五:获取数据。

步骤六:数据解析,将motorvehiclelistobject中所有字段解析出来。

步骤七:按照步骤二中描述的规则进行数据转换,依次转换得到motorvehicleid、infokind、sourceid,接着解析到subimageinfoobject中的两个节点,其中第一个节点的type值为“14”,对应将imageid=10001的图片的imageid、eventsort、deviceid、type的值依次赋值给scenesimageid、sceneseventsort、scenesdeviceid、scenestype;其中第二个节点的type值为”1”,对应将imageid=10002的图片的imageid、eventsort、deviceid、type的值依次赋值给faceimageid、faceeventsort、facedeviceid、facetype。

步骤八:数据打包,将步骤七中转换得到的motorvehicleid、infokind、sourceid、scenesimageid、sceneseventsort、scenesdeviceid、scenestype、faceimageid、faceeventsort、facedeviceid、facetype字段组装为json格式。

步骤九:输出数据,完成数据的持久化。

步骤十:判断是否还有数据,如果还存在数据,回到步骤四重复转换操作,如果数据已经全部处理完,则过程结束。

经过以上步骤,对于刚才给定的源数据,得到的标准化输出数据如下:

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1