CN105354239A - 一种基于配置数据加工模型的加工中心数据流式处理方法 - Google Patents
一种基于配置数据加工模型的加工中心数据流式处理方法 Download PDFInfo
- Publication number
- CN105354239A CN105354239A CN201510653943.9A CN201510653943A CN105354239A CN 105354239 A CN105354239 A CN 105354239A CN 201510653943 A CN201510653943 A CN 201510653943A CN 105354239 A CN105354239 A CN 105354239A
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- information
- field
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于配置数据加工模型的加工中心数据流式处理方法。本方法为:1)对待加工数据源创建一数据加工模型:包括加工前数据的字段及类型、加工后数据的字段名称及类型,以及加工前、后数据字段之间的对应关系;2)设置一数据加工语法规则,包括设置每一数据源要提取的加工字段信息;每一要加工字段的字段名称和相应的字段类型,以及处理该加工字段的数据加工处理模块和处理时所用的匹配规则;每一个加工字段加工后的名称和数据类型;3)根据数据加工任务和该数据加工语法规则,生成一工单配置文件;4)根据该工单配置文件创建一工厂实例,按照加工工单内容顺序组织和执行实例内容。本发明提高了大数据处理速度和灵活性别。
Description
技术领域
本发明涉及一种基于配置数据加工模型的加工中心的数据流式处理方法,属于计算机软件技术领域。
背景技术
常规数据处理系统需要经过数据搜集、整理、分析等多个步骤,包括数据获取——数据下载——数据筛选甄别——数据整理——数据加工。而数据加工根据业务的需要经常形成一些固定模式的加工系统,一旦有新的需求,数据加工系统的扩展能力和灵活性较差,当其面对海量数据时往往在此消耗巨大的时间和精力。
传统的数据处理中心,数据处理步骤过程中数据落地,数据处理如排序、剔重、过滤等等功能固化,增加特性化数据处理难,功能可扩展性差,数据处理流向无法灵活控制。目前许多的大数据应用平台不能够灵活的配置各种数据源之间的互通,只能单一的从一种数据源同步到另外一种数据源。同时大多数的大数据应用平台不能够支持流式处理,即在一个数据加工治理流程中需要多次的对数据进行读写,这样不仅使得机器的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=”01510153?2015”表示2015年3月15日10点15分,remarker_tag=”retry”。然后配置step信息,step_name=”step1”propertyname="dataReader"ref="datareader",propertyname="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管理池会显示工单号执行成功,结束任务。整个数据加工完毕。
Claims (9)
1.一种基于配置数据加工模型的加工中心数据流式处理方法,其步骤为:
1)对待加工数据源创建一数据加工模型:包括加工前数据的字段及类型、加工后数据的字段名称及类型,以及加工前数据字段与加工后数据字段之间的对应关系;
2)根据该数据加工模型设置一数据加工语法规则,包括设置每一数据源要提取的加工字段信息;每一要加工字段的字段名称和相应的字段类型,以及处理该加工字段的数据加工处理模块和处理时所用的匹配规则;每一个加工字段加工后的名称和数据类型;
3)根据数据加工任务和该数据加工语法规则,生成一工单配置文件;其中,加工任务的信息包括:处理步骤信息、时间调度器信息和工单修复信息;
4)加工系统根据该工单配置文件创建一工厂实例,然后该工厂实例根据该数据加工语法规则验证该配置文件是否合法,验证通过后该工厂实例将该配置文件内容写入到加工工单中,生成一加工工单文件,然后根据该加工工单文件中处理步骤的个数、名称和顺序创建一配置信息组配实例;
5)该工厂实例创建一个流水化作业实例,用于按照加工工单内容顺序组织和执行该配置信息组配实例中的实例内容。
2.如权利要求1所述的方法,其特征在于,所述工厂实例将该配置文件内容依照加工任务、处理步骤信息、数据源、处理器集合、处理器、目标存储信息的顺序写入到加工工单中,生成该加工工单文件;根据该加工工单文件中处理步骤的个数、名称和顺序创建一配置信息组配实例,包括:处理步骤实例、数据源实例、目标存储实例、处理器实例、规则实例。
3.如权利要求1或2所述的方法,其特征在于,所述处理步骤信息包括数据源配置信息、处理器集合信息、目标存储信息;其中,数据源配置信息包括:数据源地址、数据库名称、用户名、密码、查询语句、读取引擎类型、读取极限、读取偏差信息;目标存储信息包括id生成器信息、数据存储地址信息、写入引擎类型信息;处理器集合信息包括预处理信息、预处理引擎、后处理引擎、处理器集合中所有的处理器名称及每一处理器的执行顺序。
4.如权利要求3所述的方法,其特征在于,每一处理器需要配置的信息包括:1)加工前数据需要处理的字段名称及类型;2)每一需要处理字段的数据加工处理模块、判定该字段名称下是否所有资源都要处理的条件,以及该字段的内容是否需要拆分及拆分的相应标志、字段的内容是否需要融合及融合的标志或者规则;3)加工后数据的字段名称和类型、加工前数据字段与加工后数据字段之间的对应关系。
5.如权利要求1或2所述的方法,其特征在于,所述时间调度器信息包含时间信息和调度标志信息;所述工单修复信息包括修复时间和修复策略。
6.如权利要求1或2所述的方法,其特征在于,所述数据加工处理模块包括:数据一对一映射处理模块、数据多对一融合模块、数据一对多拆分模块、数据排序模块、数据去重模块、数据处理执行流程控制模块。
7.如权利要求6所述的方法,其特征在于,所述数据一对一映射处理模块包括内容规则变换模块、字段名称变换模块、字段部分内容删除模块,数据一对多拆分模块包括基于设定标示符的拆分模块、基于正则表达式的拆分模块、基于特征匹配的拆分模块,数据融合模块包括数据内容拼接融合模块、基于正则规则的数据融合模块、基于特征匹配的数据融合模块,数据去重模块按照字段进行数据去重或按照记录进行数据去重,数据排序模块包括按照列升序排序、降序排序模块和按照多列升序降序排序模块,数据执行流程控制模块包括顺序执行流程控制模块、选择执行流程控制模块。
8.如权利要求7所述的方法,其特征在于,所述匹配规则包括正则规则或者模式匹配规则。
9.如权利要求1所述的方法,其特征在于,所述加工工单文件创建好后,加工系统启动一时间调度器,该时间调度器通过该加工任务的时间调度器调度该加工任务启动的时间,启动该加工任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510653943.9A CN105354239B (zh) | 2015-10-10 | 2015-10-10 | 一种基于配置数据加工模型的加工中心数据流式处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510653943.9A CN105354239B (zh) | 2015-10-10 | 2015-10-10 | 一种基于配置数据加工模型的加工中心数据流式处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105354239A true CN105354239A (zh) | 2016-02-24 |
CN105354239B CN105354239B (zh) | 2019-04-30 |
Family
ID=55330212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510653943.9A Active CN105354239B (zh) | 2015-10-10 | 2015-10-10 | 一种基于配置数据加工模型的加工中心数据流式处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354239B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020158A (zh) * | 2016-07-20 | 2016-10-12 | 上海交通大学 | 一种项目型产品加工工艺大数据支持系统 |
CN106547915A (zh) * | 2016-11-29 | 2017-03-29 | 上海轻维软件有限公司 | 基于模型库的智能数据提取方法 |
CN108512902A (zh) * | 2018-02-24 | 2018-09-07 | 国家计算机网络与信息安全管理中心 | 一种数据共享方法和装置 |
CN108733691A (zh) * | 2017-04-18 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 数据预处理方法和装置 |
CN109376152A (zh) * | 2018-09-13 | 2019-02-22 | 广州帷策智能科技有限公司 | 大数据系统文件数据准备方法和系统 |
CN109597795A (zh) * | 2018-12-06 | 2019-04-09 | 南京天辰礼达电子科技有限公司 | 一种路基压实施工数据高效处理系统 |
CN109710676A (zh) * | 2018-12-26 | 2019-05-03 | 新华三技术有限公司 | Cmdb模型的数据获取方法、装置及电子设备 |
CN110471888A (zh) * | 2018-05-09 | 2019-11-19 | 株式会社日立制作所 | 一种自动收集数据的方法、装置、介质、设备及系统 |
CN111062682A (zh) * | 2019-11-19 | 2020-04-24 | 泰康保险集团股份有限公司 | 一种工单处理方法和装置 |
CN111124548A (zh) * | 2019-12-31 | 2020-05-08 | 科大国创软件股份有限公司 | 一种基于yaml文件的规则解析方法及系统 |
CN111240742A (zh) * | 2018-11-29 | 2020-06-05 | 株式会社日立制作所 | 性能数据管理装置 |
CN111651507A (zh) * | 2020-04-16 | 2020-09-11 | 杭州半云科技有限公司 | 一种大数据加工方法及系统 |
CN111723177A (zh) * | 2020-05-06 | 2020-09-29 | 第四范式(北京)技术有限公司 | 信息提取模型的建模方法、装置及电子设备 |
CN111813769A (zh) * | 2020-07-16 | 2020-10-23 | 杭州数梦工场科技有限公司 | 数据加工方法与装置 |
CN112181943A (zh) * | 2020-09-24 | 2021-01-05 | 建信金融科技有限责任公司 | 特征数据的采集方法、装置、电子设备及可读存储介质 |
CN112947944A (zh) * | 2019-12-11 | 2021-06-11 | 中盈优创资讯科技有限公司 | 业务工单处理方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462616A (zh) * | 2013-09-18 | 2015-03-25 | 上海宝信软件股份有限公司 | 基于配置项的动态数据采集方法 |
-
2015
- 2015-10-10 CN CN201510653943.9A patent/CN105354239B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462616A (zh) * | 2013-09-18 | 2015-03-25 | 上海宝信软件股份有限公司 | 基于配置项的动态数据采集方法 |
Non-Patent Citations (3)
Title |
---|
周杨等: ""基于宗地层次的合肥市产业用地集约利用评价"", 《中国人口·资源与环境》 * |
王宇光: ""基于数据模板的空间科学数据加工模型的设计与实现"", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
陈智等: ""基于OpenFlow的移动切换框架研究"", 《计算机应用研究》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020158A (zh) * | 2016-07-20 | 2016-10-12 | 上海交通大学 | 一种项目型产品加工工艺大数据支持系统 |
CN106547915A (zh) * | 2016-11-29 | 2017-03-29 | 上海轻维软件有限公司 | 基于模型库的智能数据提取方法 |
CN106547915B (zh) * | 2016-11-29 | 2019-10-29 | 上海轻维软件有限公司 | 基于模型库的智能数据提取方法 |
CN108733691A (zh) * | 2017-04-18 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 数据预处理方法和装置 |
CN108512902A (zh) * | 2018-02-24 | 2018-09-07 | 国家计算机网络与信息安全管理中心 | 一种数据共享方法和装置 |
CN110471888A (zh) * | 2018-05-09 | 2019-11-19 | 株式会社日立制作所 | 一种自动收集数据的方法、装置、介质、设备及系统 |
CN109376152A (zh) * | 2018-09-13 | 2019-02-22 | 广州帷策智能科技有限公司 | 大数据系统文件数据准备方法和系统 |
CN111240742A (zh) * | 2018-11-29 | 2020-06-05 | 株式会社日立制作所 | 性能数据管理装置 |
CN109597795A (zh) * | 2018-12-06 | 2019-04-09 | 南京天辰礼达电子科技有限公司 | 一种路基压实施工数据高效处理系统 |
CN109597795B (zh) * | 2018-12-06 | 2020-10-16 | 南京天辰礼达电子科技有限公司 | 一种路基压实施工数据高效处理系统 |
WO2020114155A1 (zh) * | 2018-12-06 | 2020-06-11 | 南京天辰礼达电子科技有限公司 | 一种路基压实施工数据高效处理系统 |
CN109710676A (zh) * | 2018-12-26 | 2019-05-03 | 新华三技术有限公司 | Cmdb模型的数据获取方法、装置及电子设备 |
CN109710676B (zh) * | 2018-12-26 | 2021-07-06 | 新华三技术有限公司 | Cmdb模型的数据获取方法、装置及电子设备 |
CN111062682A (zh) * | 2019-11-19 | 2020-04-24 | 泰康保险集团股份有限公司 | 一种工单处理方法和装置 |
CN111062682B (zh) * | 2019-11-19 | 2023-11-07 | 泰康保险集团股份有限公司 | 一种工单处理方法和装置 |
CN112947944A (zh) * | 2019-12-11 | 2021-06-11 | 中盈优创资讯科技有限公司 | 业务工单处理方法及装置 |
CN112947944B (zh) * | 2019-12-11 | 2023-12-05 | 中盈优创资讯科技有限公司 | 业务工单处理方法及装置 |
CN111124548A (zh) * | 2019-12-31 | 2020-05-08 | 科大国创软件股份有限公司 | 一种基于yaml文件的规则解析方法及系统 |
CN111124548B (zh) * | 2019-12-31 | 2023-10-27 | 科大国创软件股份有限公司 | 一种基于yaml文件的规则解析方法及系统 |
CN111651507B (zh) * | 2020-04-16 | 2023-10-10 | 杭州半云科技有限公司 | 一种大数据加工方法及系统 |
CN111651507A (zh) * | 2020-04-16 | 2020-09-11 | 杭州半云科技有限公司 | 一种大数据加工方法及系统 |
CN111723177A (zh) * | 2020-05-06 | 2020-09-29 | 第四范式(北京)技术有限公司 | 信息提取模型的建模方法、装置及电子设备 |
CN111723177B (zh) * | 2020-05-06 | 2023-09-15 | 北京数据项素智能科技有限公司 | 信息提取模型的建模方法、装置及电子设备 |
CN111813769A (zh) * | 2020-07-16 | 2020-10-23 | 杭州数梦工场科技有限公司 | 数据加工方法与装置 |
CN111813769B (zh) * | 2020-07-16 | 2023-12-12 | 杭州数梦工场科技有限公司 | 数据加工方法与装置 |
CN112181943A (zh) * | 2020-09-24 | 2021-01-05 | 建信金融科技有限责任公司 | 特征数据的采集方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105354239B (zh) | 2019-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354239A (zh) | 一种基于配置数据加工模型的加工中心数据流式处理方法 | |
CN107958057B (zh) | 一种用于异构数据库中数据迁移的代码生成方法及装置 | |
CN104133772B (zh) | 一种自动生成测试数据的方法 | |
CN102236672B (zh) | 一种数据导入方法及装置 | |
US20110264636A1 (en) | Updating a data warehouse schema based on changes in an observation model | |
CN110287097A (zh) | 批量测试方法、装置及计算机可读存储介质 | |
CN107741903A (zh) | 应用程序兼容性测试方法、装置、计算机设备和存储介质 | |
CN106844190A (zh) | 测试脚本自动生成方法及装置 | |
CN112148788A (zh) | 异构数据源的数据同步方法及系统 | |
CN106354817B (zh) | 一种日志的处理方法及装置 | |
CN103473076A (zh) | 一种代码版本的发布方法及系统 | |
KR101419708B1 (ko) | 업무표준화 작업 방법 및 시스템 | |
CN103077192A (zh) | 一种数据处理方法及其系统 | |
CN107515922A (zh) | 一种数据管理方法及系统 | |
CN108427709A (zh) | 一种多源海量数据处理系统及方法 | |
CN112765014B (zh) | 一种用于多用户同时操作的自动测试系统及工作方法 | |
CN107766519B (zh) | 一种可视化配置数据结构的方法 | |
US20090024424A1 (en) | System and method for dynamic linking of business processes | |
CN113537943A (zh) | 一种通用工作流引擎及其构建方法 | |
CN103186384A (zh) | 一种面向业务组件的软件设计分析系统及其使用方法 | |
CN107368423A (zh) | 接口自动化配置系统及在其中进行的自动化脚本处理方法 | |
CN114443025B (zh) | 用于数据治理平台的模块化etl任务处理系统和etl任务处理方法 | |
CN117236304A (zh) | 一种基于模板配置的Excel通用导入的实现方法 | |
Rhein et al. | A Holistic Approach to Model-Based Avionics Systems Development | |
CN111881323B (zh) | 基于排序字段与时间路由的表分离方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |