一种基于配置数据加工模型的加工中心数据流式处理方法_2

文档序号:9597877阅读:来源:国知局
一模块当中的字段名称变换模块的实例,这个实例将原来的字段名称转变成pnewname要求的字段名称,其他的内容均不改变,生成的新数据缓存到数据加工模型multimap的数据结构中。如果配置了 otrim字段,那么系统会实例化一个字段部分内容删除模块将otrim字段里面指定的内容都删除掉再将处理好的数据缓存到multimap当中。数据一对多拆分模块包括了基于设定标示符的拆分模块、基于正则表达式的拆分模块、基于特征匹配的拆分模块。数据拆分模块步骤与一对一加工模块类似,也是接收由系统发送给他的需处理的数据和匹配规则rule、加工规则match、过滤条件,只是在装配时多了一个osplittag字段,系统会根据配置的字段和具体的值进行判定是哪个拆分模块进行处理,例如如果系统配置osplittag字段的内容为一个逗号(,)那么系统会实例化一个基于设定标示符的拆分模块,然后通过pname获取这个数据处理模块具体处理的是数据中哪个字段,得到该模型的内容并且以逗号为标志分割该字段的内容,完成后数据内容为多个值,此时系统根据pnewname字段改变该内容的字段名称,然后以
key---value数组的形式存储在multimap当中。如果osplittag为一个正则表达式,那么系统会自动装配一个基于正则表达式的拆分模块的实例,然后利用正则表达式对字段内容进行匹配和切割,最终将结果存入multimap当中。数据融合模块包括了数据内容拼接融合模块、基于正则规则的数据融合模块、基于特征匹配的数据融合模块。首先系统装配这个数据处理模块并且把需要加工的数据发送给该数据融合模块,具体装配的信息有多个需要加工的字段名称pname和ptype资源和content变换规则信息,然后数据融合模块接收到该信息,根据content内容进行加工,如果content内容为$pnamel+$pname2…+$pnamen,那么只是简单的内容叠加,那么处理模块会根据pname的顺序进行依次租住该字段的内容。如果 content 内容包括了 $pnamel_regrexmatch ()+$pname2_regrexmatch (),括号里面的内容为正则表达式,那么融合模块会启动一个正则匹配器,依次匹配pname中的内容并把符合条件的内容抽取出来在按照顺序进行内容方面的叠加。如果content内容仅仅是一些符号而没有$这样的标志时,那么意味着这些字段的内容将变成该字符,最后融合模块将处理好的字段内容与pnewname —起存入multimap当中。数据去重模块包括了按照字段去重和按照记录去重两种方式的数据处理模块。该模块接收已经处理好的数据资源模型(multimap)和具体的去重方案字段distinct,如果配置了 distinct = $pnewname的话,那么我们按照该字段去重,具体的做法是首先获得内置数据结构multimap当中pnewname的内容,然后利用set或者reduce方式判定数据是否重复,如果重复则multimap数据结构中删除该pnewname字段对应的value数组中重复的数据。如果distinct内容为all那么则按照记录去重,也就是说每个multimap进行比较,如果有两个multimap当中的数据完全一致,则去重。该模型返回的结果为一个去除重复后的multimap数据。数据执行流程控制模块包括了顺序执行流程控制模块、选择执行流程控制模块。这两个模块是整个加工系统processor执行逻辑的模块,分别代表着顺序执行流程控制器和选择执行流程控制器,他们都接收的是一个processor列表,这个列表里面的每一个processor都是上面数据一对一映射处理模块、数据多对一融合模块、数据一对多拆分模块、数据排序模块、数据去重模块中的一种。顺序执行流程控制模块按照列表顺序依次执行每一个processor,而选择执行流程控制器首先会执行列表中的第一个processor,如果第一个processor满足条件且执行成功,那么就退出,不会再执行列表后面列出的所有的processor,这是这两个模块的区另IJ。数据执行流程控制模块一旦执行完毕意味step当中的加工过程结束,此时返回的是一个加工好的数据。
[0029]5)本发明按照基于数据加工模型的数据加工语法规则形成了一套结构化的数据加工配置规范,本发明的规范指出每一个加工任务都被定义为一个工单,工单由加工任务job定义出来,且job中包含step处理步骤信息、quartz时间调度器信息、remaker工单修复信息这三个部分。quartz时间调度器信息包含time时间信息和tag调度标志信息。remaker工单修复需要配置的信息有修复时间和修复的策略信息、对于每一个step处理步骤信息需要配置数据源dataReader、processor处理器集合信息、dataffriter目标存储信息三个部分且每一个部分都有相应的规范。对于数据源获取信息dataReader,我们需要配置的信息有数据源地址、数据库名称、用户名、密码、查询语句、读取引擎类型、读取极限、读取偏差信息。对于dataWriter目标存储信息需要配置的信息有id生成器信息、数据存储地址信息、写入引擎类型信息。processor处理器集合信息需要配置的信息有preprocessor预处理信息和预处理引擎、postprocessor后处理引擎、processors处理器集合中所有的处理器名称及每一个处理器的执行顺序,即谁先执行谁后执行。每一个processor处理器需要配置的信息由三部分构成,第一个部分是抽取的资源构建的数据加工模型,它是需要处理的原本的数据加工模型,这里信息包括有需要处理的字段名称(pname)、字段类型(ptype);第二个部分是对原本的数据加工模型配置处理信息,这包括待处理字段的字段名称(pname)、具体的数据加工处理模块(processor)、判定该字段名称下是否所有资源都要处理的条件(ofilter),其中匹配规则一般为正则表达式或者用户指定一些特定内容,如果没有匹配规则的相应配置的话认为该字段的所有内容都将进行处理,以及该字段的内容是否需要拆分及拆分的相应标志osplitTag、该字段的内容是否需要融合,融合的标志或者规则(content),这里的规则一般都指的是正则表达式或者用户指定的标志信息。第三部分是处理后的数据加工模型内容配置,包括了处理后字段的名称、处理前后数据字段的映射关系、处理后的数据类型信息。这些方面的信息配置是根据加工的需要进行调整,不是每个字段在每次加工器配置时都是必须的。
[0030]6)发明要求在加工前加工人员需要根据数据加工需求配置数据加工处理模块以及数据加工资源并按照数据加工配置规范书写加工工单配置文件,完成后软件自动解析工单配置文件,然后系统内部会创建一个bean工厂实例,工厂实例会首先实例化一个验证器验证配置文件是否合法,验证的规则是根据数据加工语法规则进行判断,验证的内容包括了以下几个部分:1)需要加工的数据资源信息,包括了数据源地址是否正确,能否访问,需要加工的数据资源是否存在,每一个字段名称是否正确,数据类型是否配置正确。2)加工后的数据资源验证,主要是包括了前后数据资源的对应关系是否有误,比如说填写时由于疏忽等原因,导致了需要加工的数据资源名称写错了,这个数据资源名称根本不存在于加工前的数据资源中,那么此时就为验证有误。3)数据加工处理模块的验证,这个部分包括了验证step配置信息中所有的processor内容,这里面processor在设计时是一个集合,这个集合包括了若干个具体的processor,因此在验证时需要验证以下两个方面:1)processor名称是否正确,具体的说就是processor集合当中每一个processor名称和配置每一个processor具体信息时配置的processor名称一定得是对应的;2) processor类型,那么这时候我们要验证processor类型是否属于系统内置的processor模块,换而言之就是processor类型信息是否正确。系统创建的bean工厂实例会逐一验证这些信息,首先验证需要加工的数据资源信息,系统会根据工单配置文件里面的数据访问地址启动数据读取模块,获取带加工数据资源,判定数据是否能够获取并且随机抽样若干数据,判定数据类型是否与配置信息一致。然后获取processor列表的每一个processor名称,根据这个名称查找配置文件当中是否有这个processor的配置信息,如果有就说明名称对应,配置正确,如果没有说明配置错误。最后获取配置文件当中加工后的数据资源和加工前的数据资源对应关系,需要获取配置文件中每一个processor的pname和pnewName,判定pname是否是待处理的数据中的字段,判定pnewName是否是设定处理后的数据字段,如果是那么验证通过,否则验证失败,上述条件都满足后验证合格
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1