数据集成系统中多类型数据处理的方法及装置
技术领域
本申请涉及计算机领域,尤其是涉及一种数据集成系统中多类型数据处理的方法及装置。
背景技术
数据集成系统,一般用于:数据采集、数据处理,以及数据输出。
其中,数据采集环节是将不同数据源的外部数据采集到数据集成系统内,例如:来自文件的外部数据、来自关系数据库的外部数据、来自消息队列的外部数据等。
数据处理环节是数据集成系统最核心也最复杂的部分,其用于将采集到的不同类型的外部数据进行预设的业务处理。
数据输出环节是在数据的业务处理完成后,使用数据输出通道提供的输出功能将处理结果输出到输出通道中,例如:写入文件,写入消息队列,写入数据库等。
一般地,在数据集成系统中,对于不同数据源的数据,其业务处理逻辑是类似的,其不同点仅在于不同数据源的数据是如何进入数据集成系统的,以及如何将不同数据源的数据处理结果输出到数据集成系统外部。
然而现有技术中,如果要增加或者改变数据采集环节的数据源和/或数据输出环节的输出通道,就必须对数据处理环节进行修改,这样会大大增加数据集成系统维护的复杂度和出错率。
发明内容
本申请的目的在于提供一种数据集成系统中多类型数据处理的方法及装置,,该方法和装置可在增加或改变数据采集环节的数据源和/或数据输出环节的输出通道时,毋须对数据处理环节进行相应修改,即可完成数据的业务处理。
为实现上述申请目的之一,本申请一实施方式提供了一种数据集成系统中多类型数据处理的方法,所述方法包括:
接收输入数据,调用读取接口,并根据所述输入数据的数据源确定处理所述输入数据的读取处理器,以读取所述输入数据;
对读取到的所述输入数据进行业务处理,获得数据处理结果;
调用写入接口,并根据数据处理结果的输出通道确定用于输出所述数据处理结果的输出处理器,以输出所述数据处理结果。
作为本申请一实施方式的进一步改进,所述方法还包括:
建构协议注册表,所述协议注册表中包括至少一个协议类型,以及与协议类型一一匹配的协议处理器。
作为本申请一实施方式的进一步改进,根据所述输入数据的数据源确定处理所述输入数据的处理器的步骤具体包括:
识别所述输入数据的数据源协议类型,并在预设的协议注册表中查询与所述数据源协议类型匹配的协议处理器,作为读取处理器。
作为本申请一实施方式的进一步改进,根据数据处理结果的输出通道确定用于输出所述数据处理结果的输出处理器的步骤具体包括:
识别数据处理结果的输出通道协议类型,并从协议注册表中查询与所述输出通道协议类型匹配的协议处理器,作为输出处理器。
作为本申请一实施方式的进一步改进,识别所述输入数据的数据源协议类型具体包括:通过输入数据的数据源的URI识别输入数据的数据源协议类型;
识别数据处理结果的输出通道协议类型具体包括:通过数据处理结果的输出通道的URI识别数据处理结果的输出通道协议类型。
作为本申请一实施方式的进一步改进,所述方法还包括:
当新增或改变输入数据的数据源和/或数据处理结果的输出通道时,适应性的更新所述协议注册表。
为实现上述申请目的之一,本申请一实施方式提供了一种数据集成系统中多类型数据处理的装置,所述装置包括:
接收模块,用于接收输入数据;
匹配模块,用于调用读取接口,并根据所述输入数据的数据源确定处理所述输入数据的读取处理器,以读取所述输入数据;
处理模块,用于对读取到的所述输入数据进行业务处理,获得数据处理结果;
所述匹配模块还用于调用写入接口,并根据数据处理结果的输出通道确定用于输出所述数据处理结果的输出处理器;
输出模块,用于输出所述数据处理结果。
作为本申请一实施方式的进一步改进,所述匹配模块还用于:
建构协议注册表,所述协议注册表中包括至少一个协议类型,以及与协议类型一一匹配的协议处理器。
作为本申请一实施方式的进一步改进,所述匹配模块用于:
识别所述输入数据的数据源协议类型,并在预设的协议注册表中查询与所述数据源协议类型匹配的协议处理器,作为读取处理器。
作为本申请一实施方式的进一步改进,所述匹配模块用于:
识别数据处理结果的输出通道协议类型,并从协议注册表中查询与所述输出通道协议类型匹配的协议处理器,作为输出处理器。
作为本申请一实施方式的进一步改进,所述匹配模块用于:
通过输入数据的数据源的URI识别输入数据的数据源协议类型;
通过数据处理结果的输出通道的URI识别数据处理结果的输出通道协议类型。
作为本申请一实施方式的进一步改进,所述匹配模块用于:
当新增或改变输入数据的数据源和/或数据处理结果的输出通道时,适应性的更新所述协议注册表。
相对于现有技术,本申请的数据集成系统中多类型数据处理的方法及装置可将不同的数据源和不同输出通道进行登记管理,以实现当数据采集环节的数据源和/或数据输出环节的输出通道改变时,数据处理环节无需做任何改变,仍能正常工作,大大减少了数据集成系统维护的复杂度,也提高了数据集成系统的扩展性和灵活性。
附图说明
图1是本申请一实施方式中数据集成系统中多类型数据处理的方法的流程图。
图2是本申请一实施方式中协议注册表的示例图。
图3是本申请一实施方式中数据集成系统中多类型数据处理的方法一具体示例的流程图。
图4是本申请一实施方式中数据集成系统中多类型数据处理的装置的模块图。
具体实施方式
以下将结合附图所示的具体实施方式对本申请进行详细描述。但这些实施方式并不限制本申请,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本申请的保护范围内。
如图1所示,在本申请一实施方式中,数据集成系统中多类型数据处理的方法包括:
S1、接收输入数据,调用读取接口,并根据所述输入数据的数据源确定处理所述输入数据的读取处理器,以读取所述输入数据;
S2、对读取到的所述输入数据进行业务处理,获得数据处理结果;
S3、调用写入接口,并根据数据处理结果的输出通道确定用于输出所述数据处理结果的输出处理器,以输出所述数据处理结果。
在本申请一实施方式中,所述方法还包括:
建构协议注册表,所述协议注册表中包括至少一个协议类型,以及与协议类型一一匹配的协议处理器。
参图2所示,在本申请一具体示例中,所述协议注册表包括协议类型、协议名称、协议处理器,以及描述信息。每一组协议类型、协议名称、协议处理器和描述信息之间存在唯一的对应关系。例如,协议类型为http,其对应的协议名称为http协议处理器,协议处理器为com.company.handler.http,描述信息为“支持类似格式:http://somebost/path? param1=value1¶m2=value2”;协议类型为db,其对应的协议名称为数据库协议处理器,协议处理器为com.company.handler.db,描述信息为“支持类似格式:db://server-name/table-name?p1=v1&p2=v2”;协议类型为mq,其对应的协议名称为消息队列协议处理器,协议处理器为com.company.handler.mq,描述信息为“支持类似格式:mq://server-name/queue-name?p1=v1&p2=v2”等。当然,所述协议注册表还可在需要时进行更新,以适应不同的数据源和输出通道。
进一步地,根据所述输入数据的数据源确定处理所述输入数据的处理器的步骤具体包括:
识别所述输入数据的数据源协议类型,并在预设的协议注册表中查询与所述数据源协议类型匹配的协议处理器,作为读取处理器。
进一步地,根据数据处理结果的输出通道确定用于输出所述数据处理结果的输出处理器的步骤具体包括:
识别数据处理结果的输出通道协议类型,并从协议注册表中查询与所述输出通道协议类型匹配的协议处理器,作为输出处理器。
参图3所示,在本申请一具体示例中,当数据集成系统接收到输入数据时,会先调用通用的读取接口链接协议注册表,并通过输入数据的数据源的URI(统一资源标识符)识别输入数据的数据源协议类型,例如:该输入数据是来自文件的外部数据,或该输入数据是来自关系数据库的外部数据,或该输入数据是来自消息队列的外部数据等,在获得该输入数据的数据源协议类型后,即可通过查表的方式在协议注册表中查找与该数据源协议类型匹配的协议处理器,以作为读取处理器。
在查找到匹配的协议处理器后,通过该协议处理器将接收到的输入数据读取至所述数据集成系统,成为待处理数据。
之后,所述数据采集系统对待处理数据执行业务处理,并获得数据处理结果。这里对待处理数据执行业务处理的方式,本领域人员可通过现有技术熟练掌握,在此不再赘述。
当得到数据处理结果之后,可调用通用的写入接口链接协议注册表,并通过数据处理结果的输出通道的URI识别数据处理结果的输出通道协议类型。在获得该输出通道协议类型后,即可通过查表的方式在协议注册表中查找与该输出通道协议类型匹配的协议处理器,以作为输出处理器。
在查找到匹配的协议处理器后,通过协议处理器将该数据处理结果输出至相应的输出通道,例如,将该数据处理结果写入文件,或将该数据处理结果写入消息队列,或将该数据处理结果写入数据库等。
当然,在执行数据处理前,该数据集成系统需要先建立上述协议注册表。并且,在本申请一实施方式中,所述方法还包括:
当新增或改变输入数据的数据源和/或数据处理结果的输出通道时,适应性的更新所述协议注册表。
例如,当新增了数据源和/或数据处理结果的输出通道时,可适应性的在所述协议注册表中增加与新增的数据源和/或输出通道相应的协议类型和协议处理器;当改变了数据源和/或数据处理结果的输出通道时,可适应性的在所述协议注册表中修改与改变的数据源和/或数据通道相应的协议类型和协议处理器。当然,在既增加了数据源和/或数据处理结果的输出通道,又改变了部分或者全部已有的数据源和/或数据处理结果的输出通道时,可适应性的在所述协议注册表中增加与新增的数据源和/或输出通道相应的协议类型和协议处理器,以及改变与改变的数据源和/或数据处理结果的输出通道相应的协议类型和协议处理器。
如图4所示,在本申请一实施方式中,数据集成系统中多类型数据处理的装置包括:
接收模块100,用于接收输入数据;
匹配模块200,用于调用读取接口,并根据所述输入数据的数据源确定处理所述输入数据的读取处理器,以读取所述输入数据;
处理模块300,用于对读取到的所述输入数据进行业务处理,获得数据处理结果;
所述匹配模块200还用于:调用写入接口,并根据数据处理结果的输出通道确定用于输出所述数据处理结果的输出处理器;
输出模块400,用于输出所述数据处理结果。
在本申请一实施方式中,所述匹配模块200还用于:
建构协议注册表,所述协议注册表中包括至少一个协议类型,以及与协议类型一一匹配的协议处理器。
参图2所示,在本申请一具体示例中,所述协议注册表包括协议类型、协议名称、协议处理器,以及描述信息。每一组协议类型、协议名称、协议处理器和描述信息之间存在唯一的对应关系。例如,协议类型为http,其对应的协议名称为http协议处理器,协议处理器为com.company.handler.http,描述信息为“支持类似格式:http://somebost/path? param1=value1¶m2=value2”;协议类型为db,其对应的协议名称为数据库协议处理器,协议处理器为com.company.handler.db,描述信息为“支持类似格式:db://server-name/table-name?p1=v1&p2=v2”;协议类型为mq,其对应的协议名称为消息队列协议处理器,协议处理器为com.company.handler.mq,描述信息为“支持类似格式:mq://server-name/queue-name?p1=v1&p2=v2”等。当然,所述协议注册表还可在需要时进行更新,以适应不同的数据源和输出通道。
进一步地,所述匹配模块200用于:
识别所述输入数据的数据源协议类型,并在预设的协议注册表中查询与所述数据源协议类型匹配的协议处理器,作为读取处理器。
进一步地,所述匹配模块200用于:
识别数据处理结果的输出通道协议类型,并从协议注册表中查询与所述输出通道协议类型匹配的协议处理器,作为输出处理器。
参图3所示,在本申请一具体示例中,当数据集成系统接收到输入数据时,会先调用通用的读取接口链接协议注册表,所述匹配模块200通过输入数据的数据源的URI(统一资源标识符)识别输入数据的数据源协议类型,例如:该输入数据是来自文件的外部数据,或该输入数据是来自关系数据库的外部数据,或该输入数据是来自消息队列的外部数据等,在获得该输入数据的数据源协议类型后,即可通过查表的方式在协议注册表中查找与该数据源协议类型匹配的协议处理器,以作为读取处理器。
在查找到匹配的协议处理器后,处理模块300通过该协议处理器将接收到的输入数据读取至所述数据集成系统,成为待处理数据。
之后,所述数据采集系统的处理模块300对待处理数据执行业务处理,并获得数据处理结果。这里对待处理数据执行业务处理的方式,本领域人员可通过现有技术熟练掌握,在此不再赘述。
当得到数据处理结果之后,可调用通用的写入接口链接协议注册表,所述匹配模块200通过数据处理结果的输出通道的URI识别数据处理结果的输出通道协议类型,在获得该输出通道协议类型后,即可通过查表的方式在协议注册表中查找与该输出通道协议类型匹配的协议处理器,以作为输出处理器。
在查找到匹配的协议处理器后,所述处理模块300通过协议处理器将该数据处理结果输出至相应的输出通道,例如,将该数据处理结果写入文件,或将该数据处理结果写入消息队列,或将该数据处理结果写入数据库等。
当然,在执行数据处理前,该数据集成系统需要先建立上述协议注册表。并且,在本申请一实施方式中,所述匹配模块200还用于:
当新增或改变输入数据的数据源和/或数据处理结果的输出通道时,适应性的更新所述协议注册表。
例如,当新增了数据源和/或数据处理结果的输出通道时,可适应性的在所述协议注册表中增加与新增的数据源和/或输出通道相应的协议类型和协议处理器;当改变了数据源和/或数据处理结果的输出通道时,可适应性的在所述协议注册表中修改与改变的数据源和/或数据通道相应的协议类型和协议处理器。当然,在既增加了数据源和/或数据处理结果的输出通道,又改变了部分或者全部已有的数据源和/或数据处理结果的输出通道时,可适应性的在所述协议注册表中增加与新增的数据源和/或输出通道相应的协议类型和协议处理器,以及改变与改变的数据源和/或数据处理结果的输出通道相应的协议类型和协议处理器。
综上所述,本申请的数据集成系统中多类型数据处理的方法及装置可将不同的数据源和不同输出通道进行登记管理,并提供通用的读取接口和写入接口,以实现当数据采集环节的数据源和/或数据输出环节的输出通道改变时,数据处理环节无需做任何改变,仍能正常工作,大大减少了数据集成系统维护的复杂度,也提高了数据集成系统的扩展性和灵活性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,装置和模块的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本申请所提供的几个实施方式中,应该理解到,所揭露的装置,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以2个或2个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本申请各个实施方式所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施方式对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施方式技术方案的精神和范围。