不停机数据迁移方法及装置与流程

文档序号:26004566发布日期:2021-07-23 21:22阅读:164来源:国知局
不停机数据迁移方法及装置与流程

本发明涉及数据迁移技术领域,尤其涉及一种不停机数据迁移方法及装置。



背景技术:

在当前互联网的公司里,业务都是快速迭代、快速上线。当系统无法承载现有的业务的发展,往往会选择重新设计现有的系统,新老系统业务迁移不可避免涉及到数据的迁移、接口迁移。

在迁移过程中,现有技术大部分会选择在夜间停机停业务进行迁移。停机迁移的方案,涉及的系统和部门比较多,人力成本高,对线上业务特别是核心业务影响比较大,而且影响用户体验。



技术实现要素:

本发明实施例提供一种不停机数据迁移方法及装置,能够克服现有技术进行数据迁移时,停机停业务造成高昂的人力成本以及对核心业务造成较大影响的问题。

本公开实施例的第一方面,提供一种不停机数据迁移方法,包括:

将第一数据系统的业务表数据存储到数据存储仓库中,获取所述数据存储仓库的离线表数据,其中,所述第一数据系统配置为待迁移数据所在的业务系统,所述待迁移数据包括用户编码信息,所述业务表数据用于指示用户在所述第一数据系统的交易业务的属性数据,所述离线表数据用于指示离线状态下交易业务的属性数据;

配置第二数据系统的配置信息,所述第二数据系统配置为所述待迁移数据将要迁入的数据系统;

根据所述离线表数据以及所述业务表数据,将所述待迁移数据从所述数据存储仓库中迁移到所述第二数据系统,并且获取所述待迁移数据迁移过程中所产生的脏数据;

将所述第一数据系统中的业务数据回灌到所述第二数据系统中,并清理所述脏数据,其中,所述业务数据用于指示用户在所述第一数据系统的交易业务。

可选地,所述获取所述待迁移数据迁移过程中产生的脏数据的方法包括:

在所述待迁移数据迁移之前,开启所述业务系统的交易记录开关,所述交易记录开关用于开始或者结束记录在数据迁移过程中的交易情况;

在所述待迁移数据迁移到所述第二数据系统后,关闭所述交易记录开关,将所述待迁移数据迁移过程中变动的用户编码信息作为脏数据。

可选地,所述清理所述脏数据包括:

开启所述业务系统的多线程并发处理功能,获取所述脏数据所包含的用户编码信息;

基于所述第二数据系统的数据清除接口,将迁移期间存在交易客户对应的用户编码信息从所述第二数据系统中清除。

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

在所述第一数据系统中设定系统代理功能,所述系统代理功能设定为:

若所述待迁移数据对应的用户编码信息未被迁移至所述第二数据系统,则获取所述用户编码信息对应的用户在所述第一数据系统中所产生的业务数据;

若所述待迁移数据对应的用户编码信息已经被迁移至所述第二数据系统中,则将所述用户编码信息对应的用户在所述第一数据系统中所产生的业务数据同步至所述第二数据系统中。

可选地,所述配置第二数据系统的配置信息包括:

配置所述第二数据系统的数据接口以及配置属性值,以使所述待迁移数据动态无感知迁入所述第二数据系统。

本公开实施例的第二方面,提供了一种不停机数据迁移装置,包括:

获取单元,用于将第一数据系统的业务表数据存储到数据存储仓库中,获取所述数据存储仓库的离线表数据,其中,所述第一数据系统配置为待迁移数据所在的业务系统,所述待迁移数据包括用户编码信息,所述业务表数据用于指示用户在所述第一数据系统的交易业务的属性数据,所述离线表数据用于指示离线状态下交易业务的属性数据;

配置单元,用于配置第二数据系统的配置信息,所述第二数据系统配置为所述待迁移数据将要迁入的数据系统;

迁移单元,用于根据所述离线表数据以及所述业务表数据,将所述待迁移数据从所述数据存储仓库中迁移到所述第二数据系统,并且获取所述待迁移数据迁移过程中所产生的脏数据;

清理单元,用于将所述第一数据系统中的业务数据回灌到所述第二数据系统中,并清理所述脏数据,其中,所述业务数据用于指示用户在所述第一数据系统的交易业务。

可选地,所述获取单元还用于:

在所述待迁移数据迁移之前,开启所述业务系统的交易记录开关,所述交易记录开关用于开始或者结束记录在数据迁移过程中的交易情况;

在所述待迁移数据迁移到所述第二数据系统后,关闭所述交易记录开关,将所述待迁移数据迁移过程中变动的用户编码信息作为脏数据。

可选地,所述清理单元还用于:

开启所述业务系统的多线程并发处理功能,获取所述脏数据所包含的用户编码信息;

基于所述第二数据系统的数据清除接口,将迁移期间存在交易客户对应的用户编码信息从所述第二数据系统中清除。

可选地,所述装置还包括代理单元,所述代理单元用于:

在所述第一数据系统中设定系统代理功能,所述系统代理功能设定为:

若所述待迁移数据对应的用户编码信息未被迁移至所述第二数据系统,则获取所述用户编码信息对应的用户在所述第一数据系统中所产生的业务数据;

若所述待迁移数据对应的用户编码信息已经被迁移至所述第二数据系统中,则将所述用户编码信息对应的用户在所述第一数据系统中所产生的业务数据同步至所述第二数据系统中。

可选地,所述配置单元还用于配置所述第二数据系统的数据接口以及配置属性值,以使所述待迁移数据动态无感知迁入所述第二数据系统。

本公开实施例所提供的不停机数据迁移方法,将第一数据系统的业务表数据存储到数据存储仓库中,获取所述数据存储仓库的离线表数据,通过将待迁移数据存储到数据存储仓库中,能够缓解第二数据系统的存储压力,而且为数据迁移提供了缓冲时间和缓冲存储空间;

配置第二数据系统的配置信息,能够使所述待迁移数据动态无感知迁入所述第二数据系统;

根据所述离线表数据以及所述业务表数据,将所述待迁移数据从所述数据存储仓库中迁移到所述第二数据系统,并且获取所述待迁移数据迁移过程中所产生的脏数据通过离线表数据和业务表数据,在数据迁移后,能够使得数据有所对应,不会造成数据混乱;

将所述第一数据系统中的业务数据回灌到所述第二数据系统中,能够保证数据不会有所遗漏,保证数据的完整性,清理所述脏数据,能够合理避免不确定性数据导致系统出错。

附图说明

图1为本公开实施例不停机数据迁移方法的流程示意图;

图2为本公开实施例不停机数据迁移装置的结构示意图。

具体实施方式

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

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含a、b和c”、“包含a、b、c”是指a、b、c三者都包含,“包含a、b或c”是指包含a、b、c三者之一,“包含a、b和/或c”是指包含a、b、c三者中任1个或任2个或3个。

应当理解,在本发明中,“与a对应的b”、“与a相对应的b”、“a与b相对应”或者“b与a相对应”,表示b与a相关联,根据a可以确定b。根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其他信息确定b。a与b的匹配,是a与b的相似度大于或等于预设的阈值。

取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1示例性地示出本公开实施例不停机数据迁移方法的流程示意图,如图1所示,所述方法包括:

步骤s101、将第一数据系统的业务表数据存储到数据存储仓库中,获取所述数据存储仓库的离线表数据;

示例性地,所述第一数据系统配置为待迁移数据所在的业务系统,所述待迁移数据包括用户编码信息。

可以理解的是,第一数据系统往往是存储待迁移数据的老系统,待迁移数据可以包括用户编码信息,其中,用户编码信息可以用于指示用户的身份信息,本公开实施例对用户编码信息的种类和具体内容不进行限定。

其中,所述业务表数据用于指示用户在所述第一数据系统的交易业务的属性数据,所述离线表数据用于指示离线状态下交易业务的属性数据。具体地,业务表数据可以包括交易业务的类型、交易日期、交易数额等交易业务的属性数据;离线表数据是在离线状态下交易业务的属性数据,本公开实施例对业务表数据和离线表数据的类型不进行限定。

数据存储仓库可以包括ods(operationaldatastore,可操作数据存储库)数据存储仓库,ods数据存储仓库可以作为数据库到数据仓库的一种过渡,ods的数据结构一般与数据来源保持一致,便于减少工作复杂性,而且ods的数据周期一般比较短。

业务表数据与待迁移数据所对应的业务相关,业务表数据可以表征当前业务的具体内容,本公开实施例对业务表数据的具体内容不进行限定。数据存储仓库的离线表数据可以用于完成第一数据系统向第二数据系统的表字段的转换,从而完成数据的校验。

示例性地,本公开实施例可以通过大数据mysqltohive技术将第一数据系统的业务表数据存储到数据存储仓库中。

本公开实施例通过将待迁移数据存储到数据存储仓库中,能够缓解第二数据系统的存储压力,而且为数据迁移提供了缓冲时间和缓冲存储空间。

步骤s102、配置第二数据系统的配置信息;

其中,第二数据系统配置为所述待迁移数据将要迁入的数据系统。

在一种可选的实施方式中,所述配置第二数据系统的配置信息包括:

配置所述第二数据系统的数据接口以及配置属性值,以使所述待迁移数据动态无感知迁入所述第二数据系统。

具体地,本公开实施例的配置方式可以包括confplus配置,其可以统一集中管理平台,把配置从项目代码中抽离出来统一集中化管理、配置,进而实现配置与项目代码隔离、环境/集群配置的隔离、灰度发布、配置权限管控等功,并且能够实现统一的接口或者sdk配置变更的即时推送,配置属性值的替换,在项目运行过程中动态无感知的修改配置从而调整项目逻辑的执行方式。

步骤s103、根据所述离线表数据以及所述业务表数据,将所述待迁移数据从所述数据存储仓库中迁移到所述第二数据系统,并且获取所述待迁移数据迁移过程中所产生的脏数据;

示例性地,在数据迁移过程中,若用户在此期间进行交易,则有可能导致所产生的交易数据与用户编码信息无法准确对应,如果将此数据存储到数据系统中,则很可能导致系统数据错误,因此,可以将数据迁移过程中,交易变动的用户编码信息作为脏数据,以便后期进行清除,从而保证数据迁移的准确性。

示例性地,本公开实施例可以通过airflow技术调度数据存储仓库中的离线表数据,本公开实施例对调度离线表数据的方式不进行限定。

示例性地,本公开实施例可以通过大数据dts(datatransmissionservice,数据传输服务)技术将待迁移数据从所述数据存储仓库中迁移到所述第二数据系统,本公开实施例对数据迁移的方式不进行限定。

在一种可选的实施方式中,所述获取所述待迁移数据迁移过程中产生的脏数据的方法包括:

在所述待迁移数据迁移之前,开启所述业务系统的交易记录开关,所述交易记录开关用于开始或者结束记录在数据迁移过程中的交易情况;

在所述待迁移数据迁移到所述第二数据系统后,关闭所述交易记录开关,将所述待迁移数据迁移过程中变动的用户编码信息作为脏数据。

示例性地,可以在待迁移数据迁移之前,开启业务系统的交易记录开关,记录数据迁移过程中的交易情况。开启业务系统的交易开关后,可以通过aop(aspectorientedprogramming,面向切面编程)切片原理在不入侵业务逻辑的前提下,将数据迁移期间交易变动的用户编码信息记录在业务数据库中作为脏数据。

本公开实施例根据所述离线表数据以及所述业务表数据,将所述待迁移数据从所述数据存储仓库中迁移到所述第二数据系统,并且获取所述待迁移数据迁移过程中所产生的脏数据通过离线表数据和业务表数据,在数据迁移后,能够使得数据有所对应,不会造成数据混乱。

步骤s104、将所述第一数据系统中的业务数据回灌到所述第二数据系统中,并清理所述脏数据。

在一种可选的实施方式中,所述清理所述脏数据包括:

开启所述业务系统的多线程并发处理功能,获取所述脏数据所包含的用户编码信息;

基于所述第二数据系统的数据清除接口,将迁移期间存在交易客户对应的用户编码信息从所述第二数据系统中清除。

示例性地,可以通过第一数据系统的多线程并发处理功能,记录脏数据中用户编码信息,利用第二数据系统中提供的数据清除接口,将迁移期间存在交易的客户对应的迁移脏数据从第二数据系统中清除。

在一种可选的实施方式中,所述方法还包括:

在所述第一数据系统中设定系统代理功能,所述系统代理功能设定为:

若所述待迁移数据对应的用户编码信息未被迁移至所述第二数据系统,则获取所述用户编码信息对应的用户在所述第一数据系统中所产生的业务数据;

若所述待迁移数据对应的用户编码信息已经被迁移至所述第二数据系统中,则将所述用户编码信息对应的用户在所述第一数据系统中所产生的业务数据同步至所述第二数据系统中。

通过在第一数据系统中设定系统代理功能,能够保证未迁移的用户继续使用老系统,迁移完毕的用户自动代理到新系统。

本公开实施例将所述第一数据系统中的业务数据回灌到所述第二数据系统中,能够保证数据不会有所遗漏,保证数据的完整性,清理所述脏数据,能够合理避免不确定性数据导致系统出错。

本公开实施例的不停机数据迁移方法可以在任意一天进行数据迁移,在数据迁移过程中,第一数据库、数据存储仓库以及第二数据库都不影响业务的正常运行,并且数据存储仓库和第二数据库出现异常情况时,任何时候都可以回滚,甚至可以删除数据存储仓库和第二数据库进行重新迁移,完全不影响业务正常运行,有较大空间完成数据验证对比,保证数据迁移结果的正确性。

本公开实施例所提供的不停机数据迁移方法,将第一数据系统的业务表数据存储到数据存储仓库中,获取所述数据存储仓库的离线表数据,通过将待迁移数据存储到数据存储仓库中,能够缓解第二数据系统的存储压力,而且为数据迁移提供了缓冲时间和缓冲存储空间;

配置第二数据系统的配置信息,使得第二数据系统能够在项目运行过程中动态无感知的修改配置从而调整项目逻辑的执行方式;

根据所述离线表数据以及所述业务表数据,将所述待迁移数据从所述数据存储仓库中迁移到所述第二数据系统,并且获取所述待迁移数据迁移过程中所产生的脏数据通过离线表数据和业务表数据,在数据迁移后,能够使得数据有所对应,不会造成数据混乱;

将所述第一数据系统中的业务数据回灌到所述第二数据系统中,能够保证数据不会有所遗漏,保证数据的完整性,清理所述脏数据,能够合理避免不确定性数据导致系统出错,降低数据迁移停业务带来的损失,降低夜间人员值班的人力成本,实现对客无感知,增强数据迁移的灵活,提高数据迁移的效率。

图2示例性地示出本公开实施例不停机数据迁移装置的结构示意图,如图2所示,所述装置包括:

获取单元21,用于将第一数据系统的业务表数据存储到数据存储仓库中,获取所述数据存储仓库的离线表数据,其中,所述第一数据系统配置为待迁移数据所在的业务系统,所述待迁移数据包括用户编码信息,所述业务表数据用于指示用户在所述第一数据系统的交易业务的属性数据,所述离线表数据用于指示离线状态下交易业务的属性数据;

配置单元22,用于配置第二数据系统的配置信息,所述第二数据系统配置为所述待迁移数据将要迁入的数据系统;

迁移单元23,用于根据所述离线表数据以及所述业务表数据,将所述待迁移数据从所述数据存储仓库中迁移到所述第二数据系统,并且获取所述待迁移数据迁移过程中所产生的脏数据;

清理单元24,用于将所述第一数据系统中的业务数据回灌到所述第二数据系统中,并清理所述脏数据,其中,所述业务数据用于指示用户在所述第一数据系统的交易业务。

可选地,所述获取单元21还用于:

在所述待迁移数据迁移之前,开启所述业务系统的交易记录开关,所述交易记录开关用于开始或者结束记录在数据迁移过程中的交易情况;

在所述待迁移数据迁移到所述第二数据系统后,关闭所述交易记录开关,将所述待迁移数据迁移过程中变动的用户编码信息作为脏数据。

可选地,所述清理单元24还用于:

开启所述业务系统的多线程并发处理功能,获取所述脏数据所包含的用户编码信息;

基于所述第二数据系统的数据清除接口,将迁移期间存在交易客户对应的用户编码信息从所述第二数据系统中清除。

可选地,所述装置还包括代理单元,所述代理单元用于:

在所述第一数据系统中设定系统代理功能,所述系统代理功能设定为:

若所述待迁移数据对应的用户编码信息未被迁移至所述第二数据系统,则获取所述用户编码信息对应的用户在所述第一数据系统中所产生的业务数据;

若所述待迁移数据对应的用户编码信息已经被迁移至所述第二数据系统中,则将所述用户编码信息对应的用户在所述第一数据系统中所产生的业务数据同步至所述第二数据系统中。

可选地,所述配置单元还用于配置所述第二数据系统的数据接口以及配置属性值,以使所述待迁移数据动态无感知迁入所述第二数据系统。

本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。

其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(applicationspecificintegratedcircuits,简称:asic)中。另外,该asic可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(rom)、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

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

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