发明内容
本发明实施例公开了一种基于ETL技术协同多通讯协议的数据交换方法及装置,能够支持多种通讯协议,实现对数据进行灵活、高效地格式转换和处理,且所有数据处理操作都是独立可复用的,能够满足用户对于交换平台的多样化需求,提升了用户体验度。
本发明实施例第一方面公开了一种基于ETL技术协同多通讯协议的数据交换方法,包括:接收用户的携带数据类型的数据交换请求,所述数据交换请求用于请求将源端数据进行转换处理并交换到目的端,所述数据类型包括:源端数据的第一数据类型、目的端数据的第二数据类型;从至少两种通讯协议中确定出支持所述第一数据类型的第一通讯协议,通过所述第一通讯协议连接所述源端,从所述源端获取数据;根据所述数据交换请求将所述第一数据类型的数据转换为所述第二数据类型的数据;从至少两种通讯协议中确定出支持所述第二数据类型的第二通讯协议,并通过所述第二通讯协议连接所述目的端,将所述数据发送至所述目的端。
在一种可选方案中,在第一方面提供的方法中,所述方法在根据所述数据交换请求将所述第一数据类型的数据转换为所述第二数据类型的数据之前,还包括:对所述数据进行清洗处理,所述清洗处理包括:合并字段、剪切字符串、去除重复记录、拆分字段、排序记录、替换空值、合并结果集。
在一种可选方案中,在第一方面提供的方法中,所述第一通讯协议包括至少两个通讯协议,所述通过所述第一通讯协议连接所述源端包括:从所述至少两个通讯协议中选择一个通讯协议,并通过选择的通讯协议连接所述源端。
在一种可选方案中,在第一方面提供的方法中,所述第一数据类型包括:结构化数据、非结构化数据,所述第二数据类型包括:所述结构化数据、所述非结构化数据,所述根据所述数据交换请求将所述第一数据类型的数据转换为所述第二数据类型的数据具体包括:根据所述数据交换请求将所述结构化数据转换为所述非结构化数据;或者,根据所述数据交换请求将所述非结构化数据转换为结构化数据。
在一种可选方案中,在第一方面提供的方法中,将所述转换之后的数据发布为数据服务,所述数据服务用于为本地或者外部用户提供访问。
本发明实施例第二方面公开了一种基于ETL技术协同多通讯协议的数据交换装置,包括:接收单元,用于接收用户的携带数据类型的数据交换请求,所述数据交换请求用于请求将源端数据进行转换处理并交换到目的端,所述数据类型包括:源端数据的第一数据类型、目的端数据的第二数据类型;数据获取单元,用于从至少两种通讯协议中确定出支持所述第一数据类型的第一通讯协议,通过所述第一通讯协议连接所述源端,从所述源端获取数据;数据转换单元,用于根据所述接收单元中的数据交换请求将所述数据获取单元中的第一数据类型的数据转换为所述第二数据类型的数据;发送单元,用于从至少两种通讯协议中确定出支持所述第二数据类型的第二通讯协议,并通过所述第二通讯协议连接所述目的端,将所述数据发送至所述目的端。
在一种可选方案中,在第一方面提供的装置中,还包括:数据清洗单元,用于对所述数据进行清洗处理,所述清洗处理包括:合并字段、剪切字符串、去除重复记录、拆分字段、排序记录、替换空值、合并结果集。
在一种可选方案中,在第一方面提供的装置中,所述第一通讯协议包括至少两个通讯协议,所述数据获取单元具体包括:从所述至少两个通讯协议中选择一个通讯协议,并通过选择的通讯协议连接所述源端。
在一种可选方案中,在第一方面提供的装置中,所述第一数据类型包括:结构化数据、非结构化数据,所述第二数据类型包括:所述结构化数据、所述非结构化数据,所述数据转换单元具体包括:根据所述数据交换请求将所述结构化数据转换为所述非结构化数据;或者,根据所述数据交换请求将所述非结构化数据转换为结构化数据。
在一种可选方案中,在第一方面提供的装置中,还包括:服务单元,用于将所述转换之后的数据发布为数据服务,所述数据服务用于为本地或者外部用户提供访问。
本发明实施例中,通过接收用户的携带数据类型的数据交换请求,从多种通讯协议中确定出支持第一数据类型的第一通讯协议,通过第一通讯协议连接源端,从源端获取数据;根据数据交换请求将第一数据类型的数据转换为第二数据类型的数据;然后,从多种通讯协议中确定出支持第二数据类型的第二通讯协议,并通过第二通讯协议连接目的端,将数据传输至目的端;将转换之后的数据发布为对外的数据服务供外部访问。可以看出,本发明实施例公开的基于 ETL技术的数据交换方法,能够支持多种通讯协议,实现对数据进行灵活、高效地格式转换和处理,且所有数据处理操作都是独立可复用的,能够满足用户对于交换平台的多样化需求,提升了用户体验度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于ETL技术协同多通讯协议的数据交换方法及装置,能够支持多种通讯协议,实现对数据进行灵活、高效地格式转换和处理,且所有数据处理操作都是独立可复用的,能够满足用户对于交换平台的多样化需求,提升了用户体验度。以下分别进行详细说明。
请参阅图1,图1是本发明实施例公开的一种基于ETL技术的数据交换链路的示意图。可选的,在本发明实施例中该基于ETL技术的数据传输链路可以应用于政府、企业的数据中心或者云服务中心,实现数据从源端到目的端的传输过程。如图1所示,该基于ETL技术的数据交换链路包括:输入节点、转换节点、流程节点、输出节点,服务节点。其中数据的传输流程是:输入节点获取数据,通过转换节点、流程节点实现数据清洗转换,然后输出节点将该数据交换至目的端,服务节点将目的端的数据发布为数据服务。
其中输入节点用于从源端获取数据,该数据可以是数据库表等结构化数据,也可以是文本文件或二进制文件类的非结构化数据。其中源端即可以是外部服务器或者终端,也可以是本地的数据库或者其他存储器。可选的,针对结构化数据,本发明实施例可以使用tcp/ip、socket、http协议连接源端的数据库获取数据;对于非结构化数据,本发明实施例可以使用ftp、socket、http协议去连接源端,获取数据流。其中各个数据类型对应能够支持该数据类型进行传输的一个或者多个通讯协议。输入节点可以将获取的数据直接传递给输出节点或者转换节点。
转换节点,用于输入节点传送的数据进行处理,如图4中处理流程1、处理流程2、处理流程3和处理流程4,其中处理流程主要包括:合并字段、剪切字符、去除重复记录、排序记录、替换空NULL值、合并结果集,能够实现根据用户需求对数据进行清洗或者类型转换。
输出节点,用于对输入节点或转换节点传送的数据,确定使用tcp/ip、socket、http、ftp等协议之一,将数据交换到目的端。其中目的端可以是外部终端或者服务器,也可以是本地的另一个目标数据库或者存储地址等,此处不做具体限定。
流程节点,用于连接至少两个以上交换流程,流程节点可以与转换节点相结合。如图4中通过流程节点连接处理流程1和处理流程2。
服务节点,用于将目的端的数据对外发布为服务,具体可以使用ftp、socket、http、ws协议等发布为对外的服务供外部访问,也可以发布为本地服务。
在图1中,该数据链路是基于ETL技术的,ETL用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程,其中输入节点用于抽取数据,转换节点可结合流程节点用于数据转换,输出节点用于将转换之后的数据加载至目的端。
请参阅图2,图2是本发明实施例公开的一种基于ETL技术协同多通讯协议的数据交换方法的流程示意图。如图2所示,该基于ETL技术协同多通讯协议的数据交换方法可以包括以下步骤:
S201、接收用户的携带数据类型的数据交换请求。
可选的,上述步骤S201中数据交换请求用于请求将源端数据进行转换处理并交换到目的端,可以具体用于请求将源端数据的第一数据类型转换为第二数据类型,在转换过程中可以进行数据清洗处理;该数据交换请求还可以只用于请求将数据进行清洗处理,并不进行数据类型转换。该数据交换请求具体是根据用户需求确定。例如:请求将源端的数据表数据转换为文本文件数据,并传送至目的端。
需要说明的是,源端和目的端不受限于单向数据传输关系,此处只是为了便于对数据交换的流程进行说明,将数据来源端命名为“源端”,将数据交换的目标端命名为“目的端”。在可允许的情况下,源端可以目的端,目的端可以是源端。
需要说明的是,第一数据类型可以是结构化数据、非结构化数据或者其他数据类型中的任意一种;第二数据类型是结构化数据、非结构化数据或者其他数据类型中与第一数据类型不相同的任意一种。在虽然在本发明实施例中,可能使用了术语“第一”、“第二”和“第三”等等来描述各个数据类型,但是这些数据类型不应当受这些术语限制,使用这些术语仅仅是为了只是为了将一个数据类型与另一个数据类型进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一数据类型可以是目的端的数据类型,同时第二数据类型也可以是源端的数据类型。另外,第一数据类型与第二数据类型可以分别包含多个类型对象,“第一”和“第二”不做具体数量的限定。
可选的,数据类型包括:源端数据的第一数据类型、目的端数据的第二数据类型,其中第一数据类型是源端数据的至少一种数据类型中的任意一种,第二数据类型是目的端数据的至少一种数据类型中的任意一种。
S202、从至少两种通讯协议中确定出支持第一数据类型的第一通讯协议,通过第一通讯协议连接源端,从源端获取数据。
可选的,各个数据类型对应支持数据传输的一个或者多个通讯协议,在本发明实施例的方法中可以支持多个通讯协议,所以本发明实施例从至少两种通讯协议中确定出支持第一数据类型的第一通讯协议,通过第一通讯协议连接源端,从源端获取数据。例如:针对结构化数据,可以使用tcp/ip、socket、http协议任意一种连接源端的数据库获取数据;针对非结构化数据,可以使用ftp、socket、 http协议任意一种去连接源端,获取数据流。
作为一种可选的实施方式,该第一通讯协议包括至少两个通讯协议,则上述通过第一通讯协议连接源端包括:从该至少两个通讯协议中选择一个通讯协议,并通过选择的通讯协议连接所述源端。其原理是本申请中基于ETL技术的数据交换方法,是能够支持多通讯协议的,一种数据类型可以通过一种或者多种通讯协议进行数据交换,多通讯协议具有传输灵活、稳定性高的优点。若是多种通讯协议则需要从中选择一种实现单次的任务,其中具体选择通讯协议的原则,可以根据应用场景如数据交换中心或者云服务中心的具体配置来确定,也可以根据用户需求或者其他方式来确定。
S203、根据数据交换请求将第一数据类型的数据转换为第二数据类型的数据。
作为一种可选的实施方式,该第一数据类型包括:结构化数据、非结构化数据,第二数据类型包括:结构化数据、非结构化数据,上述根据数据交换请求将第一数据类型的数据转换为第二数据类型的数据具体包括:
根据该数据交换请求将结构化数据转换为非结构化数据;或者,根据该数据交换请求将非结构化数据转换为结构化数据。其具体实现方式可以参考图3 至图4中所描述的数据交换方法。
作为一种可选的实施方式,上述方法在根据数据交换请求将第一数据类型的数据转换为第二数据类型的数据之前,还包括:
对数据进行清洗处理,该清洗处理包括:合并字段、剪切字符串、去除重复记录、拆分字段、排序记录、替换空值、合并结果集。需要说明的是,所有的处理操作都是独立可复用。其具体实现方式可以参考图3中所描述的数据清洗的处理方法。
S204、从至少两种通讯协议中确定出支持第二数据类型的第二通讯协议,并通过第二通讯协议连接目的端,将数据传输至目的端。
可选的,各个数据类型对应支持数据传输的一个或者多个通讯协议,在本发明实施例的方法中可以支持多个通讯协议,所以本发明实施例根据第二数据类型,从至少两种通讯协议中确定出支持第二数据类型的第一通讯协议,通过第一通讯协议连接源端,从源端获取数据。
作为一种可选的实施方式,该第二通讯协议包括至少两个通讯协议,则上述通过第二通讯协议连接目的端包括:从该至少两个通讯协议中选择一个通讯协议,并通过选择的通讯协议连接所述源端。
S205、将所述转换之后的数据发布为数据服务,所述数据服务用于为本地或者外部用户提供访问。
作为一种可选的实施方式,当该种基于ETL技术协同多通讯协议的数据交换方法应用与企业、政府的数据中心时,所述方法在将数据传输至目的端之后,还包括:将转换之后的数据发布为数据服务,该数据服务用于提供访问,具体实现方式可以是:通过服务节点使用ftp、socket、http、ws协议等,将转换之后的数据发布为对外的服务供外部访问,也可以发布为本地服务。本发明实施例能够实现各业务部门和单位的信息互联互通和共享交换数据的功能,通过提供数据服务,用户就能够利用数据中心的网站链接、软件应用平台或者其他应用方式,访问数据中心的数据。
在图2所描述的方法中,通过接收用户的携带数据类型的数据交换请求,从多种通讯协议中确定出支持第一数据类型的第一通讯协议,通过第一通讯协议连接源端,从源端获取数据;根据数据交换请求将第一数据类型的数据转换为第二数据类型的数据;然后,从多种通讯协议中确定出支持第二数据类型的第二通讯协议,并通过第二通讯协议连接目的端,将数据传输至目的端;将转换之后的数据发布为对外的数据服务供外部访问。可以看出,本发明实施例公开的基于ETL技术的数据交换方法,能够支持多种通讯协议,实现对数据进行灵活、高效地格式转换和处理,且所有数据处理操作都是独立可复用的,能够满足用户对于交换平台的多样化需求,提升了用户体验度。
请参阅图3,图3是本发明实施例公开的一种数据转换的方法,该数据转换方法能够通过图1中的转换节点进行实现,能够进行第一数据类型的数据至第二数据类型的转换,该方法具体包括但不仅限于以下步骤:
S301、第一数据类型的数据输入,具体可以结构化数据输入。
上述步骤S301中第一数据类型可以是结构化数据、非结构化数据或者其他数据类型中的任意一种。
S302、合并字段,将输入的数据表的数据字段进行合并。
S303、剪切字符串,剪切掉不需要的字符串。
S304、去除重复记录,去除重复的记录。
S305、拆分字段,将生成的字段按照规则进行拆分。
S306、排序记录,将拆分的字段进行排序、记录。
S307、替换空(NULL)值,替换掉字符串中的NULL值。
S308、合并结果集,将结果集合并。
S309、第二数据类型的数据输出,具体可以是非结构化数据输出,如:文本文件数据。
上述步骤S309中第二数据类型可以是结构化数据、非结构化数据或者其他数据类型中与第一数据类型不相同的任意一种。
需要说明的是,上述步骤S302至S308没有特定的前后顺序之分,在实际应用场景中,可以根据用户需求只进行其中一个或者多个步骤。
需要说明的是,本发明实施例以实现第一数据类型的数据至第二数据类型的数据的转换进行数据转换的示范性说明,在实际应用中,该方法也可以根据用户需求在数据输入之后,实现步骤S302至S308,然后S309直接输出处理之后的第一数据类型的数据,即只进行数据清洗而不进行数据类型转换。
需要说明的是,该方法还可以实现多个并行的数据转换任务,且可以通过流程节点连接至少两个以上的数据交换过程,具体应用场景可以由用户需求确定,此处不做具体限定。
可以看出,在图3所描述的方法,能够实现数据从第一数据类型至第二数据类型的数据转换,满足用户的多样化的数据需求,且能够实现在转换过程中先进行数据清洗,过滤无用的数据,从而保证数据的有效性,提高了数据交换的速度。
请参阅图4,图4是本发明实施例公开的一种基于ETL技术协同多通讯协议的数据交换装置,该装置400用于实现图2或者图3中的部分或者全部的方法步骤,该装置400包括但不仅限于以下部分:
接收单元401,用于接收用户的携带数据类型的数据交换请求,该数据交换请求用于请求将源端数据进行转换处理并交换到目的端,数据类型包括:源端数据的第一数据类型、目的端数据的第二数据类型。
数据获取单元402,用于从至少两种通讯协议中确定出支持第一数据类型的第一通讯协议,通过第一通讯协议连接源端,从源端获取数据。
数据转换单元403,用于根据接收单元中的数据交换请求将数据获取单元中的第一数据类型的数据转换为第二数据类型的数据。
发送单元404,用于从至少两种通讯协议中确定出支持第二数据类型的第二通讯协议,并通过第二通讯协议连接目的端,将数据发送至目的端。
可选的,上述装置还包括:
数据清洗单元405,用于对数据进行清洗处理,该清洗处理包括:合并字段、剪切字符串、去除重复记录、拆分字段、排序记录、替换空值、合并结果集。
可选的,第一通讯协议包括至少两个通讯协议,上述数据获取单元402具体包括:从该至少两个通讯协议中选择一个通讯协议,并通过选择的通讯协议连接源端。
可选的,上述第一数据类型包括:结构化数据、非结构化数据,上述第二数据类型包括:所述结构化数据、所述非结构化数据,上述数据转换单元403具体包括:
根据数据交换请求将结构化数据转换为所述非结构化数据;或者,根据所数据交换请求将非结构化数据转换为结构化数据。
可选的,上述装置还包括:
服务单元406,用于将所述转换之后的数据发布为数据服务,所述数据服务用于为本地或者外部用户提供访问。
具体地,本发明实施例中介绍的装置可以实施本发明结合图1、图2或图3介绍的一种基于ETL技术协同的数据交换方法实施例中的部分或全部流程。
本发明所有实施例中的模块或子模块,可以通过通用集成电路,例如CPU,或通过ASIC(Application Specific Integrated Circuit,专用集成电路)来实现。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例用户终端中的单元可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,简称RAM)等。
以上对本发明实施例公开的一种基于ETL技术协同多通讯协议的数据交换方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。