服务器集群数据同步方法及装置与流程

专利2022-06-29  77


本申请属于互联网技术领域,尤其涉及一种服务器集群数据同步方法及装置。



背景技术:

随着企业信息化建设的发展,越来越多的企业建立了众多的信息系统,以帮助企业进行内外部业务的处理和管理工作。但是随着信息系统的增加,各自孤立工作的信息系统造成了大量的冗余数据和业务人员的重复劳动。

数据集成技术应运而生,而etl(extraction-transformation-loading,数据抽取-转换-加载)是数据集成技术中的重要部分。通过etl能够将业务系统的数据经过抽取、清洗转换之后加载到数据仓库,以将企业中的分散、零乱、异构、标准不统一的数据整合到一起,从而实现数据同步的功能。目前,常用的etl工具包括kettle和datax等工具。

在本申请的发明人实践本申请的过程中发现目前相关技术至少存在以下缺陷:1)在大数据量下etl能力较差,但是在大数据和物联网的背景下,中小企业数据量过亿也很常见,尤其无法支持实时etl,导致时效性差。2)在大数据量场景下一般都要使用服务器集群模式,然而目前的etl处理方案无法在集群中稳定运行。

针对上述问题,目前业界暂无较佳的解决方案。



技术实现要素:

本申请实施例提供一种服务器集群数据同步方法及装置,用于至少解决上述技术问题之一。

第一方面,本申请实施例提供一种服务器集群数据同步方法,所述服务器集群包括多个服务器节点,所述方法由所述服务器节点执行,所述方法包括:根据预配置的etl配置数据中的数据源读取配置信息,从至少一个异构数据源中读取源数据集,所述etl配置数据还包括数据转换规则和目标数据输出配置信息;针对所述源数据集中的各个源数据,根据所述数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集,其中所述多种目标数据格式是所述至少一个异构数据源所适用的数据格式;针对所述源数据集中的各个源数据所对应的目标数据集,基于所述目标数据输出配置信息,将相应的目标数据集中的各个目标数据分别输出至对应的各个数据源。

第二方面,本申请实施例提供一种服务器集群数据同步装置,包括:源数据读取单元,被配置为根据预配置的etl配置数据中的数据源读取配置信息,从至少一个异构数据源中读取源数据集,所述etl配置数据还包括数据转换规则和目标数据输出配置信息;数据转换单元,被配置为针对所述源数据集中的各个源数据,根据所述数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集,其中所述多种目标数据格式是所述至少一个异构数据源所适用的数据格式;数据输出单元,被配置为针对所述源数据集中的各个源数据所对应的目标数据集,基于所述目标数据输出配置信息,将相应的目标数据集中的各个目标数据分别输出至对应的各个数据源。

第三方面,本申请实施例提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法的步骤。

第四方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

本申请实施例的有益效果在于:在服务器节点中设置etl配置数据,将服务器集群中的各个异构数据源的数据进行抽取、转换并加载,这里通过数据转换规则可以实现将源数据转换为具有各种目标数据格式的各个目标数据,并将目标数据输出至各个数据源。由此,通过在服务器节点中进行组件配置的方式灵活地实现了数据同步过程,具有较好的扩展性。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据本申请实施例的服务器集群数据同步方法的一示例的流程图;

图2示出了根据本申请实施例的服务器集群数据同步方法的一示例的架构示意图;

图3示出了根据本申请实施例的服务器集群数据同步方法的一示例的流程图;以及

图4示出了根据本申请的实施例的服务器集群数据同步装置的一示例的方框图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

在本申请中,“模块”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。

最后,还需要说明的是,在本文中,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在本文中,术语“元素”可以表示用来描述数据或文件的数据,例如元素可以是元数据、被封装的索引数据等。术语“对话流程架构”可以表示对话流程的结构,例如可以表示多个顺序连接的流程节点。此外,“节点类型”可以表示在流程中起到不同功能或位于不同的特定位置的节点,例如节点类型可以是对话节点、开始节点、函数节点、填槽节点和跳转节点等。

图1示出了根据本申请实施例的服务器集群数据同步方法的一示例的流程图。需说明的是,服务器集群包括多个服务器节点,该方法可以是由服务器节点来执行的,例如各个服务器节点。

如图1所示,在步骤110中,根据预配置的etl配置数据中的数据源读取配置信息,从至少一个异构数据源中读取源数据集。另外,etl配置数据还包括数据转换规则和目标数据输出配置信息。这里,etl配置数据可以是通过组件的形式配置到服务器节点中的。在本实施例的一个示例中,可以将各个服务器节点都设置相同的etl组件配置。

需说明的是,源数据可以是指在异构数据源中需要同步的数据。例如,在首次进行数据同步操作时,各个异构数据源中的所有数据都是需要进行同步的源数据。并且,在之后的数据同步操作的过程中,各个异构数据源中存在更新的数据才是需要进行同步的源数据。

在本实施例的一个示例中,数据源读取配置信息可以包括数据同步模式。当数据同步模式指示实时同步模式时,实时地从至少一个异构数据源中采集源数据集。另外,当数据同步模式指示离线同步模式时,根据设定时间周期从至少一个异构数据源中采集源数据集,由此,通过组件配置,可以灵活地配置数据同步的模式。应理解的是,设定时间周期的具体时长可以根据实际需求而定,在此应不加限制。

在步骤120中,针对源数据集中的各个源数据,根据数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集,其中多种目标数据格式是至少一个异构数据源所适用的数据格式。这里,数据转换规则可以是针对各种目标数据格式而设置的,例如服务器集群中的各个异构数据源一共支持10种数据格式,则数据转换规则可以将源数据转换为具有对应10种数据格式的10组目标数据。

在本实施例的一个示例中,可以根据第一数据转换规则将源数据集中的各个源数据分别转换为具有设定数据结构格式的相应的中间数据。进而,针对各个相应的中间数据,根据各个第二数据转换规则将该相应的中间数据分别转换为具有多种目标数据格式的目标数据。这里,设定数据结构格式可以是dataframe数据格式,能够快速有效地实现在源数据与目标数据之间的格式转换。

在一些实施方式中,在进行数据转换操作之前,还可以将所读取的源数据集中的各个源数据进行数据脱敏处理。这里,数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现对敏感隐私数据的可靠保护。另外,可以采用各种数据脱敏方式进行处理,在此应不加限制,

在步骤130中,针对源数据集中的各个源数据所对应的目标数据集,基于目标数据输出配置信息,将相应的目标数据集中的各个目标数据分别输出至对应的各个数据源。例如,目标数据输出配置信息记录了各个数据源所适用的数据格式,利用该目标数据输出配置信息可以将对应数据格式的目标数据输出到相匹配的数据源。

在本实施例的一个示例中,至少一个异构数据源包括至少一个服务器节点中的异构数据源。这样,服务器节点不仅能将本地的各个异构数据源进行同步,还能够将其他服务器节点的异构数据源进行同步,例如实现同步服务器集群下所有异构数据源中的数据。在一些应用场景下,当第一服务器节点接收到关于相耦接的第二服务器节点出现数据同步故障(例如,组件故障)的同步故障信号时,第一服务器节点可以将第二服务器节点的异构数据源中的数据进行同步。

图2示出了根据本申请实施例的服务器集群数据同步方法的一示例的架构示意图。在本示例中,服务器集群包括hadoop分布式文件系统和spark集群分析单元。

如图2所示,用户可以预先将与etl相关的配置信息写入到etl配置数据中,例如etl配置数据中包括数据源地址信息、实时或离线的任务模式、字段格式转换信息和数据输出地址等。这里,利用命令行方式可以直接将此任务和组件打包运行在hadoop集群上。

在执行数据同步任务时,基于etl配置数据来调用例如源数据读取(source)模块、转换(action)模块和输出(sink)模块这三个etl模块,来进行各自的操作,可以支持各种异构数据源的离线数据和实时数据的同步,并具有较强的稳定性,能够在大数据量背景下适用。在一些实施方式中,源数据读取模块、转换模块和输出模块共同组成了数据同步组件。

在本实施例的示例中,组件可以是基于spark而开发的,依托于hadoop和spark,在大数据量场景下能够取得较佳的实践效果。另外,由于数据同步组件可以在hadoop集群模式下运行,可以根据处理的数据量很方便的弹性扩容,理论上可以离线处理几十tb甚至pb级的数据量,实时处理tb级别的数据量。由于hadoop的稳定性目前在业内得到了一致的认可,本组件也是在hadoop集群下运行,稳定性非常可靠,任务失败可以零感知转移。

此外,本实施例中的流式处理过程可以是采用基于spark的流式处理而开发的,无论在实时的处理能力以及数据时效性上都有很好的表现。

结合如图2的示例,在etl配置数据中定义了任务的启动模式,以及数据清洗的数据源、数据清洗的字段信息、数据写出数据源的信息等。这样,用户可以通过etl配置数据来调用各个etl模块进行操作。

源数据读取模块可以支持各种异构数据源,以进行源数据读取。这里,异构数据源可以是mysql、oracle、kafka、hive、hbase等。

转换模块可以支持数据格式转换,并且数据转换可以支持sql操作、自定义类,同时也可以嵌入函数进行数据脱敏等操作。

输出模块可以用于在数据经过处理后,将数据写入各种数据源。例如,mysql、mongodb、hbase、hdfs等。

图3示出了根据本申请实施例的服务器集群数据同步方法的一示例的流程图。

如图3所示,在步骤310中,读取数据同步任务模式。这里,组件可以支持离线和实时两种任务模式。另外,通过解析etl配置数据可以确定针对各个数据源分别采用何种读取方式。

在步骤320中,根据任务模式来读取源数据。这里,从不同数据源拉取过来的源数据会被统一抽象成dataframe,并以dataframe的形式统一地进行转换操作。

在步骤330中,对源数据进行格式转换和清洗。这里,可以是调用转换模块来使用sql、自定义类、字段映射等多种形式对数据进行转换和清洗。

在步骤340中,将转换并清洗后的数据提供给输出模块,输出模块会根据配置信息将数据写入各式各样的数据仓库。

本申请实施例的服务器集群数据同步方法已经在一些服务器集群中经过了试运行,并取得了较佳的试验数据。

具体地,一方面,通过在服务器节点上配置该数据同步组件,实现了对近200个实时任务和300多个离线任务进行etl处理,每天实时处理几十tb的数据量,并离线处理几百tb的数据量。

另一方面,之前所使用的etl组件较容易出现故障,稳定性较差,一般每3天左右都会有一次小事故。另外,数据晚高峰时数据会有1个小时左右的延时,时效性也不能保证。在为各个服务器节点配置了本申请实施例中的etl组件之后,几个月才会出一些小问题,几乎没有事故发生。此外,晚高峰时的延时在几分钟左右,而且可以通过修改参数对任务进行水平扩展增大数据处理能力,可将数据延时降到更低。

又一方面,在本实施例中,一旦某一节点出现硬件级别的故障,任务也会被转移到其他节点继续执行,能够保障服务器集群的etl任务稳定运行。

图4示出了根据本申请的实施例的服务器集群数据同步装置的一示例的结构框图。

如图4所示,服务器集群数据同步装置400包括源数据读取单元410、数据转换单元420和数据输出单元430。

源数据读取单元410被配置为根据预配置的etl配置数据中的数据源读取配置信息,从至少一个异构数据源中读取源数据集,所述etl配置数据还包括数据转换规则和目标数据输出配置信息。源数据读取单元410的操作可以参照上面参考图1中的步骤110的描述。

数据转换单元420被配置为针对所述源数据集中的各个源数据,根据所述数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集,其中所述多种目标数据格式是所述至少一个异构数据源所适用的数据格式。数据转换单元420的操作可以参照上面参考图1中的步骤120的描述。

数据输出单元430被配置为针对所述源数据集中的各个源数据所对应的目标数据集,基于所述目标数据输出配置信息,将相应的目标数据集中的各个目标数据分别输出至对应的各个数据源。数据输出单元430的操作可以参照上面参考图1中的步骤130的描述。

上述本申请实施例的装置可用于执行本申请中相应的方法实施例,并相应的达到上述本申请方法实施例所达到的技术效果,这里不再赘述。

本申请实施例中可以通过硬件处理器(hardwareprocessor)来实现相关功能模块。

另一方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该程序被处理器执行如上的服务器集群数据同步方法的步骤。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的定制客户端以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)其他具有数据交互功能的电子装置。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。


技术特征:

1.一种服务器集群数据同步方法,所述服务器集群包括多个服务器节点,所述方法由所述服务器节点执行,所述方法包括:

根据预配置的etl配置数据中的数据源读取配置信息,从至少一个异构数据源中读取源数据集,所述etl配置数据还包括数据转换规则和目标数据输出配置信息;

针对所述源数据集中的各个源数据,根据所述数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集,其中所述多种目标数据格式是所述至少一个异构数据源所适用的数据格式;

针对所述源数据集中的各个源数据所对应的目标数据集,基于所述目标数据输出配置信息,将相应的目标数据集中的各个目标数据分别输出至对应的各个数据源。

2.如权利要求1所述的方法,其中,所述数据源读取配置信息包括数据同步模式,所述根据预配置的etl配置数据中的数据源读取配置信息,从至少一个异构数据源中读取源数据集包括:

当所述数据同步模式指示实时同步模式时,实时地从至少一个异构数据源中采集源数据集;

当所述数据同步模式指示离线同步模式时,根据设定时间周期从至少一个异构数据源中采集源数据集。

3.如权利要求1所述的方法,其中,所述至少一个异构数据源包括至少一个服务器节点中的异构数据源。

4.如权利要求1所述的方法,其中,所述针对所述源数据集中的各个源数据,根据所述数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集包括:

根据第一数据转换规则将所述源数据集中的各个源数据分别转换为具有设定数据结构格式的相应的中间数据;

针对各个所述相应的中间数据,根据各个第二数据转换规则将该相应的中间数据分别转换为具有多种目标数据格式的目标数据。

5.如权利要求4所述的方法,其中,所述设定数据结构格式包括dataframe数据格式。

6.如权利要求1所述的方法,其中,在所述针对所述源数据集中的各个源数据,根据所述数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集之前,所述方法还包括:

将所读取的源数据集中的各个源数据进行数据脱敏处理。

7.如权利要求1所述的方法,其中,所述服务器集群包括hadoop分布式文件系统和spark集群分析单元。

8.一种服务器集群数据同步装置,包括:

源数据读取单元,被配置为根据预配置的etl配置数据中的数据源读取配置信息,从至少一个异构数据源中读取源数据集,所述etl配置数据还包括数据转换规则和目标数据输出配置信息;

数据转换单元,被配置为针对所述源数据集中的各个源数据,根据所述数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集,其中所述多种目标数据格式是所述至少一个异构数据源所适用的数据格式;

数据输出单元,被配置为针对所述源数据集中的各个源数据所对应的目标数据集,基于所述目标数据输出配置信息,将相应的目标数据集中的各个目标数据分别输出至对应的各个数据源。

9.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1到7中任一项所述方法的步骤。

10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1到7中任一项所述方法的步骤。

技术总结
本发明公开一种服务器集群数据同步方法及装置。在该方法中,服务器节点根据预配置的ETL配置数据中的数据源读取配置信息,从至少一个异构数据源中读取源数据集,所述ETL配置数据还包括数据转换规则和目标数据输出配置信息;针对源数据集中的各个源数据,根据数据转换规则将相应的源数据转换为具有多种目标数据格式的数据,以得到目标数据集,其中多种目标数据格式包括至少一个异构数据源所适用的数据格式;针对源数据集中的各个源数据所对应的目标数据集,基于目标数据输出配置信息,将相应的目标数据集中的各个目标数据分别输出至对应的各个数据源。由此,通过在服务器节点中进行组件配置的方式灵活地实现了数据同步过程,具有较好的扩展性。

技术研发人员:赵伟
受保护的技术使用者:苏州思必驰信息科技有限公司
技术研发日:2020.01.17
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-25244.html

最新回复(0)