跨区域的数据同步方法、系统及计算机可读介质与流程

文档序号:33470004发布日期:2023-03-15 08:04阅读:37来源:国知局
1.本发明主要涉及计算机信息
技术领域
:,具体地涉及一种跨区域的数据同步方法、系统及计算机可读介质。
背景技术
::2.在《通用数据保护条例》(generaldataprotectionregulation,gdpr)严格规定了数据处理、存储和管理规则的背景下,全球化业务中跨多个地理区域的数据本地化存储需求日益紧迫,但一些数据需求仍要全局统计,传统的数据传输方案已无法满足多地部署的需求,并且随着业务需求的增加,需要将存储于不同地理区域的数据同步汇总至统一的节点以进一步处理、计算数据。3.图1是现有技术中跨区域的数据同步方案的示例性架构图,参考图1所示,跨地理区域的数据存储位置分为单元节点和中心节点,每个节点都有相应的数据集成服务,数据集成服务用于接收、处理、存储当地区域的数据。由于业务或技术需求,需要将各单元节点的数据同步至统一的中心节点。目前已有的数据传输同步方案主要分为离线同步和实时同步,其中离线同步主要基于批量文件传输的离线传输方案,实时同步主要基于接口服务的传输方案。图1中的数据同步方式包括:实时数据传输客户端、实时同步接收服务和文件离线同步方案,其中,实时数据传输客户端负责从各个单元节点获取实时数据,并通过接口服务的方式向中心节点传输数据;实时同步接收服务负责接收、处理各个单元节点的数据,并将数据分发到中心节点对应的数据通道中;文件离线同步方案负责通过文件接口从各个单元节点本地存储的文件中,比对、拉取文件并将文件写入中心节点,以及记录每次文件传输的时间、状态,便于传输过程失败时重启任务、避免重复传输文件。4.参考图1所示,现有技术中跨区域的数据同步方案至少需要维护文件离线同步方案、实时同步接收服务及其实时数据传输客户端,至少需要两套组件及相应代码,并且离线传输方案依赖其他组件、方案复杂,实时传输方案研发成本高、数据一致性很难保证、所需部署资源多。并且各个跨地理区域的单元节点可能使用不同的本地存储系统,同步方案的开发过程中需要对接不同的文件接口,若单元节点增加,相应所需的部署资源、维护成本也随之增加。因此亟需一种统一部署、易维护、低开发成本的跨区域的数据同步方案。技术实现要素:5.本技术所要解决的技术问题是提供一种跨区域的数据同步方法、系统及计算机可读介质,可以实现统一部署、易维护且开发成本低。6.本技术为解决上述技术问题而采用的技术方案是一种跨区域的数据同步方法,包括:根据数据同步语言的语法结构提交数据同步语句;解析数据同步语句,获得同步计划,同步计划适于将一个或多个同步区域的单元节点的数据同步至中心节点;执行同步计划,获得执行结果。7.在本技术的一实施例中,在根据数据同步语言的语法结构提交数据同步语句的步骤之前,还包括:配置alluxio数据编排服务的地址和目录,alluxio数据编排服务用于挂载底层文件系统供上层计算框架和应用访问。8.在本技术的一实施例中,在根据数据同步语言的语法结构提交数据同步语句的步骤之前,还包括:配置元数据服务的地址、一个或多个同步区域的底层文件系统的地址、计算引擎的执行目录、同步引擎的通讯地址、同步引擎的端口、同步执行者的通讯地址、同步执行者的端口、同步网络服务的地址、同步网络服务的端口中的一项或任意项。9.在本技术的一实施例中,语法结构包括配置项,配置项包括:调度周期、调度时区、计算引擎、是否选定当地区域时区、源数据表分区、目标数据表分区、需要同步的分区列表、视图名称中的一项或任意项,其中,源数据表对应于单元节点,目标数据表对应于中心节点。10.在本技术的一实施例中,同步计划包括离线同步计划和/或实时同步计划,实时同步计划包括视图名称。11.在本技术的一实施例中,解析数据同步语句的步骤包括:根据语法结构解析数据同步语句,获得解析结果;在解析结果为解析成功后获得数据同步语法树,数据同步语法树包括配置项的信息、源数据表的表名、目标数据表的表名;根据元数据服务的地址连接元数据服务,根据目标数据表的表名判断元数据服务中是否存在目标数据表;若目标数据表存在,则创建alluxio数据编排服务对应于源数据表的映射目录;将一个或多个同步区域的底层文件系统的地址中的源表目录挂载至映射目录;创建映射目录源表,映射目录源表的位置为映射目录;判断是否进行实时同步,若不进行实时同步则生成离线同步计划;若进行实时同步则根据视图名称创建视图,以及生成实时同步计划。12.在本技术的一实施例中,解析数据同步语句的步骤还包括:根据配置项的信息、alluxio数据编排服务的地址和元数据服务的地址,生成alluxio数据编排服务的文件元数据同步计划和元数据服务的分区元数据同步计划;计算引擎读取映射目录源表中的数据字段,并将数据字段写入目标数据表;将离线同步计划、实时同步计划、alluxio数据编排服务的文件元数据同步计划、元数据服务的分区元数据同步计划中的一个或多个存入中心节点的数据库。13.在本技术的一实施例中,在解析数据同步语句,获得同步计划的步骤之后,还包括:定期读取同步计划,判断同步计划是否符合运行条件,运行条件包括计划执行时区和计划执行时间;若符合运行条件则执行同步计划。14.在本技术的一实施例中,在执行同步计划,获得执行结果的步骤之后,还包括:判断执行结果是否成功,若执行结果为成功,则将成功的执行结果写入日志;若执行结果为失败,则进行报警并将失败的执行结果写入日志。15.在本技术的一实施例中,在执行同步计划,获得执行结果的步骤之后,还包括显示同步计划和执行结果。16.在本技术的一实施例中,在显示同步计划和执行结果的步骤中,同步计划包括存储在中心节点的数据库中的任意同步计划。17.本技术为解决上述技术问题还提出一种跨区域的数据同步系统,包括:同步客户端模块,用于根据数据同步语言的语法结构提交数据同步语句;同步引擎模块,用于解析数据同步语句,获得同步计划,同步计划适于将一个或多个同步区域的单元节点的数据同步至中心节点;同步执行者模块,用于执行同步计划,获得执行结果;存储器,用于存储可由处理器执行的指令;处理器,用于执行指令以实现如上的数据同步方法。18.在本技术的一实施例中,数据同步系统还包括同步网络服务模块,用于前端显示同步计划和执行结果。19.本技术为解决上述技术问题还提出一种存储有计算机程序代码的计算机可读介质,计算机程序代码在由处理器执行时实现如上的数据同步方法。20.本技术的技术方案通过统一的数据同步语言的语法结构来规范数据同步语句的内容,根据数据同步语句获得相应的同步计划,所有的同步计划无需借助额外的调度和开发,同步计划易维护且开发成本低;执行同步计划后,各个同步区域的单元节点的数据同步至中心节点,在中心节点统一部署跨区域的数据同步方法即可实现数据同步。附图说明21.为让本技术的上述目的、特征和优点能更明显易懂,以下结合附图对本技术的具体实施方式作详细说明,其中:22.图1是现有技术中跨区域的数据同步方案的示例性架构图;23.图2是本技术一实施例的跨区域的数据同步方法的示例性流程图;24.图3是本技术另一实施例的跨区域的数据同步方法的示例性流程图;25.图4是本技术一实施例的xensql数据同步服务的示例性架构图;26.图5是本技术一实施例的跨区域的数据同步系统的示例性架构图;27.图6是本技术另一实施例的跨区域的数据同步系统的示例性部署示意图;28.图7是本技术一实施例的跨区域的数据同步系统的系统框图。具体实施方式29.为让本技术的上述目的、特征和优点能更明显易懂,以下结合附图对本技术的具体实施方式作详细说明。30.在下面的描述中阐述了很多具体细节以便于充分理解本技术,但是本技术还可以采用其它不同于在此描述的其它方式来实施,因此本技术不受下面公开的具体实施例的限制。31.如本技术和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。32.本技术中使用了流程图用来说明根据本技术的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。33.本技术提出一种跨区域的数据同步方法,适于将各个跨地理同步区域的单元节点的数据同步至统一的中心节点,例如将北美区、欧洲区的数据同步至中国区,该数据同步方法使用户无需关心跨区域的数据同步中的时区差异、文件系统差异等问题。34.图2是本技术一实施例的跨区域的数据同步方法的示例性流程图,参考图2所示,该实施例的跨区域的数据同步方法包括以下步骤:35.步骤s110:根据数据同步语言的语法结构提交数据同步语句。36.步骤s120:解析数据同步语句,获得同步计划,同步计划适于将一个或多个同步区域的单元节点的数据同步至中心节点。37.步骤s130:执行同步计划,获得执行结果。38.下面详细说明上述的步骤s110至步骤s130:39.在步骤s110中,根据数据同步语言的语法结构提交数据同步语句。40.本技术创造了全新的数据同步语言(datasynchronizationlanguage,dsl),并相应规范了dsl的语法结构,数据同步语句用于配置数据同步过程中的各项所需参数。本技术相应创造了数据同步服务来解析数据同步语句及执行数据同步过程中的各项操作。需要说明的是,本技术将数据同步服务命名为xensql,后文将用xensql指代本技术的数据同步服务。dsl的语法结构及其语句示例将在后文详细展开。41.在一些实施例中,语法结构包括配置项,配置项包括:调度周期、调度时区、计算引擎、是否选定当地区域时区、源数据表分区、目标数据表分区、需要同步的分区列表、视图名称中的一项或任意项,其中,源数据表对应于单元节点,目标数据表对应于中心节点。42.示例性地,本技术的dsl的语法结构所包括的配置项信息如下表1所示:43.表1本技术的dsl的语法结构的配置项列表[0044][0045]下面举例说明根据本技术的dsl的语法结构提交的数据同步语句:[0046]示例1:离线同步。[0047]离线同步的源数据表:ods.a,目标数据表:ods.b,任务名称:test_a_to_b。[0048]离线同步的数据同步语句:[0049]createsynctest_a_to_b[0050]tableods.a(to_id,table_msn)[0051]to[0052]tableods.b(cid,msn)[0053]with([0054]schedule.time='00007?**',[0055]schedule.default.region=ch,[0056]compute.engine.sql=spark,[0057]schedule.local.region=true,[0058]source.partition.field=region,dt,[0059]sink.partition.field=region,dt,[0060]sink.partition.list=us,jp[0061])[0062]示例2:实时同步。[0063]实时同步的源数据表:ods.a,目标数据表:ods.b,任务名称:test_real_a_to_b。[0064]实时同步的数据同步语句:[0065]createrealsynctest_real_a_to_b[0066]tableods.a(to_id,table_msn)[0067]to[0068]tableods.b(cid,msn)[0069]with([0070]schedule.time='00007?**',[0071]schedule.default.region=ch,[0072]compute.engine.sql=spark,[0073]schedule.local.region=true,[0074]source.partition.field=region,dt,[0075]sink.partition.field=region,dt,[0076]sink.partition.list=us,jp,[0077]realsync.view.name=ods.b_view[0078])[0079]图3是本技术另一实施例的跨区域的数据同步方法的示例性流程图。参考图3所示,该实施例中主要由xensql数据同步服务来执行跨区域的数据同步方法,xensql数据同步服务包括四个模块,第一个模块是xensql同步客户端模块310,是提交dsl语言的客户端;第二个模块是xensql同步引擎模块320,负责解析dsl语法,获取、调度同步计划;第三个模块是xensql同步执行者模块330,负责执行xensql同步引擎模块320下发的同步计划;第四个模块是xensql同步网络服务模块340,负责读取同步计划和执行结果进行前端查询展示。下面将结合图3、前文的数据同步语句示例1(离线同步)、示例2(实时同步)详细介绍跨区域的数据同步方法的各个步骤。[0080]在一些实施例中,参考图3所示,在根据数据同步语言的语法结构提交数据同步语句的步骤之前,还包括:配置alluxio数据编排服务的地址和目录,alluxio数据编排服务用于挂载底层文件系统供上层计算框架和应用访问。该步骤对应图3的步骤s3103。[0081]示例性地,alluxio数据编排服务通过统一命名空间,统一了数据访问方式,为底层存储系统和上层计算框架提供了统一的客户端应用程序编程接口(applicationprograminterface,api)。alluxio提供了多层缓存方案,加速了数据访问方式和避免重复数据的多次读取。利用alluxio组件的统一命名空间,为多种存储系统提供统一访问方式,降低数据访问对接成本,并且提供多种文件访问接口,支持多种上层应用或计算框架,例如hive、spark。例如通过hivemetastore可以建立基于alluxio文件系统的schema映射表,在不需要改变已有数据仓库中的应用逻辑前提下,支持对于alluxio的数据访问、计算的方式。alluxio数据编排服务将不同地理区域的不同存储系统进行本地挂载,使用region字段作为不同区域的分区识别,并设置内存缓存加速文件的读取和避免同文件多次读取。[0082]本技术使用alluxio作为数据编排服务,对不同地理区域的存储系统提供统一的访问方式。设计实现了离线同步和实时同步的方案,降低了后期开发和维护成本,新增单元节点的同时,只需将对应目录挂载到中心节点的alluxio目录,无需额外的部署和运维成本。通过alluxio统一的审计和日志,监控整体的数据同步方案,避免多个区域的监控方案和维护。[0083]在一些实施例中,在根据数据同步语言的语法结构提交数据同步语句的步骤之前,还包括:配置元数据服务的地址、一个或多个同步区域的底层文件系统的地址、计算引擎的执行目录、同步引擎的通讯地址、同步引擎的端口、同步执行者的通讯地址、同步执行者的端口、同步网络服务的地址、同步网络服务的端口中的一项或任意项。这些步骤部分对应于图3的步骤s3101、步骤s3102。[0084]示例性地,元数据服务(underdatabase,udb)可以实现中心节点的数据查询服务。参考图3所示,xensql数据同步服务执行跨区域的数据同步方法之前,需要部署xensql同步客户端模块310、xensql同步引擎模块320、xensql同步执行者模块330、xensql同步网络服务模块340;并配置udb的地址、各同步区域的底层文件系统(underlyingfilesystem,ufs)的地址、计算引擎的执行目录、xensql同步引擎模块320的远端程序呼叫(remoteprocedurecall,rpc)通讯地址和端口、xensql同步执行者模块330的rpc通讯地址和端口、xensql同步网络服务模块340的服务地址和端口。[0085]xensql同步客户端模块310启动后,客户端311读取各项配置信息,包括使用udb的地址、各同步区域的ufs地址、计算引擎的执行目录、xensql同步引擎模块320的rpc通讯地址等。[0086]在步骤s120中,解析数据同步语句,获得同步计划,同步计划适于将一个或多个同步区域的单元节点的数据同步至中心节点。[0087]在一些实施例中,同步计划包括离线同步计划和/或实时同步计划,实时同步计划包括视图名称。[0088]示例性地,参考图3和前文所述的数据同步语句示例1(离线同步)、示例2(实时同步)所示,通过xensql同步客户端模块310的客户端311提交数据同步语句,xensql同步引擎模块320解析数据同步语句,获得相应的同步计划、实时同步计划。后文将根据数据同步语句示例1(离线同步)、示例2(实时同步)介绍本技术的跨区域的数据同步方法的执行流程。离线同步的数据同步语句中“with”内的属性释义可参考前文所述的表1(本技术的dsl的语法结构的配置项列表)。[0089]在一些实施例中,解析数据同步语句的步骤包括:[0090]步骤s1201:根据语法结构解析数据同步语句,获得解析结果;[0091]步骤s1202:在解析结果为解析成功后获得数据同步语法树,数据同步语法树包括配置项的信息、源数据表的表名、目标数据表的表名;[0092]步骤s1203:根据元数据服务的地址连接元数据服务,根据目标数据表的表名判断元数据服务中是否存在目标数据表;[0093]步骤s1204:若目标数据表存在,则创建alluxio数据编排服务对应于源数据表的映射目录;[0094]步骤s1205:将一个或多个同步区域的底层文件系统的地址中的源表目录挂载至映射目录;[0095]步骤s1206:创建映射目录源表,映射目录源表的位置为映射目录;[0096]步骤s1207:判断是否进行实时同步,若不进行实时同步则生成离线同步计划;若进行实时同步则根据视图名称创建视图,以及生成实时同步计划。[0097]示例性地,参考图3和前文所述的数据同步语句示例1(离线同步)所示来说明上述的步骤s1201~s1207。[0098]在前文的步骤s1201,xensql同步引擎模块320使用rpc通信接收到xensql同步客户端模块310的客户端311提交的数据同步语句后,在步骤s3201根据dsl的语法结构解析数据同步语句,获得解析结果,若解析不成功,则在步骤s3203抛出异常并向客户端311返回失败原因;若解析成功,在前文的步骤s1202,xensql同步引擎模块320获得数据同步语法树,数据同步语法树包括:源数据表的表名:ods.a;源数据表的分区字段:region,dt;源数据表的数据字段:to_id,table_msn;目标数据表的表名:ods.b;目标数据表的分区字段:region,dt;目标数据表的数据字段:cid,msn;同步任务名称:test_a_to_b;调度周期:00007?**(每天7点);调度时区:ch(中国);计算引擎:spark;是否选定当地区域时区调度:true;需要同步的分区列表(同步区域):us,jp(美国,日本)。[0099]在前文的步骤s1203,在图3所示的步骤s3202根据元数据服务的地址连接元数据服务udb,在步骤s3204根据目标数据表的表名ods.b判断元数据服务udb中是否存在目标数据表ods.b,如果不存在,则在步骤s3203抛出异常给向客户端311;在前文的步骤s1204,若目标数据表ods.b存在,则在步骤s3205创建alluxio数据编排服务对应于源数据表ods.a的映射目录:/alluxio/warehouse/ods.db/a_sync,其中,/alluxio/warehouse是对alluxio数据编排服务的配置,该部分可以自由定义,而ods.db是ods的库目录,a_sync是源数据表a加上后缀_sync,这部分是xensql同步引擎模块320定义的目录写法。[0100]在前文的步骤s1205,在图3所示的步骤s3206将一个或多个同步区域的底层文件系统的地址中的源表目录挂载至映射目录,具体地,根据解析出的同步区域us、jp,并根据配置好的各同步区域的ufs地址,获取同步区域us和jp的ufs地址,将同步区域us和jp的ufs地址中的/ods.db/a挂载到alluxio的映射目录/alluxio/warehouse/ods.db/a_sync下。[0101]在前文的步骤s1206,在图3所示的步骤s3207创建alluxio的映射目录源表,具体地,根据配置好的udb的地址,连接udb,并创建映射目录源表:ods.a_sync,设置映射目录源表ods.a_sync的位置location为alluxio的映射目录/alluxio/warehouse/ods.db/a_sync;[0102]在前文的步骤s1207,在图3所示的步骤s3208判断是否进行实时同步,若不进行实时同步,则在步骤s3210生成离线同步计划;若进行实时同步,则在步骤s3209根据视图名称创建视图,以及在步骤s3210生成实时同步计划,具体地,通过dsl数据同步语句中的realsync.view.name属性连接udb以创建视图。[0103]在一些实施例中,解析数据同步语句的步骤还包括:[0104]步骤s1208:根据配置项的信息、alluxio数据编排服务的地址和元数据服务的地址,生成alluxio数据编排服务的文件元数据同步计划和元数据服务的分区元数据同步计划;[0105]步骤s1209:计算引擎读取映射目录源表中的数据字段,并将数据字段写入目标数据表;[0106]步骤s1210:将离线同步计划、实时同步计划、alluxio数据编排服务的文件元数据同步计划、元数据服务的分区元数据同步计划中的一个或多个存入中心节点的数据库。[0107]示例性地,参考图3和前文所述的数据同步语句示例1(离线同步)所示来说明上述的步骤s1208~s1210。[0108]在前文的步骤s1208,根据解析出的调度周期、调度时区、分区字段、同步区域、计算引擎、同步数据字段配置,以及配置好的元数据服务udb的地址和alluxio数据编排服务的地址,生成alluxio数据编排服务的文件元数据同步计划、元数据服务udb的分区元数据同步计划,并在前文的步骤s1209,根据解析的计算引擎配置spark,生成sparksql读取alluxio的映射目录源表ods.a_sync中的数据字段to_id,table_msn,并将数据字段写入目标数据表ods.b中的数据字段cid,msn。[0109]在前文的步骤s1210,将离线同步计划、实时同步计划、alluxio数据编排服务的文件元数据同步计划、元数据服务的分区元数据同步计划中的一个或多个存入中心节点的数据库321,其中,中心节点的数据库321为mysql数据库。在步骤s3211将dsl执行成功的消息返回客户端311。[0110]在一些实施例中,在解析数据同步语句,获得同步计划的步骤之后,还包括:[0111]步骤s1211,定期读取同步计划,判断同步计划是否符合运行条件,运行条件包括计划执行时区和计划执行时间;[0112]步骤s1212,若符合运行条件则执行同步计划。[0113]示例性地,参考图3所示,xensql同步引擎模块320还具备同步计划的调度功能。在前文的步骤s1211,xensql同步引擎模块320的调度引擎322根据在中心节点的数据库321写入的同步计划,在步骤s3212调度引擎322每隔30秒定期读取同步计划,在前文的步骤s1212,在图3所示的步骤s3213判断同步计划是否符合运行条件,其中,运行条件包括计划执行时区和计划执行时间,若不符合运行条件,则在步骤s3215结束任务;若符合运行条件,则在步骤s3214发送同步计划,将同步计划通过rpc通信的方式发给xensql同步执行者模块330。[0114]在步骤s130中,执行同步计划,获得执行结果。[0115]在一些实施例中,在执行同步计划,获得执行结果的步骤之后,还包括:判断执行结果是否成功,若执行结果为成功,则将成功的执行结果写入日志;若执行结果为失败,则进行报警并将失败的执行结果写入日志。[0116]示例性地,参考图3所示,xensql同步执行者模块330执行同步计划并获得执行结果,具体地,在步骤s3301执行同步计划,在步骤s3302判断执行结果是否成功,若执行不成功,则在步骤s3304报警并将失败的执行结果写入日志;若执行成功,则在步骤s3303将成功的执行结果写入日志。[0117]在一些实施例中,在执行同步计划,获得执行结果的步骤之后,还包括显示同步计划和执行结果。[0118]在一些实施例中,在显示同步计划和执行结果的步骤中,同步计划包括存储在中心节点的数据库中的任意同步计划。[0119]示例性地,参考图3所示,xensql同步网络服务模块340中,在步骤s3401用户登录;在步骤s3402查询同步计划,并从中心节点的数据库321获得相应的同步计划;在步骤s3403查询结果,获得中心节点的数据库321中的同步计划和执行结果的日志,并在前端展示。用户通过xensql同步网络服务模块340可以查看存储在中心节点的数据库321中的任意同步计划、历史下架的同步计划,执行失败、执行成功的同步计划和正在执行的同步计划。[0120]在全球化数据同步的场景下,本技术的跨区域的数据同步方法、xensql数据同步服务使用户无需关心跨地理区域的数据同步中的时区差异、文件系统差异等问题。用户只需编写符合数据同步语言dsl的语法结构的数据同步语句,xensql数据同步服务会根据数据同步语句生成相应的跨区域的离线同步计划、实时同步计划。本技术使用alluxio数据编排服务,对不同地理区域的存储系统提供统一的访问方式,结合元数据服务udb,将各地理区域的数据汇总计算存储在中心节点,可以实现中心节点的数据查询服务,而原始数据依然存储在当地,节省每次查询的时间和费用、并进行数据资产的沉淀、降低了后期开发和维护成本。[0121]图4是本技术一实施例的xensql数据同步服务的示例性架构图。参考图4所示,xensql数据同步服务的核心包括四个部分,分别是:xensql同步客户端410、xensql同步引擎430、xensql同步执行者450、xensql同步网络服务460。[0122]参考图4所示,用户在xensql同步客户端410提交数据同步语句420,xensql同步引擎430接收数据同步语句420后,结合元数据服务440的相关配置信息解析数据同步语句420的语法;在步骤s431判断语法是否通过,若语法未通过,则在步骤s433抛出异常,并在步骤s434将相关信息写入日志;若语法通过,则在步骤s432解析数据同步语句,写入配置存储,具体地,解析后获得离线同步计划或实时同步计划、用户需要同步的区域及元数据、需要同步的数据表等信息,将相应的同步计划写入配置数据库mysql进行存储。xensql同步执行者450根据相应的同步计划在步骤s435执行同步计划,以及在步骤s436将相应的执行结果写入日志。xensql同步网络服务460读取配置数据库mysql和日志中的相关数据,进行前端展示。[0123]图5是本技术一实施例的跨区域的数据同步系统的示例性架构图。参考图5所示,该跨区域的数据同步系统500的架构包括:元数据服务510、底层文件系统520、alluxio数据编排服务530、计算引擎540、xensql数据同步服务550。本技术基于该架构开发了集成alluxio软件开发工具包(softwaredevelopmentkit,sdk)操作的数据同步服务xensql。本技术集成了xensql和alluxio,以实现使用dsl来实时同步、离线同步跨地理区域的数据。[0124]图6是本技术另一实施例的跨区域的数据同步系统的示例性部署示意图。参考图6所示,需要将单元节点:北美区630、欧洲区620的数据同步至中心节点:中国区610。示例性地,在中心节点中国区610部署并启动alluxio数据编排服务集群;将中国区610、欧洲区620、北美区630需要同步的数据目录挂载至alluxio数据编排服务640;元数据服务650根据相关的配置信息创建同步计划、添加分区;客户端660读取相应的同步计划以及alluxio的数据,并将相关信息写入中国区610的同步计划的映射目录源表;调度服务670定期读取同步计划以调度同步计划的执行。[0125]本技术集成了alluxio和xensql的跨地理区域同步方案,同时支持不同时区数据的同步计划,用户只需将相应区域的数据挂载至目录中,而无需关心不同区域的时区差异问题。示例性地,xensql数据同步服务设置为北京时间区域,在中心节点的相关表中挂载中国和美国两个区域,xensql相应生成两个同步计划:1、北京时间每天01:00同步中国区数据计划;2、北京时间每天13:00同步北美区数据计划。相关同步语句如下所示:[0126]#时区差异:[0127]北京时间:07.2100:00对应美国时间:07.2100:00-12:00=07.20.12:00[0128]#alluxiomount:[0129]中国区数据ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ北京时间生成点[0130]/region=ch/dt=2022-07-19ꢀꢀꢀꢀꢀꢀ07-2000:00[0131]/region=ch/dt=2022-07-20ꢀꢀꢀꢀꢀꢀ07-2100:00[0132]/region=ch/dt=2022-07-21ꢀꢀꢀꢀꢀꢀ07-2200:00[0133]北美区数据ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ北京时间生成点[0134]/region=na/dt=2022-07-19ꢀꢀꢀꢀꢀꢀ07-2012:00[0135]/region=na/dt=2022-07-20ꢀꢀꢀꢀꢀꢀ07-2112:00[0136]/region=na/dt=2022-07-21ꢀꢀꢀꢀꢀꢀ07-2212:00[0137]本技术还包括一种跨区域的数据同步系统,包括:同步客户端模块,用于根据数据同步语言的语法结构提交数据同步语句;同步引擎模块,用于解析数据同步语句,获得同步计划,同步计划适于将一个或多个同步区域的单元节点的数据同步至中心节点;同步执行者模块,用于执行同步计划,获得执行结果;存储器和处理器。其中,该存储器用于存储可由处理器执行的指令;处理器用于执行该指令以实现前文所述的跨区域的数据同步方法。[0138]在一些实施例中,数据同步系统还包括同步网络服务模块,用于前端显示同步计划和执行结果。[0139]本技术前文所述的内容均可用于解释该跨区域的数据同步系统,参考图3所示,其中,xensql同步客户端模块310为同步客户端模块的一具体实施方式,xensql同步引擎模块320为同步引擎模块的一具体实施方式,xensql同步执行者模块330为同步执行者模块的一具体实施方式,xensql同步网络服务模块340为同步网络服务模块的一具体实施方式,在此不再赘述相关内容。[0140]图7是本技术一实施例的跨区域的数据同步系统的系统框图。参考图7所示,该跨区域的数据同步系统700可包括内部通信总线701、处理器702、只读存储器(rom)703、随机存取存储器(ram)704以及通信端口705。当应用在个人计算机上时,该跨区域的数据同步系统700还可以包括硬盘706。内部通信总线701可以实现该跨区域的数据同步系统700组件间的数据通信。处理器702可以进行判断和发出提示。在一些实施例中,处理器702可以由一个或多个处理器组成。通信端口705可以实现该跨区域的数据同步系统700与外部的数据通信。在一些实施例中,该跨区域的数据同步系统700可以通过通信端口705从网络发送和接受信息及数据。该跨区域的数据同步系统700还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘706,只读存储器(rom)703和随机存取存储器(ram)704,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器702所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。处理器处理的结果通过通信端口传给用户设备,在用户界面上显示。[0141]上述的跨区域的数据同步方法可以实施为计算机程序,保存在硬盘706中,并可加载到处理器702中执行,以实施本技术的跨区域的数据同步方法。[0142]本技术还包括一种存储有计算机程序代码的计算机可读介质,该计算机程序代码在由处理器执行时实现前文所述的跨区域的数据同步方法。[0143]跨区域的数据同步方法实施为计算机程序时,也可以存储在计算机可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(cd)、数字多功能盘(dvd))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(eprom)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。[0144]应该理解,上文所描述的实施例仅是示意。本文描述的实施例可在硬件、软件、固件、中间件、微码或者其任意组合中实现。对于硬件实现,处理器可以在一个或者多个特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器和/或设计为执行本文所述功能的其它电子单元或者其结合内实现。[0145]本技术的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dapd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器或者其组合。此外,本技术的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘cd、数字多功能盘dvd……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。[0146]计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。[0147]上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述申请披露仅仅作为示例,而并不构成对本技术的限定。虽然此处并没有明确说明,本领域技术人员可能会对本技术进行各种修改、改进和修正。该类修改、改进和修正在本技术中被建议,所以该类修改、改进、修正仍属于本技术示范实施例的精神和范围。[0148]同时,本技术使用了特定词语来描述本技术的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本技术至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本技术的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。[0149]一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本技术一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1