一种数据同步方法、系统及存储介质与流程

文档序号:26139771发布日期:2021-08-03 14:23阅读:64来源:国知局
一种数据同步方法、系统及存储介质与流程

本申请涉及大数据技术领域,尤其涉及一种数据同步方法、系统及存储介质。



背景技术:

常见的数据同步方式有基于oracle和mongodb(一种基于分布式文件存储的数据库)的数据同步方式。这种数据同步方式从hive数据库服务器中,将数据通过sqoop(一种数据转移工具)导入到oracle数据库服务器,再将数据从oracle数据库服务器经kettle(一种数据迁移工具)导入到mongodb数据库服务器中。之后在mongodb中执行一系列操作后,最后再通过kettle,将数据从mongodb导出到oracle的过程。然而,这种数据同步方式每次数据搬迁都需要耗费大量的时间,这就导致每个月只能做一次全量同步,每天的增量同步受到较大限制。并且,当数据同步需求变更时,这种数据同步方式也无法响应变更的需求以实时进行数据同步。



技术实现要素:

本申请实施例提供了一种数据同步方法、系统及存储介质,可以满足对数据同步效率和实时性的需求。

第一方面,本申请实施例提供了一种数据同步方法,包括:

应用服务设备发送数据同步指令至第一数据库服务器;

所述第一数据库服务器在接收到所述数据同步指令后,根据配置的资源池表的表名以及配置的字段信息创建目标表,并通过第二数据库服务器获取所述目标表的字段信息对应的用户数据以添加至所述目标表中;

所述第一数据库服务器利用所述目标表更新所述资源池表;

所述应用服务设备发送资源调度指令至所述第一数据库服务器;

所述第一数据库服务器在接收到所述资源调度指令后,从所述资源池表筛选出用户数据集合,将所述用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中;

第三数据库服务器通过所述应用服务设备或所述第一数据库服务器获取包括目标子用户数据集合的目标渠道表以进行存储。

可选的,所述第一数据库服务器通过第二数据库服务器获取所述目标表的字段信息对应的用户数据以添加至所述目标表中,包括:

所述第一数据库服务器获取配置的源表中的字段信息与目标表的字段信息的映射关系;

所述第一数据库服务器根据所述源表中的字段信息与目标表的字段信息的映射关系以及所述第二数据库服务器包括的所述源表,获取所述目标表的字段信息对应的用户数据以添加至所述目标表中。

可选的,所述第一数据库服务器根据所述源表中的字段信息与目标表的字段信息的映射关系以及所述第二数据库服务器包括的所述源表,获取所述目标表的字段信息对应的用户数据以添加至所述目标表中,包括:

所述第一数据库服务器根据第二数据库服务器包括的所述源表,获取所述源表所在目录中各个文件的文件信息,所述文件信息包括文件路径和文件格式;

所述第一数据库服务器基于所述各个文件的文件信息创建源表映射表;

所述第一数据库服务器根据源表映射表以及配置的源表中的字段信息与目标表的字段信息的映射关系,从所述源表所在目录获取所述目标表的字段信息对应的用户数据,并将所述用户数据写入所述目标表中。

可选的,所述方法还包括:

所述应用服务设备输出同步任务配置页面,所述同步任务配置页面用于获取所述同步任务的任务数据,所述同步任务的任务数据包括第一配置信息,所述第一配置信息包括所述资源池表所在资源池的第一信息和/或执行数据同步操作的脚本文件;

所述应用服务设备获取对所述同步任务的任务数据的反馈;

所述应用服务设备执行所述同步任务,并根据所述第一配置信息生成数据同步指令。

可选的,所述方法还包括:

所述应用服务设备输出调度任务配置页面,所述调度任务配置页面用于获取所述调度任务的任务数据,所述调度任务的任务数据包括第二配置信息,所述第二配置信息包括所述资源池表所在资源池的第二信息和/或执行资源调度操作的脚本文件;

所述应用服务设备获取对所述调度任务的调度数据的反馈;

所述应用服务设备执行所述调度任务,并根据所述第二配置信息生成资源调度指令。

可选的,所述第三数据库服务器通过所述应用服务设备获取包括目标子用户数据集合的目标渠道表以进行存储,包括:

所述应用服务设备运行离线同步工具,以根据所述离线同步工具执行的文件从所述第一数据库服务器获取包括目标子用户数据集合的目标渠道表,并将所述目标渠道表发送至第三数据库服务器以进行存储。

可选的,所述方法还包括:

所述应用服务设备确定待同步的渠道表,所述待同步的渠道表包括所述目标渠道表;

所述应用服务设备根据所述待同步的渠道表生成所述离线同步工具执行的文件。

可选的,所述应用服务设备根据所述待同步的渠道表生成所述离线同步工具执行的文件,包括:所述应用服务设备获取维护的渠道信息;

所述应用服务设备在确定所述待同步数据的渠道表对应的渠道为实时渠道时,根据维护的渠道信息包括的目标渠道信息生成离线同步工具执行的文件,所述目标渠道信息为所述待同步的渠道表对应的渠道信息。

第二方面,本申请实施例提供了一种数据同步系统,包括:

应用服务设备,用于发送数据同步指令至第一数据库服务器;

所述第一数据库服务器,用于在接收到所述数据同步指令后,根据配置的资源池表的表名以及配置的字段信息创建目标表,并通过第二数据库服务器获取所述目标表的字段信息对应的用户数据以添加至所述目标表中;

所述第一数据库服务器,还用于利用所述目标表更新所述资源池表;

所述应用服务设备,还用于发送资源调度指令至所述第一数据库服务器;

所述第一数据库服务器,还用于在接收到所述资源调度指令后,从所述资源池表筛选出用户数据集合,将所述用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中;

第三数据库服务器,用于通过所述应用服务设备或所述第一数据库服务器获取包括目标子用户数据集合的目标渠道表以进行存储。

第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面所述第一数据库服务器执行的步骤,或实现如第一方面所述应用服务设备执行的步骤。

综上所述,应用服务设备可以发送数据同步指令至第一数据库服务器,以使第一数据库服务器根据配置的资源池表的表名以及配置的字段信息创建目标表,并通过第二数据库服务器获取目标表的字段信息对应的用户数据以添加至目标表并更新资源池表;应用服务设备可以发送资源调度指令至第一数据库服务器,以使第一数据库服务器从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合以写入对应的渠道表中;第三数据库服务器可以通过应用服务设备或第一数据库服务器获取包括目标子用户数据集合的目标渠道表以进行存储。相较于现有技术的数据同步方式,本申请实施例基于应用服务设备、第一数据库服务器、第二数据库服务器等实现的数据同步方案,可以满足对数据同步效率和实时性的需求。

附图说明

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

图1是本申请实施例提供的一种数据同步系统的网络架构示意图;

图2是本申请实施例提供的一种数据同步方法的流程示意图;

图2a是本申请实施例提供的一种同步任务配置页面的示意图;

图2b是本申请实施例提供的另一种同步任务配置页面的示意图;

图2c是本申请实施例提供的另一种同步任务配置页面的示意图;

图2d是本申请实施例提供的一种数据筛选条件配置页面的示意图;

图2e是本申请实施例提供的一种名单类型设置页面的示意图;

图3a是本申请实施例提供的一种渠道信息设置页面的示意图;

图3b是本申请实施例提供的一种资源池与渠道之间的关联关系设置页面的示意图;

图4a是本申请实施例提供的一种调度任务配置页面的示意图;

图4b是本申请实施例提供的另一种调度任务配置页面的示意图;

图4c是本申请实施例提供的一种筛选页面的示意图;

图4d是本申请实施例提供的一种切分页面的示意图;

图4e是本申请实施例提供的另一种切分页面的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

请参阅图1,为本申请实施例提供的一种数据同步系统的网络架构示意图。图1所示的数据同步系统包括应用服务设备10、数据库服务器20、数据库服务器30、数据库服务器40。数据库服务器20对应第一数据库服务器,数据库服务器30对应第二数据库服务器,数据库服务器40对应第三数据库服务器。在一个应用场景中,所述的应用服务设备10可以为应用服务器。所述的数据库服务器20可以为clickhouse数据库服务器。clickhouse是一个面向联机分析处理(olap)的开源的面向列式存储的数据库管理系统dbms。数据库服务器30可以为hive数据库服务器。数据库服务器40可以为oracle数据库服务器。其中:

应用服务设备10,可以用于发送数据同步指令至数据库服务器20,还可以用于发送资源调度指令至数据库服务器20。在一个实施例中,应用服务设备还可以用于从数据库服务器20获取包括目标子用户数据集合的目标渠道表,将目标渠道表发送至数据库服务器40以进行存储。其中,数据同步指令可以用于触发数据库服务器20根据配置的资源池表名以及配置的字段信息创建目标表。或数据同步指令还可以用于使得数据库服务器20根据数据同步指令获取配置的资源池表名以及配置的字段信息,从而根据配置的资源池表名以及配置的字段信息创建目标表。调度指令可以用于触发数据库服务器20从资源池表筛选出用户数据集合。或调度指令还用于使得数据库服务器20根据调度指令从资源池表筛选出用户数据集合。可见,应用服务设备10可以实现对数据同步的控制以及资源调度的控制等功能。

数据库服务器20,可以用于在接收到数据同步指令后,根据配置的资源池表的表名以及配置的字段信息创建目标表,并通过数据库服务器30获取目标表的字段信息对应的用户数据以添加至目标表中利用目标表更新资源池表。数据库服务器20,并还用于在接收到资源调度指令后,从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。在一个实施例中,数据库服务器20还可以在检测到渠道下发指令时,将所述目标渠道表发送至第三数据库服务器以进行存储。可见,数据库服务器20能够实现数据同步以及资源调度等功能。由此可见,数据库服务器40可以通过应用服务设备10或数据库服务器40获取到目标渠道表以进行存储。具体地:

在图1所示的数据同步系统中,结合图1所述的步骤1-9来看,应用服务设备10可以发送数据同步指令至数据库服务器20。数据库服务器20在接收到数据同步指令后,可以根据配置的资源池表的表名以及配置的字段信息创建目标表,并通过数据库服务器30获取目标表的字段信息对应的用户数据以添加至目标表中。数据库服务器20在将用户数据添加到目标表后,便可利用目标表更新资源池表。之后,应用服务设备10可以发送资源调度指令至数据库服务器20。数据库服务器20在接收到资源调度指令后,可以从资源池表筛选出用户数据集合,并将用户数据集合划分为多个子用户数据集合以写入该子用户数据集合对应的渠道表中。数据库服务器40可以通过应用服务设备10或数据库服务器20获取包括目标子用户数据集合的目标渠道表,该过程可以通过以下两种方式实现。一种方式是,应用服务设备10可以从数据库服务器20获取包括目标子用户数据集合的目标渠道表,并将目标渠道表发送至数据库服务器40以进行存储。另一种方式是,数据库服务器20可以在检测到渠道下发指令时,将目标渠道表发送至数据库服务器40以进行存储。该过程能够通过应用服务设备10和数据库服务器20配合,实现将数据通过数据库服务器30同步到数据库服务器40。并在数据库服务器20中按照资源运营的要求,执行资源的划分等运营动作,最后将数据从数据库服务器20导出到数据库服务器40。相较于基于oracle和mongodb实现的数据同步方案,本申请基于数据同步系统实现的数据同步方案在下发容量、同步性能上均有显著提升,并且过程中各种运营操作的执行效率也有不同程度的提升,有效地缩短了常规运营管理时间。

请参阅图2,为本申请实施例提供的一种数据同步方法的流程示意图,该方法可以应用于前述提及的数据同步系统中。该方法包括以下步骤:

s201、应用服务设备发送数据同步指令至第一数据库服务器。

在一个实施例中,应用服务设备可以执行同步任务,以发送数据同步指令至第一数据库服务器。在一个实施例中,应用服务设备可以通过xxl-job(一种分布式任务调度平台)设置同步任务。

在一个实施例中,所述的同步任务可以为发送数据同步指令至第一数据库服务器的任务。应用服务设备可以定时执行同步任务,以定时发送数据同步指令至第一数据库服务器。其中,数据同步指令例如可以为数据库操作语句,如sql语句。在一个实施例中,数据同步指令可以携带第一配置信息。第一配置信息可以包括资源池表所在资源池的第一信息。第一信息可以包括资源池表的表名。在一个实施例中,第一信息还可以包括资源池名称。或,第一配置信息可以包括所述的第一信息以及配置的字段信息。或,第一配置信息可以包括所述的第一信息以及执行数据同步操作的脚本文件(包括脚本命令)。或,第一配置信息可以包括执行数据同步操作的脚本文件,该执行数据同步操作的脚本文件可以根据所述的第一信息、配置的字段信息生成。此处的执行数据同步操作,即为根据配置的资源池表的表名和配置的字段信息创建目标表,并通过第二数据库服务器获取目标表的字段信息对应的用户数据以添加至目标表中。

在一个实施例中,应用服务设备可以输出同步任务配置页面(如图2a-图2c所示的页面),如应用服务设备可以通过终端设备(图1未示)输出同步任务配置页面,同步任务配置页面可以用于获取同步任务的任务数据。同步任务的任务数据可以包括所述的第一信息、配置的同步任务的任务信息(如同步任务的任务名、同步任务的执行时间)、配置的字段信息,等等。其中,同步任务的任务数据可以包括上述提及的第一配置信息。在一个应用场景中,应用服务设备在通过终端设备输出同步任务配置页面后,相关人员可以通过终端设备基于同步任务配置页面配置同步任务的任务数据,在配置完成后,终端设备可以获取同步任务的任务数据,并将同步任务的任务数据反馈到应用服务设备。至此,应用服务设备可以通过包括上述方式在内的各种方式获取对同步任务的任务数据的反馈,而后(可按照同步任务的任务信息)执行同步任务,并根据第一配置信息生成数据同步指令,以发送数据同步指令至第一数据库服务器。

s202、所述第一数据库服务器在接收到所述数据同步指令后,根据配置的资源池表的表名以及配置的字段信息创建目标表,并通过第二数据库服务器获取所述目标表的字段信息对应的用户数据以添加至所述目标表中。

本申请实施例中,第一数据库服务器在接收到数据同步指令后,可以根据配置的资源池表的表名以及配置的字段信息(此处为目标表的字段信息)创建目标表。在一个实施例中,第一数据库服务器具体可以根据配置的资源池表的表名获得目标表的表名,并根据目标表的表名以及配置的字段信息生成目标表的表结构数据。在一个实施例中,在第一配置信息包括第一信息时,第一数据库服务器可以获取数据同步指令携带的第一信息,根据第一信息包括的资源池表的表名获得目标表的表名,并根据目标表的表名以及配置的字段信息生成目标表的表结构数据,此处配置的字段信息可以是根据资源池表的表名查找到的。或,在第一配置信息包括第一信息以及配置的字段信息时,第一数据库服务器可以获取数据同步指令携带的第一信息以及配置的字段信息,从而根据第一信息包括的资源池表的表名获得目标表的表名,并根据目标表的表名以及配置的字段信息生成目标表的表结构数据。或,在第一配置信息包括第一信息、配置的字段信息以及配置的执行数据同步操作的脚本文件时,第一数据库服务器可以获取数据同步指令携带的第一信息、配置的字段信息以及配置的执行数据同步操作的脚本文件,然后运行执行数据同步操作的脚本文件,以根据第一信息包括的资源池表的表名获得目标表的表名,并根据目标表的表名以及配置的字段信息生成目标表的表结构数据。或,在数据同步指令携带配置的执行数据同步操作的脚本文件,该执行数据同步操作的脚本文件根据第一信息、配置的字段信息生成时,第一数据库服务器可以获取数据同步指令携带的执行数据同步操作的脚本文件,然后运行执行数据同步操作的脚本文件,以根据第一信息包括的资源池表的表名获得目标表的表名,并根据目标表的表名以及配置的字段信息生成目标表的表结构数据。

在一个实施例中,目标表的表名可以与资源池表的表名完全一致或部分一致。其中,目标表的表名可以包括源表的表名,或可以包括源表的表名和第一时间戳。第一时间戳为创建目标表的时间戳。例如,表结构数据可以包括配置的字段信息,配置的字段信息可以与源表中的字段信息对应,如配置的字段信息可以为源表中的字段信息。字段信息可以包括字段名。例如,字段名可以包括用户标识(如用户姓名或用户帐号等用于唯一标识用户的信息)的字段名和用户标签(如性别、年龄、居住地等标签)的字段名。在一个实施例中,字段信息还可以包括字段名对应可选的字段值,如用户标签的字段名对应的可选的字段值,如对于性别,其可选的字段值可以为男和女。

在一个实施例中,第一数据库服务器在创建目标表后,可以通过第二数据库服务器获取目标表的字段信息对应的用户数据以添加至目标表中。在一个实施例中,第一数据库服务器具体可以获取源表中的字段信息与目标表的字段信息的映射关系,并根据源表中的字段信息与目标表的字段信息的映射关系以及第二数据库服务器包括的源表,获取目标表的字段信息对应的用户数据以添加至目标表中。在一个实施例中,第一数据库服务器具体可以根据第二数据库服务器包括的源表,获取源表所在目录中各个文件的文件信息,并基于各个文件的文件信息创建源表映射表。之后,第一数据库服务器根据源表映射表以及配置的源表中的字段信息与目标表的字段信息的映射关系、从源表所在目录获取目标表的字段信息对应的用户数据,并将用户数据写入目标表中。其中,文件信息可以包括文件路径和文件格式。文件路径可以包括文件地址、文件名等信息。在一个实施例中,文件路径还可以包括文件存储服务器的地址信息(如文件存储服务器的端口号)。文件路径可以用于找到对应的文件。源表映射表可以包括目标表的字段信息。

在一个实施例中,第一数据库服务器可以设有文件引擎,文件引擎可以实现从文件存储服务器获取源表所在目录的各个文件的文件信息,以及从源表所在目录获取目标表的字段信息对应的用户数据等功能。在一个应用场景中,在第一数据库服务器为clickhouse数据库服务器且第二数据库服务器为hive数据库服务器时,所述的文件引擎可以为hdfs(一种分布式文件系统)引擎,所述的文件存储服务器可以为hdfs服务器。在此场景下,clickhouse数据库服务器可以通过hdfs引擎调用hadoopapi以根据源表映射表以及配置的源表中的字段信息与目标表的字段信息的映射关系,从源表所在目录获取目标表的字段信息对应的用户数据,并将用户数据写入目标表中。在此场景下,源表映射表的表名如可以为以_hdfs结尾的表名。

在一个实施例中,第一数据库服务器在从源表所在目录获取到目标表的字段信息对应的用户数据后,可以先将用户数据写入源表映射表中,然后再从源表映射表读出用户数据,从而将用户数据写入至目标表中。在一个实施例中,第一数据库服务器可以通过以下数据库操作语句:insertinto_timestamp表select字段信息fromhdfs引擎表,实现将源表映射表包括的该用户数据写入至目标表中。其中_timestamp表在此处表示表名以_timestamp结尾的目标表。timestamp为时间戳。hdfs引擎表表示源表映射表。

在一个实施例中,由于第一数据库服务器可能存有前一次根据资源池表名和配置的字段信息创建的表,为了避免数据更新重复,因此第一数据库服务器可以在本次创建目标表后或将用户数据写入目标表后,删除前一次根据资源池表名和配置的字段信息创建的表。其中,前一次根据资源池表名和配置的字段信息创建的表的表名可以包括源表的表名,或包括源表的表名和第二时间戳。其中,第二时间戳在第一时间戳之前。

在一个实施例中,在从源表同步数据到目标表的过程中,可以无需全表同步,而是可以结合数据筛选条件进行同步。在一个实施例中,数据筛选条件可以通过如图2d所示的页面设置。图2d所示的页面可以由应用服务设备提供。也就是说,第一数据库服务器根据源表中的字段信息与目标表的字段信息的映射关系以及第二数据库服务器包括的源表,获取目标表的字段信息对应的用户数据以添加至目标表的过程,还可以为第一数据库服务器根据此处配置的数据筛选条件、源表中的字段信息与目标表的字段信息的映射关系以及第二数据库服务器包括的源表,获取目标表的字段信息对应的用户数据以添加至目标表。需要说明的是,数据筛选条件决定数据筛选范围,不决定字段范围,采用该过程可以筛选出符合数据筛选条件的用户数据,比如筛选出在指定列范围的用户数据。

在一个实施例中,应用服务设备还可以输出名单类型设置页面(如图2e所示的页面),以获取资源池所支持的名单类型的反馈。此名单类型会在后面的筛选页面、切分页面、透视页面上进行展示。

s203、所述第一数据库服务器利用所述目标表更新所述资源池表。

本申请实施例中,第一数据库服务器在将用户数据添加至目标表后,可以利用目标表更新资源池表,以便后续基于该资源池表进行资源调度。在一个实施例中,第一数据库服务器利用目标表更新资源池表的方式可以为:第一数据库服务器将目标表的用户数据更新至资源池表。或,第一数据库服务器利用目标表更新资源池表的方式可以为:第一数据库服务器根据目标表构建包括目标表的用户数据的资源池表。在一个实施例中,资源池表的表结构数据可以与目标表的表结构数据保持一致。基于oracle和mongodb实现的数据同步方案,如果需要新增资源池、新增标签或删除标签,全部需要重新进行版本开发,而本申请实施例可通过应用服务设备在线配置,实时生效,快速满足用户新增资源池及标签变更的需求,提高了用户需求响应时效,降低了开发成本。

在一个实施例中,为了实现资源调度,应用服务设备还可以做如下准备工作:

1、维护渠道信息。渠道信息可以包括渠道的基本信息和渠道的字段信息等等信息,参见图3a。渠道的基本信息包括渠道名、渠道表的表名等信息。渠道的字段信息对应渠道表的字段信息。渠道表为渠道对应的数据表。渠道指示了针对渠道表中各用户数据对应的用户的触达方式,如派发任务、下发名单、ai外呼、短信发送。

2、维护资源池与渠道之间的关联关系。关联关系包括资源池与渠道之间的对应关系、资源池的除重字段名(对应资源池表的除重字段名)与渠道的除重字段名(对应渠道表的除重字段名)之间的对应关系、渠道的除重天数(对应渠道表的除重天数)等信息,参见图3b。在一个实施例中,关联关系还可以资源池的字段信息与渠道的字段信息之间的对应关系。

s204、所述应用服务设备发送资源调度指令至所述第一数据库服务器。

s205、所述第一数据库服务器在接收到所述资源调度指令后,从所述资源池表筛选出用户数据集合,将所述用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。

本申请实施例中,在资源调度过程中,应用服务设备可以发送资源调度指令至第一数据库服务器。第一数据库服务器在接收到资源调度指令后,可以从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。

在一个实施例中,应用服务设备可以执行调度任务,以发送资源调度指令至第一数据库服务器。在一个实施例中,所述的调度任务可以为发送资源调度指令至第一数据库服务器的任务。应用服务设备可以定时执行调度任务,以定时发送资源调度指令至第一数据库服务器。其中,资源调度指令例如可以为数据库操作语句,如sql语句。资源调度指令与前述的数据同步指令不同。资源调度指令可以携带第二配置信息。第二配置信息可以包括资源池表所在资源池的第二信息。其中,第二信息可以包括资源池的名称。在一个实施例中,第二信息还可以包括资源池表的表名。或,第二配置信息可以包括所述的第二信息和资源调度的流程数据。或,第二配置信息可以包括所述的第二信息、资源调度的流程数据、以及执行资源调度操作的脚本文件(包括脚本命令)。或,第二配置信息可以包括执行资源调度操作的脚本文本,此处执行资源调度操作的脚本文件可以根据所述的第二信息和资源调度的流程数据生成。此处的资源调度为从资源池表中筛选出用户数据集合,将用户数据集合切分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。在一个实施例中,所述的渠道表保存在第一数据库服务器中。

在一个实施例中,应用服务设备可以输出调度任务配置页面(如图4a-图4b所示的页面),如通过终端设备输出调度任务配置页面。调度任务配置页面用于获取调度任务的任务数据。调度任务的任务数据可以包括所述的第二信息、配置的调度任务的任务信息(如调度任务的任务名、调度任务的执行时间)、资源调度的流程数据,等等。其中,调度任务的任务数据可以包括上述提及的第二配置信息。在一个应用场景中,应用服务设备在通过终端设备输出调度任务配置页面后,相关人员可以通过终端设备基于调度任务配置页面配置调度任务的任务数据,在配置完成后,终端设备可以获取调度任务的任务数据,并将调度任务的任务数据反馈到应用服务设备。至此,应用服务设备可以通过包括上述方式在内的各种方式获取对调度任务的任务数据的反馈,而后(可按照调度任务的执行时间)执行调度任务,并根据第二配置信息生成资源调度指令。以发送资源调度指令至第一数据库服务器。

在一个实施例中,在第二配置信息包括第二信息时,第一数据库服务器在接收到资源调度指令后,可以获取资源调度指令携带的第二信息,根据第二信息包括的资源池名查找到资源池表,从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。在一个实施例中,第一数据库服务器从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合的过程可以是基于第一数据库服务器保存的资源调度的流程数据和/或执行资源调度操作的脚本文件实现的。第一数据库服务器保存的资源调度的流程数据和/或执行资源调度操作的脚本文件,可以由应用服务设备发送至第一数据库服务器。或,在第二配置信息包括第二信息和资源调度的流程数据时,第一数据库服务器在接收到资源调度指令后,可以获取资源调度指令携带的第二信息以及资源调度的流程数据,根据第二信息包括的资源池名查找到资源池表,根据资源调度的流程数据从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。或,在第二配置信息包括第二信息、资源调度的流程数据以及执行资源调度操作的脚本文件时,第一数据库服务器在接收到资源调度指令后,可以获取资源调度指令携带的第二信息、资源调度的流程数据以及执行资源调度操作的脚本文件,根据第二信息包括的资源池名查找到资源池表,根据资源调度的流程数据以及执行资源调度操作的脚本文件从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。第二配置信息可以包括执行资源调度操作的脚本文本,执行资源调度操作的脚本文件根据第二信息和资源调度的流程数据生成时,应用服务设备可以获取资源调度指令携带的执行资源调度操作的脚本文件,运行执行资源调度操作的脚本文件,以根据第二信息包括的资源池名查找到资源池表,并根据资源调度的流程数据从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。

在一个实施例中,资源调度的流程数据可以包括筛选规则和切分规则。第一数据库服务器从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合的过程可以如下:第一数据库服务器根据筛选规则在从资源池表筛选出用户数据集合,根据切分规则将用户数据集合划分为多个子用户数据集合,并将每个子用户数据集合写入该子用户数据集合对应的渠道表中。在一个实施例中,第一数据库服务器根据切分规则将用户数据集合划分为多个子用户数据集合的过程可以如下:第一数据库服务器在对用户数据集合进行除重处理后,再根据切分规则进行切分处理,得到多个子用户数据集合。其中,除重处理如可以为根据预设的除重信息对用户数据集合进行除重处理。除重信息可以包括除重字段名和/或除重天数。除重天数例如可以为3天。除重天数可以是以目标时间往前统计的天数,如以在今天之前的3天。在一个实施例中,根据除重天数进行除重处理,可以为从用户数据集合中删除除重天数内的字段值。在一个实施例中,根据除重字段名和除重字段值进行除重处理,可以为从用户数据集合中确定出除重字段名对应的字段值,从除重字段名对应的字段值中删除除重天数内的字段值。除重处理,能够避免重复数据写入渠道表中。在一个实施例中,切分处理如可以为(如可以根据维护的资源池与渠道之间的关联关系)确定资源池表对应的各个渠道表,根据各个渠道表的字段名从除重处理后的用户数据集合确定出多个子用户数据集合,子用户数据集合为待同步至对应的渠道表的数据。例如,第一数据库服务器可以确定资源池表对应有渠道表1和渠道表2,可以根据渠道表1包括的字段名从除重处理后的用户数据集合中确定出子用户数据集合1,子用户数据集合1为待写入渠道表1的数据,并可以根据渠道表2包括的字段名从除重处理后的用户数据集合确定出子用户数据集合2,子用户数据集合2为待写入渠道表2的数据。

在一个应用场景中,应用服务设备可以通过终端设备显示如图4b所示的页面,相关人员可以基于图4b所示的页面绘制资源调度的流程图,图4b所述的流程图包括筛选节点和切分节点。从图4b可以看出,一个筛选节点可以连接多个切分节点,这就意味着,一个筛选规则不仅可以对应一个切分规则,也可以对应多个切分规则,多个切分规则中每个切分规则所使用的数据源可以为同一个筛选规则筛选出的数据。比如,可以利用切分规则1对经由筛选规则1筛选出的用户数据集合进行切分处理,利用切分规则2对经由筛选规则1筛选出的用户数据集合进行切分处理。相关人员可以通过点击筛选节点,如点击图4b所示的筛选-生产验证节点来设置该筛选节点的节点数据,包括筛选条件等。此处的筛选条件即为筛选规则。相关人员在点击如图4b所示的筛选-生产验证节点后,进入如图4c所示的筛选页面以设置该筛选-生产验证节点的节点数据。相应地,相关人员也可以通过点击如图4b所示的切分节点来设置该切分节点的节点数据,包括切分条件等。此处的切分条件即为切分规则,相关人员在点击如图4b所示的切分节点后,可以进入如图4d-图4e所示的切分页面以设置切分节点的节点数据。在设置完成各节点的节点数据后,应用服务设备可以获取到资源调度的流程数据。在一个应用场景中,前述提及的筛选条件可以是基于资源池支持的名单类型对应的可供选择的筛选字段设置的,前述提及的切分条件可以是基于资源池支持的名单类型对应的可供选择的切分字段设置的。例如,相关人员可以从资源池支持的名单类型对应的可供选择的筛选字段中选取第一字段和第二字段以及交集运算符来构建筛选条件。再如,相关人员可以从资源池支持的名单类型对应的可供选择的切分字段中选取第三字段和第四字段以及交集运算符来构建切分条件。其中,名单类型与筛选字段的对应关系,名单类型与切分字段、名单类型与透视字段之间的关系,可以通过相关页面配置,该页面可由应用服务设备提供。不同名单类型相当于将资源划分成不同的种类或级别,不同名单类型可以对应不同的销售团队、销售方式或计薪方式。而对于不同的名单类型,所需要显示的筛选、切分及透视字段也是不同的。当切换名单类型时,筛选页面、切分页面和透视页面上显示的字段,也会重新刷新展示。

在一个实施例中,第一数据库服务器可以确定多个子用户数据集合中每个子用户数据集合的优先级,然后按照优先级依次将每个子用户数据集合写入该子用户数据集合对应的渠道表中。在一个实施例中,子用户数据集合的优先级可以预设的,也可以是根据该子用户数据集合对应的批次和/或渠道确定的。在一个实施例中,优先级和/或批次可以通过图4d所示的页面设置。

s206、第三数据库服务器通过所述应用服务设备或所述第一数据库服务器获取包括目标子用户数据集合的目标渠道表以进行存储。

在一个实施例中,应用服务设备可以从第一数据库服务器获取包括目标子用户数据集合的目标渠道表,并将目标渠道表发送至第三数据库服务器以进行存储。其中,目标子用户数据集合可以为多个子用户数据集合中的任一子用户集合或指定子用户集合。目标渠道表为包括目标子用户集合的渠道表。或,第一数据库服务器可以在检测到渠道下发指令时,将目标渠道表发送至第三数据库服务器以进行存储。在一个实施例中,该渠道下发指令可以是在执行目标定时任务期间生成的。

在一个实施例中,应用服务设备可以确定待同步的渠道表,待同步的渠道表包括目标渠道表,并根据待同步的渠道表生成离线同步工具执行的文件。待同步的渠道表可以为资源池表对应的所有渠道表或部分渠道表。在一个实施例中,应用服务设备可以将资源池表对应的所有渠道表或部分渠道表确定为待同步的渠道表。在一个实施例中,应用服务设备可以获取维护的渠道信息,并在确定待同步数据的渠道表对应的渠道为实时渠道时,根据维护的渠道信息包括的目标渠道信息生成离线同步工具执行的文件,目标渠道信息为待同步数据的渠道表的渠道信息。根据维护的渠道信息包括的目标渠道信息以及维护的渠道与资源池的对应关系生成离线同步工具执行的文件。实时渠道要求实时下发渠道表。在一个实施例中,应用服务设备可以运行离线同步工具,以根据离线同步工具执行的文件从第一数据库服务器获取包括目标子用户数据集合的目标渠道表,并将目标渠道表发送至第三数据库服务器以进行存储。在一个应用场景中,离线同步工具可以为datax,文件可以为json文件。

在一个实施例中,第一数据库服务器可以在检测到渠道下发指令时,将目标渠道表发送至第三数据库服务器以进行存储。在一个实施例中,应用服务设备可以在确定待同步数据的渠道表对应的渠道不为实时渠道(如为t+n渠道时,表明该渠道不要求立即下发)时,等待定时任务发送渠道下发指令至第一数据库服务器,第一数据库服务器可以在检测到渠道下发指令时,将目标渠道表发送至第三数据库服务器以进行存储,在一个实施例中,目标定时任务可由应用服务设备执行,目标定时任务可通过xxl-job设置。在一个实施例中,第一数据库服务器可以在检测到渠道下发指令时,运行离线同步工具,以将目标渠道表发送至第三数据库服务器进行存储。在一个实施例中,目标定时任务也可以由第一数据库服务器执行或其它服务设备(图1未示)执行。

在一个实施例中,本申请还可以在离线同步工具的源代码中增加同步结果回调方法,在同步结束后,可以将同步成功或失败的同步结果回写到对应的渠道表,以便同步失败时,可以重新同步。

可见,图1所示的实施例中,应用服务设备可以发送数据同步指令至第一数据库服务器,以使第一数据库服务器根据配置的资源池表的表名以及配置的字段信息创建目标表,并通过第二数据库服务器获取目标表的字段信息对应的用户数据以添加至目标表并更新资源池表;应用服务设备可以发送资源调度指令至第一数据库服务器,以使第一数据库服务器从资源池表筛选出用户数据集合,将用户数据集合划分为多个子用户数据集合以写入对应的渠道表中;应用服务设备可以从第一数据库服务器获取包括目标子用户数据集合的目标渠道表,并将目标渠道表发送至第三数据库服务器以进行存储。相较于现有技术的数据同步方式,本申请实施例基于应用服务设备、第一数据库服务器、第二数据库服务器等实现的数据同步方案,可以满足对数据同步效率和实时性的需求。

在一个实施例中,应用服务设备或第一数据库服务器可以对目标渠道表中提取关键信息加密后写入区块链中,或可以将目标渠道表的发送时间等信息写入区块链以便后续进行故障追溯。

本申请实施例中还提供一种计算机(可读)存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使所述处理器可执行上述方法实施例中所执行的部分或全部步骤,如执行上述方法实施例中应用服务设备执行的操作或第一数据库服务器执行的操作。在一个实施例中,该计算机存储介质可以为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。可选的,该计算机存储介质可以是易失性的,也可以是非易失性的。所述的计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等数据。

其中,本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1