数据处理方法、节点和提取、转换和加载etl系统的制作方法

文档序号:6369741阅读:170来源:国知局
专利名称:数据处理方法、节点和提取、转换和加载etl系统的制作方法
技术领域
本发明涉及信息技木,尤其涉及ー种数据处理方法、节点和提取、转换和加载ETL系统。
背景技术
在信息和通信系统中,经常需要将数据倒到文件系统、文本传输协议(FileTransfer Protocol, FTP)或者网络文件系统(Network File System, NFS)中,由网络中各节点进行数据提取、加载和转换(Extract Load Transform, ETL)处理。现有技术中,采用前置节点将数据读取并转发到各处理节点上,再由各处理节点对前置节点读取的数据进行ETL处理,然而,采用这种方法,前置节点作为入口节点,存在 1/0性能瓶颈,无法处理海量数据或处理海量数据存在难题。

发明内容
本发明实施例提供ー种数据处理方法、节点和提取、转换和加载ETL系统,提高ETL系统的处理海量数据的能力。一方面,本发明实施例提供ー种数据处理方法,包括前置节点从源数据源中获取待处理数据对应的多个文件的文件名和存储路径;所述前置节点将所述多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载ETL处理节点中的各ETL处理节点,以使所述各ETL处理节点根据收到的所述存储路径从所述源数据源中获取与收到的所述文件名对应的文件中的待处理数据。本发明实施例还提供ー种数据处理方法,包括提取、转换和加载ETL处理节点接收前置节点发送的待处理数据对应的至少ー个文件的文件名和存储路径;所述ETL处理节点根据所述存储路径,从源数据源中获取与所述文件名对应的文件中的待处理数据;所述ETL处理节点根据转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点,若所述目标处理节点为所述ETL处理节点本身,则所述ETL处理节点对所述待处理数据进行提取、转换和/或加载,若所述目标处理处理节点为网络中的其他ETL处理节点,则所述ETL处理节点将所述待处理数据发送至对应的目标处理节点进行提取、转换和/或加载。另ー方面,本发明实施例提供ー种前置节点,包括获取模块,用于从源数据源中获取待处理数据对应的多个文件的文件名和存储路径;文件名转发模块,用于将所述多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载ETL处理节点中的各ETL处理节点,以使所述各ETL处理节点根据收到的所述存储路径从所述源数据源中获取与收到的所述文件名对应的文件中的待处理数据。本发明实施例还提供ー种提取、转换和加载ETL处理节点,包括接收模块,用于接收前置节点发送的待处理数据对应的至少ー个文件的文件名和存储路径;获取模块,用于根据所述存储路径,从源数据源中获取与所述文件名对应的文件中的待处理数据;处理模块,用于根据转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点,若所述目标处理节点为所述ETL处理节点本身,则对所述待处理数据进行提取、转换和/或加载,若所述目标处理处理节点为网络中的其他ETL处理节点,则将所述待处理数据发送至对应的目标处理节点进行提取、转换和/或加载。 再一方面,本发明实施例还提供ー种提取、转换和加载ETL系统,包括前置节点和多个ETL处理节点;所述前置节点,用于从源数据源中获取待处理数据对应的多个文件的文件名和存储路径;将所述多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载ETL处理节点中的各ETL处理节点;所述ETL处理节点用于接收前置节点发送的待处理数据对应的至少ー个文件的文件名和存储路径;根据所述存储路径,从源数据源中获取与所述文件名对应的文件中的待处理数据;根据转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点,若所述目标处理节点为所述ETL处理节点本身,则对所述待处理数据进行提取、转换和/或加载,若所述目标处理处理节点为网络中的其他ETL处理节点,则将所述待处理数据发送至对应的目标处理节点进行提取、转换和/或加载。本发明实施例提供的数据处理方法、节点和ETL系统,通过前置节点在源数据源上读取待处理数据对应的多个文件的文件名和文件存储路径,将这些文件名和文件存储路径均衡地发送到网络中的多个ETL处理节点上;ETL处理节点根据文件名和文件存储路径从数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行ETL处理,如果目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至对应的目标处理节点进行ETL处理;可见,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点,从而提高ETL系统的处理海量数据的能力。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明提供的数据处理方法一个实施例的流程图;图2为本发明提供的数据处理方法又一个实施例的流程图;图3为本发明提供的数据处理方法另ー个实施例的流程图;图4为本发明提供的前置节点ー个实施例的结构示意图5为本发明提供的前置节点又一个实施例的结构示意图;图6为本发明提供的ETL处理节点一个实施例的结构示意图;图7为本发明提供的ETL处理节点又一个实施例的结构示意图;图8为本发明提供的ETL系统ー个实施例的结构示意图;图9为本发明提供的ETL系统又ー个实施例的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 图I为本发明提供的数据处理方法一个实施例的流程图,如图I所示,该方法包括S101、前置节点从源数据源中获取待处理数据对应的多个文件的文件名和存储路径;S102、前置节点将多个文件的文件名和存储路径均衡地分发给网络中的多个ETL(Extract、Transform、Load,提取、转换和加载)处理节点中的各ETL处理节点,以使各ETL处理节点根据收到的存储路径从源数据源中获取与收到的文件名对应的文件中的待处理数据。其中,前置节点可以是网络中的负载平衡(Load Balance)等类型的节点设备,在一种实现方式下,其物理产品形态可以是通用交换路由器(Universal Switching Router,USR)等等;以及,ETL处理节点可以是网络中的用于进行ETL处理的物理机或虚拟机,在一种实现方式下,其物理产品形态也可以是USR;源数据源可以是各种网络设备,例如网关通用无线分组服务(General Packet Radio Service, GPRS)支持节点(Gateway GPRSSupport Node, GGSN),也可以是文本传输协议(File Transfer Protocol, FTP)服务器(Server)或网络文件系统(Network File System, N FS)服务器等。目标数据源也可以是与源数据源相类似的各种网络设备,例如数据仓库/数据库、NFS服务器、FTP服务器。将源数据源中存储的待处理数据进行数据提取、转换和加载(ExtractionTransformation Loading, ETL)处理的过程,是将源数据源中存储的数据按照某一规则进行处理后加载到目标数据源中。具体可以对待处理数据进行过滤,去除掉不关注或者不需要的数据,并将处理后的数据进一歩转换为所需要的存储格式,将转换后的数据按照一定的规则进行整合,并加载到目标数据源(可以数据仓库或数据库等)中,作为后续分析处理、数据挖掘的基础。例如可以对源数据源中存储的成千上万条的用户上网记录(即待处理数据),按照用户进行统计,将同一用户的所有上网记录进行数据整合和汇总;还可以将源数据源中存储的成千上万条的上网记录,按照网站进行统计,将同一网站的所有用户访问记录进行数据整合和汇总等。本发明实施例中,前置节点可以从源数据源中(例如FTP服务器或者NFS服务器)获取待处理数据对应的文件的文件名和存储路径。可选的,前置节点可以在源数据源中一次性获取待处理的数据对应的文件的文件名和存储路径所构成的文件名列表,该文件名列表中可以包括待处理数据对应的所有文件的文件名和存储路径。可以理解的是,前置节点也可以分多次从源数据源中获取待处理数据对应的所有文件的文件名和存储路径。前置节点获取待处理数据对应的文件的文件名和存储路径后,可以按照ETL处理节点的数量,以轮询的方式将所述多个文件的文件名和存储路径均衡地分发给网络中的多个ETL处理节点中的各ETL处理节点。例如待处理数据对应的1000文件,则前置节点可以向网络中的10个ETL处理节点中的每个处理节点发送100个文件对应的文件名和存储路径。可选的,前置节点可以以轮询的方式将待处理数据对应的多个文件的文件名和存储路径均衡地发送给ETL处理节点中的各处理节点。例如前置节点可以根据网络中各处理节点的序号,依次向各处理节点发送文件名和存储路径。可以理解的是,前置节点也可以同时向网络中的各处理节点发送文件名和存储路径。以上仅提供了前置节点从数据源上获取待处理数据对应的文件的文件名和存储路径,以及向网络中的各处理节点发送文件名和存储路径几种可行的实施方式,但 并不以此作为本发明实施例的限制。本实施例提供的数据处理方法,通过前置节点在源数据源上读取待处理数据对应的多个文件的文件名和存储路径,将这些文件名和存储路径均衡地分发到网络中的多个ETL处理节点上。各ETL处理节点根据文件名和存储路径从源数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行ETL处理,如果目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至目标处理节点进行ETL处理;可见,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点,从而提高ETL系统的处理海量数据的能力。图2为本发明提供的数据处理方法又一个实施例的流程图,如图2所示,该方法包括S20UETL (Extract、Transform、Load,提取、转换和加载)处理节点接收前置节点发送的待处理数据对应的至少ー个文件的文件名和存储路径。S202、ETL处理节点根据存储路径,从源数据源中获取与文件名对应的文件中的待处理数据。S203、ETL处理节点根据转发规则确定对待处理数据进行提取、转换和/或加载的目标处理节点,若目标处理节点为ETL处理节点本身,则ETL处理节点对待处理数据进行提取、转换和/或加载,若目标处理处理节点为网络中的其他ETL处理节点,则ETL处理节点将待处理数据发送至对应的目标处理节点进行提取、转换和/或加载。在一种实现方式下,所述转发规则包括从所述待处理数据中提取以下一种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息,以及根据从所述待处理数据中提取的信息和网络中的ETL处理节点的个数进行哈希计算以确定所述目标处理节点。相应的,步骤S203中的根据转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点,包括所述ETL处理节点根据所述转发规则,从所述待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息;
所述ETL处理节点根据网络中的所述ETL处理节点的个数,对提取的以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息进行哈希计算,以确定对包含以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息的待处理数据进行数据提取、转换和/或加载的目标处理节点。其中,前置节点向网络中的多个ETL处理节点中的各ETL处理节点发送至少ー个文件的文件名和存储路径的过程,可參见前述实施例中的相关描述,在此不再赘述。本实施例中涉及的ETL处理节点,可以是网络中的任一 ETL处理节点。从前述实施例中的描述可以看出,网络中的每个ETL处理节点,能够接收到前置节点发送的待处理数据对应的一部分文件的文件名和存储路径。ETL处理节点接收到文件名和存储路径后,可以根据存储路径获知存储待处理数据的源数据源的位置以及源数据源中存储待处理数据的具体位置,因此,ETL处理节点可以根据存储路径,从源数据源中的相应位置,根据文件名读取对应的文件,并且可以对读取的文件进行解析得到待处理数据。
ETL处理节点从源数据源中获取文件名对应的文件中的待处理数据之后,可以根据转发规则确定对待处理数据进行提取、转换和/或加载的目标处理节点。其中,网络中各ETL处理节点用于确定目标处理节点的转发规则相同,可以实现同一类待处理数据(比如包含同一个用户的所有信息(例如一个用户访问的所有网站信息)的待处理数据,或者,包含同一个网站的所有信息(例如一个网站所有的访问用户信息)的待处理数据)由ー个ETL处理节点进行提取、转发和/或加载处理。可选的,前置节点可以预先配置转发规则,井向网络中的多个ETL处理节点中的各ETL处理节点下发设定的转发规则,前置节点向网络中各ETL处理节点下发的转发规则可以是相同的。该转发规则用于各ETL处理节点确定对待处理数据进行提取、转发和/或加载的目标处理节点,以使目标处理节点为ETL处理节点本身时,通过该ETL处理节点对待处理数据进行提取、转换和/或加载;目标处理处理节点为网络中的其他ETL处理节点,则ETL处理节点将待处理数据二次转发给对应的目标处理节点进行数据提取、转换和/或加载。或者,还可以在网络中的任一 ETL处理节点或其他节点上预先设定转发规则配置模块,并在该转发规则配置模块中配置转发规则,ETL处理节点可以从转发规则配置模块上获取转发规则。或者,各ETL处理节点还可以通过人机交互接ロ接收用户配置的转发规则。可选的,转发规则可以包括从待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息,以及根据从待处理数据中提取的信息和网络中的ETL处理节点的个数进行哈希计算以确定目标处理节点。其中,用户信息可以是用户的各种标识信息,例如用户名、账号信息,或者可以为手机号码、使用3G上网卡的无线业务号码或固定宽带的固话号码等能够识别用户身份的标识等;网站信息可以是网站的各种标识信息,例如域名,URL(Uniform Resoure Locator统ー资源定位器)等;网站服务器的主机信息可以是网站中服务器的主机名,IP地址等信息;用户终端信息可以是用户访问网站使用的終端,例如手机的国际移动设备身份码(International Mobile Equipment Identity, IME丄ノ 目ノ窗、。举例来说,转发规则可以为从待处理数据中提取用户信息,根据提取的用户信息和网络中的ETL处理节点的个数进行哈希(Hash)计算,确定目标处理节点。通过哈希计算可以实现将包含同一个用户的所有信息(例如一个用户访问的所有网站信息)的待处理数据由网络中的同一个ETL处理节点进行提取、转换和/或加载处理。举例来说,转发规则还可以为从待处理数据中提取网站信息,根据提取的网站信息和网络中的ETL处理节点的个数进行哈希计算,确定目标处理节点。通过哈希计算可以实现将包含同一个网站的所有信息(例如一个网站所有的访问用户信息)的待处理数据由网络中的同一个ETL处理节点进行提取、转换和/或加载处理。以上仅以具体的例子对转发规则包含的内容进行说明,但并不以此作为本发明实施例的限制。ETL处理节点根据存储路径,从源数据源中获取与文件名对应的文件中的待处理数据之后,可以根据转发规则确定对待处理数据进行提取、转换和/或加载的目标处理节点。如果所确定的进行目标处理节点为该ETL处理节点本身,则该ETL处理节点可以对待处理数据进行提取、转换和/或加载处理,例如可以将同一用户的所有网站访问记录进行统计,滤除不关注或不需要的数据,最終生成该用户的访问记录等。如果所确定的目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点可以将待处理数据转发给目标处理节点,由该目标处理节点对待处理数据进行提取、转换和/或加载处理。可以理解的是,该ETL处理节点作为网络中的其他ETL处理节点所确定的目标处理节点,也可能接收到网络中的其他ETL处理节点转发的待处理数据,在这种情况下,该ETL处理节点对其他ETL处理节点转发的待处理数据进行提取、转换和/或加载处理。需要说明的是,本发明实施例涉及的ETL处理节点对待处理数据进行的提取、转换和/或加载处理,其中的提取(Extract)操作是指ETL处理节点在待处理数据中提取待进行转换和/或加载的数据的过程。这属于现有技术,本发明实施例对此不作赘述;而ETL处理节点所执行的该提取(Extract)操作与ETL节点根据转发规则确定对待处理数据进行提取、转换和/或加载的目标处理节点过程中所执行的提取操作有所不同,ETL节点根据转发规则确定对待处理数据进行提取、转换和/或加载的目标处理节点过程中所执行的提取具体为根据转发规则,从待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息;转换(Transform)操作可以是将数据转换为所需要的存储格式等操作;加载(Load)操作可以是将经过提取和/或转换的数据加载到目标数据源的过程。作为几种可行的实施方式,对于网络中的任一 ETL处理节点,可以对待处理数据进行提取后直接进行加载操作,将经过提取的待处理数据加载到目标数据库中;或者,还直接对待处理数据进行转换后加载到目标数据库中;或者,还可以依次对待处理数据进行提取和转换后再加载到目标数据库中。本实施例提供的数据处理方法,通过前置节点在源数据源上读取待处理数据对应的多个文件的文件名和存储路径,将这些文件名和存储路径均衡地分发到网络中的多个ETL处理节点上。各ETL处理节点根据文件名和存储路径从源数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行ETL处理,如果目标处理节点为 网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至目标处理节点进行ETL处理;可见,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点(ETL处理节点的数量可以线性扩展),从而提高ETL系统的处理海量数据的能力。图3为本发明提供的数据处理方法另ー个实施例的流程图,如图3所示,本发明实施例以GGSN数据上存储I亿个REC_TYPE_FL0W格式文件,每个文件I万条记录,所有记录中共有100万个用户,2000万网站为例,对本发明实施例提供的数据处理方法进行说明。该方法包括S301、前置节点从源数据源中获取待处理数据对应的多个文件的文件名和存储路径。GGSN数据源目前存储I亿个REC_TYPE_FL0W格式的文件,每个文件I万条记录,所有记录中,总共有100万个用户,2000万网站。本实施例中,待处理数据对应的文件的文件名为REC_TYPE_FL0W[文件生成时间].csv。 可选的,前置节点可以通过FTP的文件列表命令(ListFile),一次性从GGSN中获取到待处理数据对应的I亿个文件的文件名和存储路径。S302、前置节点将多个文件的文件名和存储路径均衡地分发给网络中多个ETL处理节点中的各ETL处理节点。本实施例中,可选的,前置节点可以将I亿个文件的文件名和存储路径,按照网络中处理节点的个数,以轮询方式发送到各ETL处理节点上,在本实例中,网络中存在100个ETL处理节点,则每个ETL处理节点可以接收到前置节点发送的100万个文件的文件名和存储路径。(需要说明的是,ETL处理节点个数如果增加,则每个ETL处理节点接收到的文件的文件名和存储路径将线性減少。)S303、ETL处理节点根据存储路径,从源数据源中获取文件名对应的文件中的待处
理数据。每个ETL处理节点接收到前置节点发送的文件的文件名和存储路径后,可以根据文件名和存储路径(例如=FTP的地址),|FTP服务器上获取文件名对应的文件。进ー步的,由于GGSN上的文件以REC_TYPE_FL0W格式存储,因此,ETL处理节点可以以REC_TYPE_FL0W格式对获取到的文件进行解析,得到待处理数据。S304、ETL处理节点根据转发规则,从待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息。其中,转发规则可以由前置节点预先配置并下发给网络中的各ETL处理节点;或者,网络中的ETL处理节点还可以通过人机交互接ロ接收用户配置的转发规则。S305、ETL处理节点根据网络中的ETL处理节点的个数,对提取的以下一种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息进行哈希计算,以确定对包含以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息的待处理数据进行数据提取、转换和/或加载的处理节点。若目标处理节点为该ETL节点本身,则执行S306,若目标处理处理节点为网络中的其他ETL处理节点,则执行S307。举例来说,假设转发规则为提取待处理数据中的用户信息,则ETL处理节点可以根据提取的用户信息和网络中的ETL处理节点的个数进行哈希(Hash)计算(也可以采用现有的其他计算方法,并不以此作为对本发明实施例的限制),以确定对该用户信息进行提取、转发和/或加载的目标处理节点。如果目标处理节点为该ETL处理节点本身,则该ETL处理节点可以对该用户信息进行提取、转发和/或加载操作;如果目标节点为网络中的其他ETL处理节点,则该ETL处理节点可以将该待处理数据转发到对应的目标处理节点进行提取、转发和/或加载。其中,转发方式可以通过用户数据包协议(UserDatagramProtocol,UDP)接ロ,也可以通过N FS接ロ。通过转发规则,可以实现将包含某一用户的用户信息的待处理数据由网络中的另ー个ETL处理节点进行提取、转发和/或加载处理。举例来说,假设转发规则为提取待处理数据中的网站信息,则ETL处理节点可以根据提取的网站信息和网络中的ETL处理节点的个数进行哈希计算,确定对该网站信息进行提取、转发和/或加载的目标处理节点。如果目标处理节点为该ETL处理节点本身,则该ETL处理节点可以对该网站信息进行提取、转发和/或加载操作;如果目标节点为网络中的其他ETL处理节点,则该ETL处理节点可以将该待处理数据转发到对应的目标处理节点进行提取、转发和/或加载。通过转发规则,可以实现将包含某一网站的网站信息的待处理数据由网络中的ー个ETL处理节点进行提取、转发和/或加载处理。 假设在本实例中,网络中存在100个处理节点,则每个处理节点分到I万个用户的REC_TYPE_FL0ff 记录和 20 万网站的 REC_TYPE_FL0W 记录。S306、ETL处理节点对待处理数据进行提取、转换和/或加载。之后执行S309。S307、ETL处理节点将待处理数据发送至对应的目标处理节点。S308、目标处理节点对接收到的待处理数据进行提取、转换和/或加载。每个ETL处理节点接收到待处理数据后,可以对待处理数据进行过滤、转换和聚合等处理,每个处理节点存在I万条用户记录和20万条网站记录,收敛比为1050万条记录*2/10000亿条记录=0. 0021%。无论网络中处理节点数是否增加,收敛比不变。最后100个处理节点处理完的2100万条记录导入目标数据源中,这样的话,目标数据源中不需要进ー步做聚合操作。本实施例提供的数据处理方法,通过前置节点在源数据源上读取待处理数据对应的多个文件的文件名和文件存储路径,将这些文件名和文件存储路径均衡地发送到网络中的多个ETL处理节点上;ETL处理节点根据文件名和文件存储路径从数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行ETL处理,如果目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至目标处理节点进行ETL处理;可见,一方面,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点(ETL处理节点的数量可以线性扩展),从而提高ETL系统的处理海量数据的能力。另ー方面,利用各ETL处理节点的数据二次转发方法,可以实现将同一类待处理数据(比如包含同一个用户的所有信息(例如一个用户访问的所有网站信息)的待处理数据,或者,包含同一个网站的所有信息(例如一个网站所有的访问用户信息)的待处理数据)分担到同一个ETL处理节点进行ETL处理,提高元数据的收敛比,降低系统开销。图4为本发明提供的前置节点ー个实施例的结构示意图,如图4所示,该前置节点包括获取模块11和文件名转发模块12 ;获取模块11,用于从源数据源中获取待处理数据对应的多个文件的文件名和存储路径;文件名转发模块12,用于将多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载ETL处理节点中的各ETL处理节点,以使各ETL处理节点根据收到的存储路径从源数据源中获取与收到的文件名对应的文件中的待处理数据。可见,本实施例提供的前置节点,在源数据源上读取待处理数据对应的多个文件的文件名和存储路径,将这些文件名和存储路径均衡地分发到网络中的多个ETL处理节点上。各ETL处理节点根据文件名和存储路径从源数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行 ETL处理,如果目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至目标处理节点进行ETL处理;可见,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点(ETL处理节点的数量可以线性扩展),从而提高ETL系统的处理海量数据的能力。图5为本发明提供的前置节点又一个实施例的结构示意图,如图5所示,可选的,文件名转发模块12可以具体用于按照ETL处理节点的数量,以轮询的方式将多个文件的文件名和存储路径均衡地分发给网络中的多个ETL处理节点中的各ETL处理节点。进ー步的,该前置节点还可以包括转发规则配置模块13,用于向网络中的多个ETL处理节点中的各ETL处理节点分别发送设定的转发规则,以使ETL处理节点根据转发规则确定对待处理数据进行提取、转换和/或加载的目标处理节点。可选的,转发规则配置模块13配置的转发规则包括从待处理数据中提取以下一种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息,以及根据从待处理数据中提取的前述信息和网络中的ETL处理节点的个数进行哈希计算以确定目标处理节点。本发明实施例提供的前置节点,为本发明实施例提供的数据处理方法的执行设备,其执行数据处理方法的详细步骤可參见本发明实施例提供的数据处理方法实施例,在此不再赘述。本实施例提供的前置节点,在源数据源上读取待处理数据对应的多个文件的文件名和存储路径,将这些文件名和存储路径均衡地分发到网络中的多个ETL处理节点上。各ETL处理节点根据文件名和存储路径从源数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行ETL处理,如果目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至目标处理节点进行ETL处理;可见,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点(ETL处理节点的数量可以线性扩展),从而提高ETL系统的处理海量数据的能力。图6为本发明提供的ETL处理节点一个实施例的结构示意图,如图6所示,该前置节点包括接收模块21、获取模块22和处理模块23 ;接收模块21,用于接收前置节点发送的待处理数据对应的至少ー个文件的文件名和存储路径;获取模块22,用于根据存储路径,从源数据源中获取与文件名对应的文件中的待处理数据;处理模块23,用于根据转发规则确定对待处理数据进行提取、转换和/或加载的目标处理节点,若目标处理节点为ETL处理节点本身,则对待处理数据进行提取、转换和/或加载,若目标处理处理节点为网络中的其他ETL处理节点,则将待处理数据发送至对应的目标处理节点进行提取、转换和/或加载。本实施例提供的ETL处理节点,通过前置节点在源数据源上读取待处理数据对应的多个文件的文件名和存储路径,将这些文件名和存储路径均衡地分发到网络中的多个ETL处理节点上。各ETL处理节点根据文件名和存储路径从源数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行ETL处理,如果目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至目标处理节点进行ETL处理;可见,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点(ETL处理节点的数量可以线性扩展),从而提高ETL系统的处理海量数据的能力。
图7为本发明提供的处理节点又一个实施例的结构示意图,如图7所示,可选的,接收模块21还可以用于接收前置节点发送的转发规则,或者,通过人机交互接ロ接收用户配置的转发规则。优选的,转发规则可以包括从待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息,以及根据从待处理数据中提取的前述信息和网络中的ETL处理节点的个数进行哈希计算以确定目标处理节点。在一种实现方式下,处理模块23可以包括计算单元231、ETL単元232和转发单元 233 ;计算单元231,用于根据转发规则,从待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息;并根据网络中的ETL处理节点的个数,对提取的以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息进行哈希计算,以确定对包含以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息的待处理数据进行数据提取、转换和/或加载的目标处理节点;ETL单元232,用于若计算单元确定的目标处理节点为ETL处理节点本身,对待处理数据进行提取、转换和/或加载;应当理解的是,ETL単元的功能參考现有技术,本发明实施例对此不再赘述。转发单元233,用于若计算单元确定的目标处理节点为网络中的其他ETL处理节点,将待处理数据发送至对应的目标处理节点进行数据提取、转换和/或加载。可选的,ETL単元232还可以用于接收其他ETL处理节点发送来的待处理数据,并对其他ETL处理节点发送来的待处理数据进行数据提取、转换和/或加载。本发明实施例提供的ETL处理节点,为本发明实施例提供的数据处理方法的执行设备,其执行数据处理方法的详细步骤可參见本发明实施例提供的数据处理方法实施例,在此不再赘述。本实施例提供的ETL处理节点,通过前置节点在源数据源上读取待处理数据对应的多个文件的文件名和存储路径,将这些文件名和存储路径均衡地分发到网络中的多个ETL处理节点上。各ETL处理节点根据文件名和存储路径从源数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行ETL处理,如果目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至目标处理节点进行ETL处理;可见,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点(ETL处理节点的数量可以线性扩展),从而提高ETL系统的处理海量数据的能力。图8为本发明提供的ETL系统ー个实施例的结构示意图,如图8所示,该ETL系统包括前置节点2和多个的ETL处理节点3 ;前置节点2,用于从源数据源I中获取待处理数据对应的多个文件的文件名和存储路径;将多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载 ETL处理节点3中的各ETL处理节点3 ;ETL处理节点3用于接收前置节点2发送的待处理数据对应的至少ー个文件的文件名和存储路径;根据存储路径,从源数据源中获取与文件名对应的文件中的待处理数据;根据转发规则确定对待处理数据进行提取、转换和/或加载的目标处理节点,若目标处理节点为ETL处理节点3本身,则对待处理数据进行提取、转换和/或加载,若目标处理处理节点为网络中的其他ETL处理节点3,则将待处理数据发送至对应的目标处理节点进行提取、转换和/或加载。可选的,该系统还可以包括源数据源1,用于存储包含待处理数据的文件以及待处理数据对应的多个文件的文件名和存储路径。目标数据源4,用于存储ETL处理节点3对待处理数据进行数据提取、转换和加载ETL后的数据。应当理解的是,ETL处理节点3将完成过滤、转换和/或聚合的数据加载导入到目标数据源4中。其中,前置节点可以是网络中的负载平衡(Load Balance)等类型的节点设备,在一种实现方式下,其物理产品形态可以是通用交换路由器(Universal Switching Router,USR)等等;以及,ETL处理节点可以是网络中的用于进行ETL处理的物理机或虚拟机,在一种实现方式下,其物理产品形态也可以是USR;源数据源可以是各种网络设备,例如网关通用无线分组服务(General Packet Radio Service, GPRS)支持节点(GatewayGPRSSupport Node,GGSN),也可以是文本传输协议(FiIe Transfer ProtocoI,FTP)服务器(Server)或网络文件系统(Network File System,NFS)服务器等。目标数据源也可以是与源数据源相类似的各种网络设备,例如数据仓库/数据库、NFS服务器、FTP服务器。图9为本发明提供的数据处理系统又ー个实施例的结构示意图,如图9所示,本发明实施例提供的数据处理系统,其中包括的前置节点和处理节点的具体结构可以分别參见本发明提供的前置节点实施例和处理节点实施例,其中源数据源、前置节点、处理节点以及目标数据源之间的交互过程,具体可參见本发明实施例提供的数据处理方法,在此不再赘述。综上所述,一方面,本发明实施例提供的数据处理方法、节点和ETL系统,具有处理海量数据的能力通过前置节点在源数据源上读取待处理数据对应的多个文件的文件名和存储路径,将这些文件名和存储路径均衡地分发到网络中的ETL处理节点上,ETL处理节点根据文件名和存储路径从源数据源上获取待存储数据后,根据转发规则确定对待处理数据进行ETL处理的目标处理节点,如果目标处理节点为该ETL处理节点本身,则该ETL处理节点对待处理数据进行ETL处理,如果目标处理节点为网络中的其他ETL处理节点,则该ETL处理节点将待处理数据发送至目标处理节点进行ETL处理可见,利用文件名轮询和数据轮询进行多级负荷分担方法,将数据负荷分担到各ETL处理节点(ETL处理节点的数量可以线性扩展),从而提高ETL系统的处理海量数据的能力;另ー方面,本发明实施例的数据处理方法、节点和ETL系统具有线性扩展能力相对于现有的ETL技术在处理海量数据时,其线性可扩展能力受限其E (extract)的单点处理瓶颈,数据转发过程无法做到真正的负载均衡,一旦数据量増大,其处理过程将陡增的情况,而本发明实施例中,通过文件名转发的处理方式,即前置节点只转发文件名,其负载压力大大降低,換言之,降低了 ETL系统的前置节点的瓶颈;而且处理节点通过ニ级转发的方式将待处理数据转发给对应目标处理节点,使其可以通过扩展ETL处理节点数的方式,扩展ETL处理节点的处理能力,从整个系统的角度看,整个ETL系统具备了线性可扩展的能力,能有效利用了线性扩展后的硬件设施;再一方面,本发明实施例的数据处理方法、节点和ETL系统提高了处理节点处理 性能相对于现有的ETL技术在处理聚合、排序等需要操作时,将同一类元数据(比如同一用户的数据)无法负荷分担到各处理节点,往往需要在目标数据源在做一次汇聚,浪费了系统的处理性能并增加存储成本的情况,而本发明实施例中,ETL处理节点由于具备将待处理数据转发给对应的目标处理节点的ニ级转发功能,经过聚合后的数据的收敛比不会随着节点数的増加而增加,从而不需要处理节点在进行二次汇聚来降低收敛比,使每个ETL处理节点的处理性能得到提升。本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管參照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.ー种数据处理方法,其特征在于,包括 前置节点从源数据源中获取待处理数据对应的多个文件的文件名和存储路径; 所述前置节点将所述多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载ETL处理节点中的各ETL处理节点,以使所述各ETL处理节点根据收到的所述存储路径从所述源数据源中获取与收到的所述文件名对应的文件中的待处理数据。
2.根据权利要求I所述的方法,其特征在于,所述前置节点将所述多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载ETL处理节点,具体为 所述前置节点按照ETL处理节点的数量,以轮询的方式将所述多个文件的文件名和存储路径均衡地分发给网络中的多个ETL处理节点中的各ETL处理节点。
3.根据权利要求I或2所述的方法,其特征在于,还包括 所述前置节点向网络中的多个ETL处理节点中的各ETL处理节点分别发送设定的转发规则,以使所述ETL处理节点根据所述转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点。
4.根据权利要求3所述的方法,其特征在于,所述转发规则包括从所述待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息,以及根据从所述待处理数据中提取的信息和网络中的ETL处理节点的个数进行哈希计算以确定所述目标处理节点。
5.ー种数据处理方法,其特征在于,包括 提取、转换和加载ETL处理节点接收前置节点发送的待处理数据对应的至少ー个文件的文件名和存储路径; 所述ETL处理节点根据所述存储路径,从源数据源中获取与所述文件名对应的文件中的待处理数据; 所述ETL处理节点根据转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点,若所述目标处理节点为所述ETL处理节点本身,则所述ETL处理节点对所述待处理数据进行提取、转换和/或加载,若所述目标处理处理节点为网络中的其他ETL处理节点,则所述ETL处理节点将所述待处理数据发送至对应的目标处理节点进行提取、转换和/或加载。
6.根据权利要求5所述的方法,其特征在于,所述ETL处理节点根据转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点之前,还包括 接收所述前置节点发送的所述转发规则; 或者,通过人机交互接ロ接收用户配置的所述转发规则。
7.根据权利要求5或6所述的方法,其特征在于,所述转发规则包括从所述待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息,以及根据从所述待处理数据中提取的信息和网络中的ETL处理节点的个数进行哈希计算以确定所述目标处理节点。
8.根据权利要求7所述的方法,其特征在于,所述ETL处理节点根据转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点,包括 所述ETL处理节点根据所述转发规则,从所述待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息;所述ETL处理节点根据网络中的所述ETL处理节点的个数,对提取的以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息进行哈希计算,以确定对包含以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户終端信息的待处理数据进行数据提取、转换和/或加载的目标处理节点。
9.根据权利要求5-8任一项所述的方法,其特征在于,所述方法还包括 所述ETL处理节点接收其他ETL处理节点发送来的待处理数据,并对其他ETL处理节点发送来的待处理数据进行数据提取、转换和/或加载。
10.ー种前置节点,其特征在于,包括 获取模块,用于从源数据源中获取待处理数据对应的多个文件的文件名和存储路径; 文件名转发模块,用于将所述多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载ETL处理节点中的各ETL处理节点,以使所述各ETL处理节点根据收到的所述存储路径从所述源数据源中获取与收到的所述文件名对应的文件中的待处理数据。
11.根据权利要求10所述的前置节点,其特征在于,所述文件名转发模块具体用于按照ETL处理节点的数量,以轮询的方式将所述多个文件的文件名和存储路径均衡地分发给网络中的多个ETL处理节点中的各ETL处理节点。
12.根据权利要求10或11所述的前置节点,其特征在于,还包括 转发规则配置模块,用于向网络中的多个ETL处理节点中的各ETL处理节点分别发送设定的转发规则,以使所述ETL处理节点根据所述转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点。
13.根据权利要求12所述的前置节点,其特征在于,所述转发规则配置模块配置的所述转发规则包括从所述待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息,以及根据从所述待处理数据中提取的信息和网络中的ETL处理节点的个数进行哈希计算以确定所述目标处理节点。
14.一种提取、转换和加载ETL处理节点,其特征在于,包括 接收模块,用于接收前置节点发送的待处理数据对应的至少ー个文件的文件名和存储路径; 获取模块,用于根据所述存储路径,从源数据源中获取与所述文件名对应的文件中的待处理数据; 处理模块,用于根据转发规则确定对所述待处理数据进行提取、转换和/或加载的目标处理节点,若所述目标处理节点为所述ETL处理节点本身,则对所述待处理数据进行提取、转换和/或加载,若所述目标处理处理节点为网络中的其他ETL处理节点,则将所述待处理数据发送至对应的目标处理节点进行提取、转换和/或加载。
15.根据权利要求14所述的ETL处理节点,其特征在于,所述接收模块还用于接收所述前置节点发送的所述转发规则,或者,通过人机交互接ロ接收用户配置的所述转发规则。
16.根据权利要求14或15所述的ETL处理节点,其特征在于,所述转发规则包括从所述待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息,以及根据从所述待处理数据中提取的信息和网络中的ETL处理节点的个数进行哈希计算以确定所述目标处理节点。
17.根据权利要求16所述的ETL处理节点,其特征在于,所述处理模块包括计算单元,用于根据所述转发规则,从所述待处理数据中提取以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息;并根据网络中的所述ETL处理节点的个数,对提取的以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息进行哈希计算,以确定对包含以下ー种或任意组合信息用户信息、网站信息、网站服务器的主机信息和用户终端信息的待处理数据进行数据提取、转换和/或加载的目标处理节点; 提取、转换和加载ETL単元,用于若所述计算単元确定的目标处理节点为所述ETL处理节点本身,对所述待处理数据进行提取、转换和/或加载; 转发单元,用于若所述计算単元确定的目标处理节点为网络中的其他ETL处理节点,将所述待处理数据发送至对应的目标处理节点进行数据提取、转换和/或加载。
18.根据权利要求17所述的ETL处理节点,其特征在于,所述ETL单元还用于接收其他ETL处理节点发送来的待处理数据,并对其他ETL处理节点发送来的待处理数据进行数据提取、转换和/或加载。
19.ー种提取、转换和加载ETL系统,其特征在于,包括如权利要求10-13任一项所述前置节点和多个如权利要求14-18任一项所述的ETL处理节点。
20.根据权利要求19所述的系统,其特征在于,还包括 源数据源,用于存储包含待处理数据的文件以及所述待处理数据对应的多个文件的文件名和存储路径。
21.根据权利要求19或20所述的系统,其特征在于,还包括 目标数据源,用于存储所述ETL处理节点对所述待处理数据进行数据提取、转换和加载ETL后的数据。
全文摘要
本发明实施例提供一种数据处理方法、节点和提取、转换和加载ETL系统。一种方法包括前置节点从源数据源中获取待处理数据对应的多个文件的文件名和存储路径;所述前置节点将所述多个文件的文件名和存储路径均衡地分发给网络中的多个提取、转换和加载ETL处理节点中的各ETL处理节点,以使所述各ETL处理节点根据收到的所述存储路径从所述源数据源中获取与收到的所述文件名对应的文件中的待处理数据。本发明实施例,提高ETL系统的处理海量数据的能力。
文档编号G06F17/30GK102693297SQ20121015185
公开日2012年9月26日 申请日期2012年5月16日 优先权日2012年5月16日
发明者威蒙, 安库, 邱恒 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1