首页> 中国专利> 一种基于配置数据加工模型的加工中心数据流式处理方法

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

摘要

本发明公开了一种基于配置数据加工模型的加工中心数据流式处理方法。本方法为:1)对待加工数据源创建一数据加工模型:包括加工前数据的字段及类型、加工后数据的字段名称及类型,以及加工前、后数据字段之间的对应关系;2)设置一数据加工语法规则,包括设置每一数据源要提取的加工字段信息;每一要加工字段的字段名称和相应的字段类型,以及处理该加工字段的数据加工处理模块和处理时所用的匹配规则;每一个加工字段加工后的名称和数据类型;3)根据数据加工任务和该数据加工语法规则,生成一工单配置文件;4)根据该工单配置文件创建一工厂实例,按照加工工单内容顺序组织和执行实例内容。本发明提高了大数据处理速度和灵活性别。

著录项

  • 公开/公告号CN105354239A

    专利类型发明专利

  • 公开/公告日2016-02-24

    原文格式PDF

  • 申请/专利权人 中国科学院计算机网络信息中心;

    申请/专利号CN201510653943.9

  • 申请日2015-10-10

  • 分类号G06F17/30(20060101);

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人司立彬

  • 地址 100190 北京市海淀区中关村南四街4号1号楼

  • 入库时间 2023-12-18 14:21:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-30

    授权

    授权

  • 2016-03-23

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20151010

    实质审查的生效

  • 2016-02-24

    公开

    公开

说明书

技术领域

本发明涉及一种基于配置数据加工模型的加工中心的数据流式处理方法,属于计算机软 件技术领域。

背景技术

常规数据处理系统需要经过数据搜集、整理、分析等多个步骤,包括数据获取——数据 下载——数据筛选甄别——数据整理——数据加工。而数据加工根据业务的需要经常形成一 些固定模式的加工系统,一旦有新的需求,数据加工系统的扩展能力和灵活性较差,当其面 对海量数据时往往在此消耗巨大的时间和精力。

传统的数据处理中心,数据处理步骤过程中数据落地,数据处理如排序、剔重、过滤等 等功能固化,增加特性化数据处理难,功能可扩展性差,数据处理流向无法灵活控制。目前 许多的大数据应用平台不能够灵活的配置各种数据源之间的互通,只能单一的从一种数据源 同步到另外一种数据源。同时大多数的大数据应用平台不能够支持流式处理,即在一个数据 加工治理流程中需要多次的对数据进行读写,这样不仅使得机器的IO负载过高,而且整个 数据加工和治理的速度将大打折扣,在很多时候都不能满足数据的及时性要求。也有一些大 数据应用平台不能够支持很多种数据的加工方法,也不能够灵活的配置加工方法,只能够单 一的满足一些业务要求。

本发明的特点是建设面向各学科领域的数据分析与应用平台,整合所有共享数据资源、 集成构建分析环境,实现数据加工配置真正实现一套加工系统满足多级业务化需求。

发明内容

本发明采取的技术手段具体为:一种基于配置数据加工模型的加工中心的数据流式处理 方法,所述数据加工中心中预定义有包括数据校验、加工结果排序、加工结果去重、加工资 源融合和加工资源拆分和加工资源内容变换等多种加工方法,以及多个不同加工方法步骤之 间的连接关系;数据加工中心还设置有用于连接数据源的数据源接入端口、数据加工模型接 入端口、目标数据输出端口以及用于连接流程监控单元的加工流程监控接口。

本发明的技术方案为:

一种基于配置数据加工模型的加工中心数据流式处理方法,其步骤为:

1)对待加工数据源创建一数据加工模型:包括加工前数据的字段及类型、加工后数据的 字段名称及类型,以及加工前数据字段与加工后数据字段之间的对应关系;

2)根据该数据加工模型设置一数据加工语法规则,包括设置每一数据源要提取的加工字 段信息;每一要加工字段的字段名称和相应的字段类型,以及处理该加工字段的数据 加工处理模块和处理时所用的匹配规则;每一个加工字段加工后的名称和数据类型;

3)根据数据加工任务和该数据加工语法规则,生成一工单配置文件;其中,加工任务的 信息包括:处理步骤信息、时间调度器信息和工单修复信息;

4)加工系统根据该工单配置文件创建一工厂实例,然后该工厂实例根据该数据加工语法 规则验证该配置文件是否合法,验证通过后该工厂实例将该配置文件内容写入到加工 工单中,生成一加工工单文件,然后根据该加工工单文件中处理步骤的个数、名称和 顺序创建一配置信息组配实例;

5)该工厂实例创建一个流水化作业实例,用于按照加工工单内容顺序组织和执行该配置 信息组配实例中的实例内容。

进一步的,所述工厂实例将该配置文件内容依照加工任务、处理步骤信息、数据源、处 理器集合、处理器、目标存储信息的顺序写入到加工工单中,生成该加工工单文件;根据该 加工工单文件中处理步骤的个数、名称和顺序创建一配置信息组配实例,包括:处理步骤实 例、数据源实例、目标存储实例、处理器实例、规则实例。

进一步的,所述处理步骤信息包括数据源配置信息、处理器集合信息、目标存储信息; 其中,数据源配置信息包括:数据源地址、数据库名称、用户名、密码、查询语句、读取引 擎类型、读取极限、读取偏差信息;目标存储信息包括id生成器信息、数据存储地址信息、 写入引擎类型信息;处理器集合信息包括预处理信息、预处理引擎、后处理引擎、处理器集 合中所有的处理器名称及每一处理器的执行顺序。

进一步的,每一处理器需要配置的信息包括:1)加工前数据需要处理的字段名称及类型; 2)每一需要处理字段的数据加工处理模块、判定该字段名称下是否所有资源都要处理的条件, 以及该字段的内容是否需要拆分及拆分的相应标志、字段的内容是否需要融合及融合的标志 或者规则;3)加工后数据的字段名称和类型、加工前数据字段与加工后数据字段之间的对应 关系。

进一步的,所述时间调度器信息包含时间信息和调度标志信息;所述工单修复信息包括 修复时间和修复策略。

进一步的,所述数据加工处理模块包括:数据一对一映射处理模块、数据多对一融合模 块、数据一对多拆分模块、数据排序模块、数据去重模块、数据处理执行流程控制模块。

进一步的,所述数据一对一映射处理模块包括内容规则变换模块、字段名称变换模块、 字段部分内容删除模块,数据一对多拆分模块包括基于设定标示符的拆分模块、基于正则表 达式的拆分模块、基于特征匹配的拆分模块,数据融合模块包括数据内容拼接融合模块、基 于正则规则的数据融合模块、基于特征匹配的数据融合模块,数据去重模块按照字段进行数 据去重或按照记录进行数据去重,数据排序模块包括按照列升序排序、降序排序模块和按照 多列升序降序排序模块,数据执行流程控制模块包括顺序执行流程控制模块、选择执行流程 控制模块。

进一步的,所述匹配规则包括正则规则或者模式匹配规则。

进一步的,所述加工工单文件创建好后,加工系统启动一时间调度器,该时间调度器通 过该加工任务的时间调度器调度该加工任务启动的时间,启动该加工任务。

与现有技术相比,本发明的积极效果为:

本发明通过利用大数据平台采用基于配置加工数据模型的数据流式处理方式,提高大数 据处理速度和灵活性别,扩大可支持的数据加工方法种类范围,同时在大数据处理过程中能 够利用本发明中独特的配置方式,灵活的配置异构数据资源和数据加工方式,从而完成数据 加工任务。

附图说明

图1为本发明的方法流程图。

具体实施方式

下面结合附图对本发明进行进一步详细描述。本发明基于配置语言的数据加工中心的数 据流式处理方法包括以下步骤:

1)配置数据获取:通过数据源接入端口获取数据源;数据源接入端口连接的数据源类 型包括传统oracle、db2、mysql关系型数据库,Mongodb新型的非关系型数据库以及一些支 持rdf数据格式的图形数据库;

2)数据加工模型及相应的配置:整体来说加工过程就是一个提取数据并且根据加工需求 改变数据,生成业务需要的数据的过程。那么这里的数据加工模型就是描述了需要加工的数据 资源和加工后的数据资源以及他们之间的对应关系。数据加工模型包括的内容有加工前数据 的字段名称、数据字段的类型,加工后数据字段的名称和字段的类型以及加工前后数据字段 之间的对应关系。

3)数据加工语法规则根据前文提到的数据加工模型的设计,将加工语法规则与数据加 工模型融为一体,具体的加工语法规则如下,1.加工语法要描述提取哪个数据源当中的具体 的加工字段信息。2.每一个需要加工的字段名称和相应的字段类型以及为每一个加工字段按 照业务需求配置下文当中提出的数据加工处理模块当中的具体处理模块的名称以及一些数据 处理时需要匹配的关键规则,例如正则规则或者模式匹配的规则。3.每一个加工字段加工后 的名称和数据类型。其中数据加工模型的语法规则包括了抽取数据后数据的组织方式和数据 的结构、每个字段处理模块集合,处理后字段的名称和字段的类型。

4)数据加工处理模块:本次发明根据常规的数据处理业务将加工系统的数据处理模块分 成了六大类别:数据一对一映射处理模块、数据多对一融合模块、数据一对多拆分模块、数 据排序模块、数据去重模块、数据处理执行流程控制模块。数据一对一映射处理模块包括了 内容规则变换模块、字段名称变换模块、字段部分内容删除模块等等细分模块,该数据一对 一映射处理模块接收由系统发送给他的需处理的数据和匹配规则rule、加工规则match、过 滤条件,该模块装配需要加工匹配规则当中的字段名称pname、资源过滤的条件ofilter、需 要删除的部分内容otrim、加工的数据类型ptype、加工后的字段名称pnewname、加工后的 字段类型pnewtype等字段的信息,该数据一对一映射处理模块会根据配置的字段和具体的值 进行判定是哪个细分模块进行处理,如果只配置了pname和pnewname,那么系统会自动生成 一个一对一模块当中的字段名称变换模块的实例,这个实例将原来的字段名称转变成 pnewname要求的字段名称,其他的内容均不改变,生成的新数据缓存到数据加工模型 multimap的数据结构中。如果配置了otrim字段,那么系统会实例化一个字段部分内容删除 模块将otrim字段里面指定的内容都删除掉再将处理好的数据缓存到multimap当中。数据一 对多拆分模块包括了基于设定标示符的拆分模块、基于正则表达式的拆分模块、基于特征匹 配的拆分模块。数据拆分模块步骤与一对一加工模块类似,也是接收由系统发送给他的需处 理的数据和匹配规则rule、加工规则match、过滤条件,只是在装配时多了一个osplittag 字段,系统会根据配置的字段和具体的值进行判定是哪个拆分模块进行处理,例如如果系统 配置osplittag字段的内容为一个逗号(,)那么系统会实例化一个基于设定标示符的拆分模 块,然后通过pname获取这个数据处理模块具体处理的是数据中哪个字段,得到该模型的内 容并且以逗号为标志分割该字段的内容,完成后数据内容为多个值,此时系统根据pnewname 字段改变该内容的字段名称,然后以key---value数组的形式存储在multimap当中。如果 osplittag为一个正则表达式,那么系统会自动装配一个基于正则表达式的拆分模块的实例, 然后利用正则表达式对字段内容进行匹配和切割,最终将结果存入multimap当中。数据融合 模块包括了数据内容拼接融合模块、基于正则规则的数据融合模块、基于特征匹配的数据融 合模块。首先系统装配这个数据处理模块并且把需要加工的数据发送给该数据融合模块,具 体装配的信息有多个需要加工的字段名称pname和ptype资源和content变换规则信息,然 后数据融合模块接收到该信息,根据content内容进行加工,如果content内容为 $pname1+$pname2…+$pnamen,那么只是简单的内容叠加,那么处理模块会根据pname的顺序 进行依次租住该字段的内容。如果content内容包括了 $pname1-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, 这是这两个模块的区别。数据执行流程控制模块一旦执行完毕意味step当中的加工过程结 束,此时返回的是一个加工好的数据。

5)本发明按照基于数据加工模型的数据加工语法规则形成了一套结构化的数据加工配 置规范,本发明的规范指出每一个加工任务都被定义为一个工单,工单由加工任务job定义 出来,且job中包含step处理步骤信息、quartz时间调度器信息、remaker工单修复信息这 三个部分。quartz时间调度器信息包含time时间信息和tag调度标志信息。remaker工单修 复需要配置的信息有修复时间和修复的策略信息、对于每一个step处理步骤信息需要配置数 据源dataReader、processor处理器集合信息、dataWriter目标存储信息三个部分且每一个 部分都有相应的规范。对于数据源获取信息dataReader,我们需要配置的信息有数据源地址、 数据库名称、用户名、密码、查询语句、读取引擎类型、读取极限、读取偏差信息。对于 dataWriter目标存储信息需要配置的信息有id生成器信息、数据存储地址信息、写入引擎 类型信息。processor处理器集合信息需要配置的信息有preProcessor预处理信息和预处理 引擎、postProcessor后处理引擎、processors处理器集合中所有的处理器名称及每一个处 理器的执行顺序,即谁先执行谁后执行。每一个processor处理器需要配置的信息由三部分 构成,第一个部分是抽取的资源构建的数据加工模型,它是需要处理的原本的数据加工模型, 这里信息包括有需要处理的字段名称(pname)、字段类型(ptype);第二个部分是对原本的 数据加工模型配置处理信息,这包括待处理字段的字段名称(pname)、具体的数据加工处理 模块(processor)、判定该字段名称下是否所有资源都要处理的条件(ofilter),其中匹配 规则一般为正则表达式或者用户指定一些特定内容,如果没有匹配规则的相应配置的话认为 该字段的所有内容都将进行处理,以及该字段的内容是否需要拆分及拆分的相应标志 osplitTag、该字段的内容是否需要融合,融合的标志或者规则(content),这里的规则一般 都指的是正则表达式或者用户指定的标志信息。第三部分是处理后的数据加工模型内容配置, 包括了处理后字段的名称、处理前后数据字段的映射关系、处理后的数据类型信息。这些方 面的信息配置是根据加工的需要进行调整,不是每个字段在每次加工器配置时都是必须的。

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是否是设 定处理后的数据字段,如果是那么验证通过,否则验证失败,上述条件都满足后验证合格, 验证合格之后返回一个验证通过通知给工厂,而后工厂建一个配置信息组配实例,依次将配 置文件内容依照加工任务job-处理步骤信息step-数据源datareader-处理器集合 processors-处理器processor-目标存储信息datawriter的顺序依次写入到工单当中,从而 形成一个完整的加工工单文件,整个加工系统如图1所示。工单文件创建好后系统会启动一 个时间调度器,这个调度器通过工单任务器上的quartz调度任务启动的时间,启动加工任务。 加工任务启动后系统创建一个工厂实例,工厂实例读取加工工单内容首先创建job实例然后 依据工单step的个数、名称和顺序依次创建所有的step实例、同理创建datareader实例、 datawriter实例、processor实例、rule实例当所有的实例创建完成后将通知工厂实例所有 实例创建完毕,然后工厂实例接收到该内容进一步创建一个流水化作业实例,这个实例负责 按照加工工单内容顺序组织所有的实例内容,其组织的顺序例如: job-step1-reader1-processorA-ruleA-processorB-ruleB...writer2-step2…。流水化实例 创建完毕后会通知工厂实例,工厂实例接收到命令后将启动流水化实例,流水化实例控制整 个job执行流程并且按照之前定义的顺序先启动job实例并将job实例注册到job管理池中 然后启动第一个step实例,开启reader实例,这个读取实例读取加工数据资源获得数据加 工模型,读取实例完成读取任务后通知流水化实例已完成任务,流水化实例启动第一个处理 实例processorA和规则实例ruleA,并且把ruleA注入到processorA中,此时processorA 已通过ruleA实例的pname字段明确需要加工的数据资源名称并且从待处理数据中取出该数 据然后通过ruleA当中定义的ofilter内容对资源进行进一步过滤,明确需要处理的数据内 容后,通过ruleA的otrim字段、content字段、osplittag字段明确加工过程的规则,例如 otrim字段内容删除的规则,content字段表示数据内容拼接规则、osplittag字段填写的是 数据拆分的规则,processorA实例接收了这些规则后自动判断加工模块类型并实例化相应的 模块,例如有osplittag字段,processorA模块会先检查该字段是否含有正则表达式,如果 含有正则表达式,那么processorA会自动实例化一个基于正则表达式的一对多拆分模块(这 个在前文4)中有描述),该模块处理好该字段后将数据缓存在了系统内置的multimap结构 中,并且完成processorA的操作,完成后通知流水化实例启动下一个processorB和ruleB 顺序与proccessorA是一致的这里不再累述。待所有的processor完成后系统内置的multimap 存入的就是加工后的数据了,此时流水化实例会启动writer实例,通过writer实例已经具 有了数据库地址信息,insert脚本片断和存储的数据字段名称和字段类型,writer实例会自 动将multimap中的字段内容注入到insert脚本片断当中,然后执行insert脚本片断将数据 持久化到数据库当中,完成writer实例工作的同时也结束了第一个step实例的工作,其他 step实例与上述执行方式相同,当完成了上述所有的step实例之后,整个job执行任务成 功,流水化实例会告知job管理池,该工作完成,状态更新为已成功。如果在整个流水化实 例执行的过程中有任何一个环节出错,那么系统在job管理池中记录下来任务出错,并且记 录是哪个环节出了错误(比如读取数据失败,那么此时他会记录step1datareaderfailed, datareader语句数据库地址信息报错原因),并且job管理池会启动一个remarker错误 修复器,错误修复器根据用户在工单当中配置的修复器信息remarker字段和stradegy字段 明确错误修复策略,这里的错误修复策略包括了跳过、重新执行、断开两种方式,如果策略 的是重新执行,那么任务管理器会重新启动一个流水化实例重新执行整个流水化流程。如果 策略的是跳过,那么系统会忽略这个错误信息继续执行后续流程,如果策略是断开,那么整 个流水哈作业停止执行,job管理池会详细的记录下来环节停止了任务。后续加工人员可以 根据job管理池查看job执行情况,修复错误并且重新工单进行数据加工。

实施案例分析

首先从网站上获取了生物基因领域的数据,得到了一系列的数据文件,将数据存储在了 virtuso数据库当中并且数据的组织结构变成了rdf格式。

接下来读取数据并且构建需要处理的数据,本发明获取gene数据加工需求,根据与数据 服务人员了解需要加工的字段和数据加工任务具体需求读取数据资源构建数据加工模型。例 如我们需要处理的gene数据的内容有:geneId、taxonSource、symbol、description、 geneType、featureTagName、dbXrefTxt、locusId、locus_tag、seqMax、seqMin、locationTxt、 xKeggGene、remark。加工人员根据了解清楚业务需求并且根据数据加工语法规则填写加工配 置文件。首先配置job信息填写jobid="job-gene",stepref="step1",quartz="quartz" remarker=”remarker”,然后分别配置quartz信息和remarker信息,quartz_time=”0151015 3?2015”表示2015年3月15日10点15分,remarker_tag=”retry”。然后配置step信息, step_name=”step1”propertyname="dataReader"ref="datareader",property name="processor"ref="main-processors"propertyname="dataWriter"ref="datawriter" 加工人员需要根据系统显示的gene数据模型选择需要加工的这些字段的名称并且根据基于 数据加工模型的数据加工语法规则配置数据获取信息和建立信息。也就是需要配置 datareader信息,包括了配置数据源地址 datasource<-“jdbc:virtuoso://10.0.10.12:1111”、数据库名称dataBase<-material、用户 名信息user<-dba、密码信息password<-dba、查询语句信息selectClause、whereClause构 建需要加工的数据记录。

之后根据数据服务人员的需求分析结果,明确加工任务,结合数据加工语法规则配置数 据资源加工规则和加工模型。以上述需要处理的资源为例,对于geneId属性,加工处理时需 要该表geneId字段名称,其他内容不变,这个需求是一个一对一变换方式,只需更改属性名 称即可,那么我们的加工模型配置时首先增加一个加工处理模块名称geneId-processor、具 体的数据加工处理模块(processor=PropertyRenameProcessor)并且增加上数据加工的匹配 规则也就是rule规则,包括了加工处理的字段名称pname=geneId、加工后字段名称pnewName= rdfs:label、内容需要删除的信息otrim=””、otype=”String”上述geneId的加工方式和规 则是本次发明中最为简单的例子,那么下面几个例子会比较复杂,涉及到的业务要求会比较 多,以这样的例子给出发明可以加工的较为复杂的且能够容易让人理解的案例。

即使在数据一对一的处理上,也会有比geneId数据处理复杂的情况,例如文中的 dbXrefTxt数据,从需求分析上来看他需要将数据的内容进行判别,如果内容以complement 打头,那么数据内容将会变换成减号(-)、属性名称变成GCM:geneOrient,如果dbXrefTxt 字段的内容不是上述情况,那么数据内容将会变换成+且属性名称变成GCM:geneOrient。面 对这样的需求,我们发现数据不光内容发生了很大的变化属性名称的改变,我们还面对这有 条件执行过程加入,例如当我们遇到内容为complement,该变成什么样,当不是这种情况时 内容该变成什么样,因此面对这样的需求时我们需要加入流程控制模块(switch-processor)。 配置文件内容应当如下:processor_name=switch-processor指定他的处理模块 SwitchProcessor,然后里面定义了两个加工处理模块,每一个模块代表了一种情况。 processorsref=list[dbXrefTxt-plus-processor,dbXrefTxt-reduce-processor] dbXrefTxt-reduce-processor处理器都定义了他的名字dbXrefTxt-plus-processor_name=” dbXrefTxt-plus-processor”和具体的处理模块信息ref=”CombineProcessor”以及匹配规则 rule,rule中包含了字段名称pname=locationTxt、ofilter=(^(complement))(.*)和相应 的change规则pnewName=GCM:geneOrientcontent=”-”。dbXrefTxt-plus-processor处理 器都定义了他的名字和具体的处理模块信息以及匹配规则rule,rule中包含了字段名称 pname=locationTxt、ofilter=(^(?!complement))(.)*和相应的change规则 pnewName=GCM:geneOrientcontent=”+”从而完成了选择性处理的配置。

例如featureTagName、dbXrefTxt属性是两个过滤属性,那么需求方要求数据在 featureTagName属性为gene且dbXrefTxt属性为GeneID:打头时才将该条记录处理,否则 过滤掉。那么此时发明可以通过配置preProcessor并制定他的具体处理模块名称PreProcessor 和匹配正则条件condition1:((^(GeneID:))([a-zA-Z0-9,])*)condition2:^gene$以及 逻辑关系logical=&这样的配置信息,就可完成数据的过滤任务。

有时数据的处理任务需要多源数据融合且此时也许一次融合不能达到最终的目的又或者 说数据融合时需要判定条件进行融合,那么此时需要将数据融合任务分解且运用逻辑处理模 块当中的条件模块,需要将这个模块进行组合方能够完成加工处理的任务。但是每个模块的 定义都如上述的例子给出的那样,通过简单的加工处理模块的组合完成处理任务的配置。

配置完成每个处理模块信息后配置main-processors=list[geneId-processor, SwitchProcessor]将所有的处理模块串联起来,以供后续流水化实例能够组织processor的 执行顺序。

加工规则配置完毕,需要进一步配置加工后的数据资源存储信息,这当中包括了写入模 块名称datawriter、具体的写入模块类别DataWriterToFile、数据库的地址或者文件的地址 dataSource例如datasource<-“jdbc:virtuoso://10.0.10.12:1111”、写入语句 insert<-insert$tablenamevalues($geneId$geneOrient……)这样发明可以自动匹配数 据库的插入语句并且向数据库插入数据。上述的读取、处理、数据资源存储信息的配置信息 实际上是一个数据处理流程中的三个主要的环节,那么业务系统在配置时需要将这些环节整 合在一起并一个流程的方式进行管理,且一个数据处理系统可能会包含多次这样的迭代。完 成上述的配置之后调用加工工单执行脚本,系统创建一个工厂实例并且生成加工工单文件和 加工单号,系统的工厂实例创建整个加工过程需要的所有组件并且开启流水化实例执行整个 流程,最终将加工工单执行情况写入加工job管理池中,显示在管理池界面上,从而可以了 解整个加工执行情况,方便加工人员进行加工任务排查和监控,一旦加工完成job管理池会 显示工单号执行成功,结束任务。整个数据加工完毕。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号