CN116860716A - 数据迁移方法、装置及存储介质 - Google Patents
数据迁移方法、装置及存储介质 Download PDFInfo
- Publication number
- CN116860716A CN116860716A CN202310720579.8A CN202310720579A CN116860716A CN 116860716 A CN116860716 A CN 116860716A CN 202310720579 A CN202310720579 A CN 202310720579A CN 116860716 A CN116860716 A CN 116860716A
- Authority
- CN
- China
- Prior art keywords
- data
- migration
- column
- target
- original data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005012 migration Effects 0.000 title claims abstract description 359
- 238000013508 migration Methods 0.000 title claims abstract description 356
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000004458 analytical method Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 description 25
- 230000015654 memory Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种数据迁移方法、装置及存储介质,所述的方法包括:读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句,基于所述写SQL语句的解析结果,判断所述写SQL语句中的第一目标数据是否与所述原始数据列中的数据关联;基于所述判断结果,根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置。本公开提供的方案,能够在用户的应用系统不停机、且不侵入用户的应用系统的前提下完成数据迁移。
Description
技术领域
本公开涉及数据迁移领域,尤其涉及一种数据迁移方法、装置及存储介质。
背景技术
随着用户的应用系统规模的逐渐增长,业务变更,不可避免的将产生数据迁移需求信息。比如,应用系统重构后数据库结构发生了变化时,或者决定对某个字段执行加密操作时,旧数据也需要进行加密,此时,也将产生数据迁移需求信息。相关技术中采用将用户的应用系统停机的方式,或修改用户的应用系统中程序代码以进行同步双写的不停机方式进行数据迁移。但是用户的应用系统停机时,用户无法使用系统;修改用户应用系统的程序代码的方式实施难度大,且对用户的应用系统具有入侵性。
发明内容
本公开提供一种数据迁移方法、装置及存储介质,以解决相关技术中进行数据迁移时,需要用户的应用系统停机或者对用户的应用系统具有侵入性的问题。
本公开的第一方面实施例提出了一种数据迁移方法,包括:
读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;
读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句,基于所述写SQL语句的解析结果,判断所述写SQL语句中的第一目标数据是否与所述原始数据列中的数据关联;
基于所述判断结果,根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置。
在本公开的一些实施例中,所述基于所述判断结果,根据原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置,包括:
根据所述原始数据列中数据的迁移需求信息,构建所述迁移目标列;
若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据写入所述迁移目标列对应的位置;
若所述写SQL语句中的所述第一目标数据不与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述原始数据列中的数据写入所述迁移目标列对应的位置。
在本公开的一些实施例中,所述的方法还包括:
将所述原始数据列中与所述迁移目标列中已写入数据的位置对应的位置的数据删除。
在本公开的一些实施例中,所述的方法还包括:
读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;
基于所述读SQL语句的解析结果,判断所述读SQL语句中的第二目标数据是否与所述原始数据列中的数据关联;
若所述读SQL语句中的第二目标数据与所述原始数据列中的数据关联,则按照所述原始数据列中的数据格式将所述迁移目标列中的数据写入所述原始数据列,并向所述用户的应用系统发送所述第二目标数据。
在本公开的一些实施例中,所述的方法还包括:
基于所述原始数据列中是否有数据判断数据迁移是否完成;
若数据迁移完成,则删除所述原始数据列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
在本公开的一些实施例中,所述的方法还包括:
若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中的数据格式,将所述第一目标数据写入所述原始数据列对应的位置;
构建迁移完成标记列,并在所述迁移完成标记列中与所述迁移目标列中有数据的位置对应的位置写入迁移完成标识。
在本公开的一些实施例中,所述的方法还包括:
读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;
基于所述读SQL语句的解析结果,从所述原始数据列中读取对应的数据。
在本公开的一些实施例中,所述的方法还包括:
基于所述迁移完成标记列中的迁移完成标识判断数据迁移是否完成;
若数据迁移完成,则删除所述原始数据列和迁移完成标记列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
本公开的第二方面实施例提出了一种数据迁移装置,包括:
获取模块,用于读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;
判断模块,用于读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句,基于所述写SQL语句的解析结果,判断所述写SQL语句中的第一目标数据是否与所述原始数据列中的数据关联;
迁移模块,用于基于所述判断结果,根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置。
本公开的第三方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行本公开第一方面实施例中描述的方法的步骤。
综上,本公开提供的数据迁移方法,包括:读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句,基于所述写SQL语句的解析结果,判断所述写SQL语句中的第一目标数据是否与所述原始数据列中的数据关联;基于所述判断结果,根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置。本公开提供的方案,在进行数据迁移时,能够将所述用户的应用系统的写SQL语句中的目标数据写入所述迁移目标列的对应位置,在所述用户的应用系统不停机的前提下实现了数据的平滑迁移。进一步的,本公开只需读取并解析用户的应用系统发出的读SQL语句,不需要修改所述用户的应用系统,对所述用户的应用系统没有侵入性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1为本公开实施例提供的相关技术中方案A的原理框图;
图2为本公开实施例提供的相关技术中方案B的原理框图;
图3为本公开实施例提供的数据迁移方法的流程示意图;
图4为本公开实施例提供的数据迁移装置的结构示意图;
图5为本公开应用示例提供的一个应用场景中原始数据表的结构示意图;
图6为本公开应用示例提供的一个应用场景中目标数据表的结构示意图;
图7为本公开应用示例一提供的数据迁移方法的流程示意图;
图8为本公开应用示例一提供的迁移需求信息的结构示意图;
图9为本公开应用示例一提供的迁移目标列的结构示意图;
图10为本公开应用示例一提供的插入数据的原理框图;
图11为本公开应用示例一提供的更新数据的原理框图;
图12为本公开应用示例一提供的读取数据的原理框图;
图13为本公开应用示例一提供的数据迁移完成的结构框图;
图14为本公开应用示例二提供的数据迁移方法的流程示意图;
图15为本公开应用示例二提供的迁移目标列的结构示意图;
图16为本公开应用示例二提供的插入数据的原理框图;
图17为本公开应用示例二提供的更新数据的原理框图;
图18为本公开应用示例二提供的数据迁移完成的结构框图。
具体实施方式
下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
随着用户应用系统的系统规模逐渐增长,业务变更,不可避免的产生数据迁移的需求。比如应用系统重构后数据库表结构发生了变化,或者决定对数据库表中某个字段执行加密操作时,需要考虑将原本已有的旧数据也进行加密,也会涉及到数据迁移。还有其他很多场景都需要迁移数据。比如分库分表,比如用户更换了数据库等。
进行数据迁移时,相关技术中主要采用以下两种方案:
方案A:如图1所示,用户应用系统停机,利用ETL(Extract-Transform-Load)工具进行数据迁移;具体的:
ETL用来描述将数据从数据源端经过抽取(extract)、转换(transform)、加载(load)至目标端的过程。利用ETL工具进行数据迁移时,首先将用户的应用系统停机,然后利用ETL工具进行数据迁移。在数据迁移期间,执行人可以随时参与并调整数据迁移过程,迁移方式灵活,且能监控并确保数据迁移完成。但是,由于数据迁移时,数据间的依赖性比较强,应用系统无法进行正确的数据读写操作,因此,必须将用户的应用系统停机。
方案B:如图2所示,用户的应用系统不停机,改造用户应用系统,利用同步双写的方式,实现数据迁移的同时,保证用户能够正常读写数据;具体的:
对应用系统的可用性有更高要求的用户,不能接受应用系统停机。因此,只能通过改造应用系统的方式,利用同步双写的方式在数据迁移的同时保证数据的正常读写。同步双写的方式指,用户在对数据进行写入操作时,应用系统同时在数据源端和目标端同时写入数据,从数据源端读取数据,同时利用数据迁移工具进行数据迁移。此数据迁移方案能够将数据迁移操作对用户的正常业务影响降到最低。
但是上述两种方案也存在缺陷。
方案A:利用方案A进行数据迁移时,必须将用户的应用系统停机。当用于对应用系统的可用性要求高,或者因需迁移的数据量大导致用户的应用系统停机时间过长时,用户是无法接受的。
方案B:利用方案B进行数据迁移时,虽然能够在不停机的情况下平滑的迁移数据,但是此方案对用户提出了更高的要求。由于需要对用户的应用系统进行改造,修改用户应用程序中的程序代码以实现同步双写,因此不仅对用户的应用系统具备入侵性,且改造难度大。
为了解决上述缺陷中的至少一个问题,本公开提出了一种数据迁移方案,能够在用户的应用系统不停机的情况下,既能使用户正常读写数据,又能完成数据迁移工作,且不需要修改用户的应用系统。
在详细介绍本公开提供的数据迁移方法前,先对本公开中的技术术语进行解释。
SQL:结构化查询语言(Structured Query Language),简称SQL;
ETL:全称为Extract-Transform-Load,用来描述将数据从源端经过抽取(extract)、转换(transform)、加载(load)至目标端的过程。
数据源:数据源是相对于用户的应用系统来说的,通常用户应用系统中创建的一个数据源,对应连接一个数据库。也有可能用户应用中创建多个数据源,连接的是同一个数据库,即数据源是逻辑上的数据库。
迁移源:需要迁移的数据的来源。迁移源可以是一个数据库,一个数据表,一个数据表中的某一列。比如从A表将数据复制到B表,A表就是迁移源。或者从T表的C1列将数据复制到C2列,那么C1就是迁移源。
迁移目标:数据迁移到的目标位置。与迁移源对应,迁移目标可以是一个数据库,一个数据表,一个数据表中的某一列。比如从A表将数据复制到B表,B表就是迁移目标。或者从T表的C1列将数据复制到C2列,那么C2就是迁移目标。
数据迁移:将数据从迁移源复制到迁移目标的过程。根据迁移源和迁移目标,数据迁移可以迁移整个数据集,也可以迁移部分数据集。
同构迁移:从迁移源复制数据到迁移目标,其中迁移源的数据库和迁移目标的数据库属于同一提供商的同一数据库管理系统。
异构迁移:从迁移源复制数据到迁移目标,其中迁移源的数据库和迁移目标的数据库属于不同提供商的不同数据库管理系统。
DAC:英文全称为Data Access Controller,中文全称为数据访问控制器。DAC是用户应用系统与数据库之间的代理程序,处理用户对数据库操作,也执行从迁移源到迁移目标的数据迁移任务。
用户的应用系统:企业内容的业务系统、软件、管理系统等需要访问数据库的程序。
如图3所示,本公开实施例提供了一种数据迁移方法,包括以下步骤:
步骤301:读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;
其中,从迁移源迁移到迁移目标的数据集,可以是数据库级别的迁移,也可以是数据表级别的迁移,还可以是数据列级别的迁移。可以是同构迁移,也可以是异构迁移,本公开中对此不作限定。
但是,不论需迁移的数据集的粒度是什么级别,最终都可转化为数据列级别的迁移。比如数据表级别的迁移能够拆分为多个数据列级别的迁移,而数据库级别的迁移则能够拆分为多个数据表级别的迁移。
因此,由所述用户的应用系统发出的数据集的迁移需求都可配置为所述原始数据列的数据迁移配置信息。本公开中所述的原始数据列可以是一列,也可以是多列,本公开中对此不做限定。
在本公开的实施例中,所述迁移源为原始数据列,所述迁移目标为迁移目标列。
进一步的,由于产生数据迁移的需求不同,比如需要对所述原始数据列中的数据进行加密操作,则其迁移需求为将原始数据列中的数据以加密的方式写入所述迁移目标列。所述的迁移需求信息也可以是其他数据格式的转换需求信息,或者调整数据值的大小等信息,本公开中对此不做限定。比如,用户现有的应用系统要实施合规性改造,要求用户的应用系统中保存的敏感数据都进行加密处理,对于用户无法改造,但是仍要实现合规的应用系统,可采用本公开所提供的数据迁移方法实现加密存储数据。即本公开所提供的数据迁移方法可支持用户的应用系统不停机且无侵入的前提下实现数据类型或格式的转换。
步骤302:读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句,基于所述写SQL语句的解析结果,判断所述写SQL语句中的第一目标数据是否与所述原始数据列中的数据关联;
为了实现在所述用户的应用系统不停机的前提下完成数据迁移,则必须保证数据迁移过程中,如果所述用户的应用系统写操作与所述原始数据列中的数据关联,则所述写操作也能在所述目标数据列中体现。因此,还需读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句。所述写SQL语句可以是更新/插入语句,也可以是删除语句。比如更新所述原始数据列中的某一位置的数据值,或者在所述原始数据列的某一位置插入一个数据,或者删除原始数据列中某一位置的值。所述更新所述原始数据列中的某一位置的数据值,具体可以是改变所述原始数据列中数据的格式,比如更新为加密格式等。本申请中对所述写SQL语句的具体操作类型不做限定。
步骤303:基于所述判断结果,根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置。
通过上述描述可知,所述第一目标数据可以是更新/插入的数据,也可以是需要删除的数据。因此,当所述第一目标数据与所述原始数据列中的数据关联时,需要根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据写入迁移目标列对应的位置。比如以下描述中的一种示例性实施方式:所述原始数据列表示邮箱数据,所述原始数据列中数据的迁移需求信息指示加密需求,所述写SQL语句的解析结果为向所述原始数据列插入一个邮箱数据(第一目标数据),则需要将所述第一目标数据加密后写入所述迁移目标列。
本公开实施例提供的数据迁移方法,在进行数据迁移时,能够将所述用户的应用系统的写SQL语句中的目标数据写入所述迁移目标列的对应位置,在所述用户的应用系统不停机的前提下实现了数据的平滑迁移。进一步的,本公开只需读取并解析用户的应用系统发出的读SQL语句,不需要修改所述用户的应用系统,对所述用户的应用系统没有侵入性。
进一步的,若所述写SQL语句中的所述第一目标数据不与所述原始数据列中的数据关联,也就是说,所述写SQL语句的操作对象不是迁移源,则在迁移过程中无需关注所述第一目标数据。
基于此,在一实施例中,所述基于所述判断结果,根据原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置,包括:
根据所述原始数据列中数据的迁移需求信息,构建所述迁移目标列;
若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据写入所述迁移目标列对应的位置;
若所述写SQL语句中的所述第一目标数据不与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述原始数据列中的数据写入所述迁移目标列对应的位置。
其中,可以通过相关技术中的迁移程序或迁移工具将所述原始数据列中的数据写入所述迁移目标列对应的位置,本公开中对此不做限定。
在一实施例中,所述写SQL语句中的写操作为更新操作,则将所述写SQL语句中的所述第一目标数据写入所述迁移目标列对应的位置后,如果所述原始数据列对应的位置还存有数据,则后续数据迁移过程中可能出现将所述原始数据列中未更新的数据写入所述迁移目标列的情况。
基于此,在一实施例中,本公开实施例提供的数据迁移方法还包括:
将所述原始数据列中与所述迁移目标列中已写入数据的位置对应的位置的数据删除。
其中,所述写入数据指示的操作可以是更新/插入、删除等,本公开中对此不做限定。
数据迁移的过程是在所述迁移目标列写入特定数据的过程,因此只需保证数据迁移的过程中,所述用户的应用系统发出的写SQL语句能够有效的写入所述目标迁移列,即可实现在所述用户的应用系统不停机的前提下完成数据迁移。但是在数据迁移的过程中,所述用户的应用系统还可能发出读SQL语句,为了进一步提升数据迁移的平滑性,还需实现所述读SQL语句对应的读操作。
基于此,在一实施例中,本公开实施例提供的数据迁移方法还包括:
读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;
基于所述读SQL语句的解析结果,判断所述读SQL语句中的第二目标数据是否与所述原始数据列中的数据关联;
若所述读SQL语句中的第二目标数据与所述原始数据列中的数据关联,则按照所述原始数据列中的数据格式将所述迁移目标列中的数据写入所述原始数据列,并向所述用户的应用系统发送所述第二目标数据。
仍以所述原始数据列表示邮箱数据,所述原始数据列中数据的迁移需求信息指示加密需求为例,所述读SQL语句的解析结果为读取所述原始数据列中的一个邮箱数据(第二目标数据)。为了所述用户的应用系统能够正常读取到所述第二目标数据,需将所述迁移目标列中的所述第二目标数据解密后写入所述原始数据列,基于所述原始数据列的地址与所述用户的应用系统的读数据地址的关联性,保证所述用户的应用系统能够读取到有效的所述第二目标数据。
在一实施例中,当数据迁移完成后,无需再读取所述用户的应用系统发出的读SQL语句和写SQL语句,因为此时,所述用户的应用系统发出的读SQL语句和写SQL语句可以直接访问所述迁移目标列。
基于此,在一实施例中,本公开实施例提供的数据迁移方法还包括:基于所述原始数据列中是否有数据判断数据迁移是否完成;
若数据迁移完成,则删除所述原始数据列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
当需要迁移的数据中的某一数据完成迁移时,所述迁移目标列对应的位置中应已写入了数据。因此,为了更便捷的判断数据迁移是否完成,可以构建迁移完成标记列。同时为了更便捷的读取数据,可以将所述第一目标数据采用双写的方式同时写入所述原始数据列对应的位置。
基于此,在一实施例中,本公开实施例提供的数据迁移方法还包括:
若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中的数据格式,将所述第一目标数据写入所述原始数据列对应的位置;
构建迁移完成标记列,并在所述迁移完成标记列中与所述迁移目标列中有数据的位置对应的位置写入迁移完成标识。
其中,所述迁移完成标识可以是二进制字符中的“0”或“1”,比如所述迁移目标列中有数据的位置对应的所述迁移完成标识为“1”,所述迁移目标列中没有数据的位置对应的标识为“0”。也可采用其他迁移完成标识以标识所述数据迁移是否完成,本公开中对此不做限定。
由于构建了所述迁移完成标识列,因此可基于所述迁移完成标记列中的所述迁移完成标识判断所述迁移目标列中是否已写入数据。在此前提下,将不会出现前述实施例中后续数据迁移过程中可能出现将所述原始数据列中未更新的数据写入所述迁移目标列的情况,因此,也可采用不删除所述原始数据列对应的位置中的数据。同时,为了保证所述原始数据列的数据完整性,便于数据读取,还将所述第一目标数据写入所述原始数据列对应的位置。此时,接收到所述用户的应用系统发出的读SQL语句时,只需读取所述原始数据列对应位置的数据即可。
基于此,在一实施例中,本公开实施例提供的数据迁移方法还包括:
读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;
基于所述读SQL语句的解析结果,从所述原始数据列中读取对应的数据。
进一步的,还可根据所述迁移完成标识列中的所述迁移完成标识,判断数据迁移是否已全部完成。
基于此,在一实施例中,本公开实施例提供的数据迁移方法还包括:
基于所述迁移完成标记列中的迁移完成标识判断数据迁移是否完成;
若数据迁移完成,则删除所述原始数据列和迁移完成标记列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
综上,本公开实施例提供的数据迁移方法,在数据迁移的过程中,能够正常执行所述用户的应用系统发出的读SQL语句和写SQL语句,实现了不停机数据迁移,将数据迁移对用户的影响降到了最低。
其次,数据迁移过程中,执行所述用户的应用系统发出的写SQL语句对应的写操作后,无论是否删除所述原始数据列中的数据,在执行所述用户的应用系统发出的读SQL语句对应的读操作时,都可基于所述读SQL语句关联的地址读取所述原始数据列中的数据,用户对数据迁移过程是无感知的,数据迁移的平滑性更好。
进一步的,数据迁移的过程中,通过迁移程序或者迁移工作对所述原始数据列中的数据进行迁移,所述用户的应用系统发出的写SQL语句和读SQL语句通过解析后执行,无需改变所述用户的应用系统的程序代码,实现难度低,且对所述用户的应用系统无侵入性。
为了实现本公开实施例提供的数据迁移方法,本公开实施例还提供一种数据迁移装置,如图4所示,所述数据迁移装置400包括:
获取模块401,用于读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;
判断模块402,用于读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句,基于所述写SQL语句的解析结果,判断所述写SQL语句中的第一目标数据是否与所述原始数据列中的数据关联;
迁移模块403,用于基于所述判断结果,根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置。
在一实施例中,所述迁移模块403,具体用于:
根据所述原始数据列中数据的迁移需求信息,构建所述迁移目标列;
若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据写入所述迁移目标列对应的位置;
若所述写SQL语句中的所述第一目标数据不与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述原始数据列中的数据写入所述迁移目标列对应的位置。
在一实施例中,所述数据迁移装置400,还包括删除模块,所述删除模块用于:
将所述原始数据列中与所述迁移目标列中已写入数据的位置对应的位置的数据删除。
在一实施例中,所述数据迁移装置400,还包括第一读取模块,所述第一读取模块用于:
读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;
基于所述读SQL语句的解析结果,判断所述读SQL语句中的第二目标数据是否与所述原始数据列中的数据关联;
若所述读SQL语句中的第二目标数据与所述原始数据列中的数据关联,则按照所述原始数据列中的数据格式将所述迁移目标列中的数据写入所述原始数据列,并向所述用户的应用系统发送所述第二目标数据。
在一实施例中,所述数据迁移装置400,还包括第一停止模块,所述第一停止模块用于:
基于所述原始数据列中是否有数据判断数据迁移是否完成;
若数据迁移完成,则删除所述原始数据列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
在一实施例中,所述数据迁移装置400,还包括构建模块,所述构建模块用于:
若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中的数据格式,将所述第一目标数据写入所述原始数据列对应的位置;
构建迁移完成标记列,并在所述迁移完成标记列中与所述迁移目标列中有数据的位置对应的位置写入迁移完成标识。
在一实施例中,所述数据迁移装置400,还包括第二读取模块,所述第二读取模块用于:
读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;
基于所述读SQL语句的解析结果,从所述原始数据列中读取对应的数据。
在一实施例中,所述数据迁移装置400,还包括第二停止模块,所述第二停止模块用于:
基于所述迁移完成标记列中的迁移完成标识判断数据迁移是否完成;
若数据迁移完成,则删除所述原始数据列和迁移完成标记列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
本领域技术人员应当理解,图4所示的数据迁移装置400中各单元的实现功能可参照前述数据迁移方法的相关描述而理解。图4所示的数据迁移装置400中的各单元的功能可通过运行于处理器上的程序而实现,也可以通过具体的逻辑电路而实现。需要说明的是:上述实施例提供的数据迁移装置400在进行数据迁移时,仅以上述各程序单元的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序单元完成,即将系统的内部结构划分成不同的程序单元,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据迁移装置400与数据迁移方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
下面以具体的应用示例对本公开所述的数据迁移方法做进一步描述。
本公开应用示例的应用场景是由用户的数据加密需求产生的,具体的,如图5和图6所示,用户的原始数据表名称为Person,其中包含表示Person的信息的数据,分别为id、name和email。用户希望将email列的数据加密。也就是说,原始数据列为email列,迁移目标列为存储加密email数据的列。本公开应用示例提供的数据迁移方法,由DAC执行,所述DAC可以通过运行于处理器上的程序、软件、软件模块、脚本或代码的形式实现,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
应用示例一:
如图7所示,本公开应用示例一提供的数据迁移方法,包括以下步骤:
步骤701:DAC读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;
具体的,本公开的应用示例一中,由所述DAC解析得到的原始数据列中数据的迁移需求信息如图8所示。
步骤702:根据所述原始数据列中数据的迁移需求信息,DAC在Person中构建迁移目标列;
具体的,如图9所示,为了便于理解和描述,可将所述原始数据列的名称命名为email_old,将所述目标数据列的名称命名为email;需要注意的是,email_old列中的数据类型为varchar(64),而email中的数据类型为binary。
步骤703:DAC读取并解析由用户的应用系统发出的写SQL语句,若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据写入所述迁移目标列对应的位置;若所述写SQL语句中的所述第一目标数据不与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述原始数据列中的数据写入所述迁移目标列对应的位置;
具体的,以所述写SQL语句指示插入所述第一目标数据为例进行如下说明:
如图10所示,首先所述DAC接收由所述用户的应用系统发出的指示插入数据(第一目标数据)的SQL语句,然后所述DAC解析所述指示插入数据的SQL语句,并根据解析结果查看所述原始数据列中数据的迁移需求信息,若DAC判断所述第一目标数据与email_old列中的数据关联,则根据所述email_old列中数据的加密需求,对所述第一目标数据进行加密并写入所述email列对应的位置。需要注意的是,此时,所述email_old列对应位置是没有数据的。
所述email列其他的位置的数据,由DAC根据所述email_old列中数据的加密需求,对所述email_old列中的数据进行加密后直接写入所述email列。
以所述写SQL语句指示更新所述第一目标数据为例进行如下说明:
如图11所示,首先所述DAC接收由所述用户的应用系统发出的指示更新数据(第一目标数据)的SQL语句,然后所述DAC解析所述指示更新数据的SQL语句,并根据解析结果查看所述原始数据列中数据的迁移需求信息,若DAC判断所述第一目标数据与所述email_old列中的数据关联,则根据所述email_old列中数据的加密需求,对所述第一目标数据进行加密并写入所述email列对应的位置。需要注意的是,此时需要对所述email_old列对应位置置空,也就是说,所述email_old列对应位置是没有数据的。
所述email列其他的位置的数据,由DAC根据所述email_old列中数据的加密需求,对所述email_old列中的数据进行加密后直接写入所述email列。
以所述写SQL语句指示删除所述第一目标数据为例进行如下说明:
删除的场景中,所述email_old列对应位置的数据被删除,也就没有数据迁移需求。
步骤704:DAC读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;基于所述读SQL语句的解析结果,判断所述读SQL语句中的第二目标数据是否与所述原始数据列中的数据关联;若所述读SQL语句中的第二目标数据与所述原始数据列中的数据关联,则按照所述原始数据列中的数据格式将所述迁移目标列中的数据写入所述原始数据列,并向所述用户的应用系统发送所述第二目标数据;
具体的,如图12所示,根据步骤703所述,若DAC根据由所述用户的应用系统发出的读SQL语句判断,所述第二目标数据与所述email_old列中的数据关联,如果此时所述email_old列中的数据已写入所述email列,则所述email_old列中无数据,即用户无法有效的读取所述第二目标数据。此时,按照所述email_old列中的数据格式(解密的varchar(64)类型数据)将所述email列中的数据写入所述email_old列,并向所述用户的应用系统发送所述第二目标数据,实现用户对所述email_old列中数据的读取。
步骤705:DAC基于所述原始数据列中是否有数据判断数据迁移是否完成;若数据迁移完成,则删除所述原始数据列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
具体的,按照上述步骤701至步骤705完成迁移后的数据表Person如图13所示,需要说明的是,为了便于理解,图13中并未删除所述email_old列。
应用示例二:
如图14所示,本公开应用示例二提供的数据迁移方法,包括以下步骤:
步骤1401:DAC读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;
具体的,本公开的应用示例二中,由所述DAC解析得到的原始数据列中数据的迁移需求信息也如图8所示。
步骤1402:根据所述原始数据列中数据的迁移需求信息,DAC在Person中构建迁移目标列;
具体的,如图15所示,为了便于理解和描述,本公开的应用实例二中,可将所述原始数据列的名称命名为email,将所述目标数据列的名称命名为email_new;需要注意的是,与本公开的应用实例一不同的是,email列中的数据类型为varchar(64),而email_new中的数据类型为binary。
步骤1403:DAC读取并解析由用户的应用系统发出的写SQL语句,若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据写入所述迁移目标列对应的位置;若所述写SQL语句中的所述第一目标数据不与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述原始数据列中的数据写入所述迁移目标列对应的位置;同时,若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中的数据格式,将所述第一目标数据写入所述原始数据列对应的位置;构建迁移完成标记列,并在所述迁移完成标记列中与所述迁移目标列中有数据的位置对应的位置写入迁移完成标识。
具体的,以所述写SQL语句指示插入所述第一目标数据为例进行如下说明:
如图16所示,首先所述DAC接收由所述用户的应用系统发出的指示插入数据(第一目标数据)的SQL语句,然后所述DAC解析所述指示插入数据的SQL语句,并根据解析结果查看所述原始数据列中数据的迁移需求信息,若DAC判断所述第一目标数据与email列中的数据关联,则根据所述email列中数据的加密需求,对所述第一目标数据进行加密并写入所述email_new列对应的位置。需要注意的是,此时,所述email列对应位置也写入了所述第一目标数据。
所述email_new列其他的位置的数据,由DAC根据所述email列中数据的加密需求,对所述email列中的数据进行加密后直接写入所述email_new列。
同时,若所述email_new列存在数据,则将所述迁移完成标记列migrate_flag中的迁移完成标识由“0”置“1”。
以所述写SQL语句指示更新所述第一目标数据为例进行如下说明:
如图17所示,首先所述DAC接收由所述用户的应用系统发出的指示更新数据(第一目标数据)的SQL语句,然后所述DAC解析所述指示更新数据的SQL语句,并根据解析结果查看所述原始数据列中数据的迁移需求信息,若DAC判断所述第一目标数据与所述email列中的数据关联,则根据所述email列中数据的加密需求,对所述第一目标数据进行加密并写入所述email_new列对应的位置。需要注意的是,需要注意的是,此时,所述email列对应位置也写入了所述第一目标数据。
所述email_new列其他的位置的数据,由DAC根据所述email列中数据的加密需求,对所述email列中的数据进行加密后直接写入所述email_new列。
同时,若所述email_new列存在数据,则将所述迁移完成标记列migrate_flag中的迁移完成标识由“0”置“1”。
以所述写SQL语句指示删除所述第一目标数据为例进行如下说明:
删除的场景中,所述email列对应位置的数据被删除,也就没有数据迁移需求。
步骤1404:DAC读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;基于所述读SQL语句的解析结果,从所述原始数据列中读取对应的数据。
具体的,基于所述读SQL语句的解析结果,直接从email列中读取对应的数据。
步骤1405:DAC基于所述迁移完成标记列中的迁移完成标识判断数据迁移是否完成;若数据迁移完成,则删除所述原始数据列和迁移完成标记列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
为了便于后期使用,比如便于所述用户的应用系统从读写地址读写数据,还将所述迁移目标列的名称由email_new修改为email。
具体的,按照上述步骤1401至步骤1405完成迁移后的数据表Person如图18所示,需要说明的是,图18中为了便于理解,并未删除所述原始数据列和迁移完成标记列,也未将所述迁移目标列的名称由email_new修改为email。
综上,根据本公开应用示例一和应用实例二提供的数据迁移方法,在数据迁移的过程中,能够正常执行所述用户的应用系统发出的读SQL语句和写SQL语句,实现了不停机数据迁移,将数据迁移对用户的影响降到了最低。其次,数据迁移过程中,执行所述用户的应用系统发出的写SQL语句对应的写操作后,无论是否删除所述原始数据列中的数据,在执行所述用户的应用系统发出的读SQL语句对应的读操作时,都可基于所述读SQL语句关联的地址读取所述原始数据列中的数据,用户对数据迁移过程是无感知的,数据迁移的平滑性更好。进一步的,数据迁移的过程中,通过迁移程序或者迁移工作对所述原始数据列中的数据进行迁移,所述用户的应用系统发出的写SQL语句和读SQL语句通过解析后执行,无需改变所述用户的应用系统的程序代码,实现难度低,且对所述用户的应用系统无侵入性。进一步的,可根据用户的数据迁移需求,比如因加密需求产生的数据迁移,可以在用户的应用系统不停机、无侵入、无感知的前提下实现数据类型或格式的转换。
本公开实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令被所述计算机执行时,实现本公开实施例提供的数据迁移方法的步骤。
在一些实施例中,计算机可读存储介质可以是磁性随机存取存储器(FRAM,FerromagneticRandom Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。作为示例,计算机指令可以但不一定对应于文件系统中的文件,可以被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperTextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,计算机指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施实施进行变化、修改、替换和变型。
Claims (10)
1.一种数据迁移方法,其特征在于,包括:
读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;
读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句,基于所述写SQL语句的解析结果,判断所述写SQL语句中的第一目标数据是否与所述原始数据列中的数据关联;
基于所述判断结果,根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置。
2.根据权利要求1所述的方法,其特征在于,所述基于所述判断结果,根据原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置,包括:
根据所述原始数据列中数据的迁移需求信息,构建所述迁移目标列;
若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据写入所述迁移目标列对应的位置;
若所述写SQL语句中的所述第一目标数据不与所述原始数据列中的数据关联,则根据所述原始数据列中数据的迁移需求信息,将所述原始数据列中的数据写入所述迁移目标列对应的位置。
3.根据权利要求2所述的方法,其特征在于,还包括:
将所述原始数据列中与所述迁移目标列中已写入数据的位置对应的位置的数据删除。
4.根据权利要求3所述的方法,其特征在于,还包括:
读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;
基于所述读SQL语句的解析结果,判断所述读SQL语句中的第二目标数据是否与所述原始数据列中的数据关联;
若所述读SQL语句中的第二目标数据与所述原始数据列中的数据关联,则按照所述原始数据列中的数据格式将所述迁移目标列中的数据写入所述原始数据列,并向所述用户的应用系统发送所述第二目标数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
基于所述原始数据列中是否有数据判断数据迁移是否完成;
若数据迁移完成,则删除所述原始数据列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
6.根据权利要求2所述的方法,其特征在于,还包括:
若所述写SQL语句中的所述第一目标数据与所述原始数据列中的数据关联,则根据所述原始数据列中的数据格式,将所述第一目标数据写入所述原始数据列对应的位置;
构建迁移完成标记列,并在所述迁移完成标记列中与所述迁移目标列中有数据的位置对应的位置写入迁移完成标识。
7.根据权利要求6所述的方法,其特征在于,还包括:
读取并解析由所述用户的应用系统发出的读SQL语句,获取所述读SQL语句的解析结果;
基于所述读SQL语句的解析结果,从所述原始数据列中读取对应的数据。
8.根据权利要求7所述的方法,其特征在于,还包括:
基于所述迁移完成标记列中的迁移完成标识判断数据迁移是否完成;
若数据迁移完成,则删除所述原始数据列和迁移完成标记列,并停止读取所述用户系统发出的读SQL语句和写SQL语句。
9.一种数据迁移装置,其特征在于,包括:
获取模块,用于读取并解析由用户的应用系统发出的原始数据列的数据迁移配置信息,获取所述原始数据列中数据的迁移需求信息;
判断模块,用于读取并解析由所述用户的应用系统发出的写结构化查询语言SQL语句,基于所述写SQL语句的解析结果,判断所述写SQL语句中的第一目标数据是否与所述原始数据列中的数据关联;
迁移模块,用于基于所述判断结果,根据所述原始数据列中数据的迁移需求信息,将所述第一目标数据或所述原始数据列中的数据写入迁移目标列对应的位置。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310720579.8A CN116860716B (zh) | 2023-06-16 | 2023-06-16 | 数据迁移方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310720579.8A CN116860716B (zh) | 2023-06-16 | 2023-06-16 | 数据迁移方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116860716A true CN116860716A (zh) | 2023-10-10 |
CN116860716B CN116860716B (zh) | 2023-12-22 |
Family
ID=88220710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310720579.8A Active CN116860716B (zh) | 2023-06-16 | 2023-06-16 | 数据迁移方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860716B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160140117A1 (en) * | 2014-11-14 | 2016-05-19 | Heiko Konrad | Asynchronous sql execution tool for zero downtime and migration to hana |
CN109408493A (zh) * | 2018-10-17 | 2019-03-01 | 成都四方伟业软件股份有限公司 | 一种数据源的迁移方法及系统 |
CN113821496A (zh) * | 2021-11-22 | 2021-12-21 | 深圳市明源云科技有限公司 | 数据库迁移方法、系统、设备及计算机可读存储介质 |
CN114116676A (zh) * | 2021-12-06 | 2022-03-01 | 拉扎斯网络科技(上海)有限公司 | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
CN114840497A (zh) * | 2022-05-31 | 2022-08-02 | 苏州浪潮智能科技有限公司 | 一种数据库的行迁移预处理方法、系统、装置及存储介质 |
-
2023
- 2023-06-16 CN CN202310720579.8A patent/CN116860716B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160140117A1 (en) * | 2014-11-14 | 2016-05-19 | Heiko Konrad | Asynchronous sql execution tool for zero downtime and migration to hana |
CN109408493A (zh) * | 2018-10-17 | 2019-03-01 | 成都四方伟业软件股份有限公司 | 一种数据源的迁移方法及系统 |
CN113821496A (zh) * | 2021-11-22 | 2021-12-21 | 深圳市明源云科技有限公司 | 数据库迁移方法、系统、设备及计算机可读存储介质 |
CN114116676A (zh) * | 2021-12-06 | 2022-03-01 | 拉扎斯网络科技(上海)有限公司 | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
CN114840497A (zh) * | 2022-05-31 | 2022-08-02 | 苏州浪潮智能科技有限公司 | 一种数据库的行迁移预处理方法、系统、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116860716B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10621211B2 (en) | Language tag management on international data storage | |
US9792284B2 (en) | System, method and computer program product for multilingual content management | |
US6826604B2 (en) | Input/output device information management system for multi-computer system | |
US20060161605A1 (en) | Data management system, a data management apparatus, a data management method, a data supplying system, and a computer-readable recording medium with a program recorded therein | |
US20120296878A1 (en) | File set consistency verification system, file set consistency verification method, and file set consistency verification program | |
US8874519B1 (en) | Method and apparatus for restoring a table in a database | |
CN103218227B (zh) | 一种安卓设备内置硬盘上兼容多种文件系统的方法及装置 | |
CN112149109B (zh) | 模块化权限控制管理方法及系统 | |
CN104794048A (zh) | 一种ui自动化测试方法和系统 | |
US20050216486A1 (en) | Methods and systems for software release management | |
CN114490677A (zh) | 数据分析系统中的数据同步 | |
US11030162B2 (en) | Distributed processing management method and distributed processing management apparatus | |
CN110321082B (zh) | 用于计算机的数据清除方法及设备 | |
US20110209135A1 (en) | Program Change Management Apparatus, Computer Readable Record Medium Storing Program Change Management Program, And Program Change Management Method | |
WO2021022703A1 (zh) | 软件项目重构方法、装置、计算机装置及存储介质 | |
CN114116505A (zh) | 代码测试方法及装置 | |
WO2002046909A1 (en) | Automatically deploy and upgrade an application based on markup language application definition | |
CN116860716B (zh) | 数据迁移方法、装置及存储介质 | |
US8924921B2 (en) | Abstracting business logic into centralized database controls | |
US20150269193A1 (en) | Schema validation for metadata builder | |
CN109947739B (zh) | 数据源管理方法及装置 | |
WO2016117007A1 (ja) | データベースシステム及びデータベース管理方法 | |
Thao et al. | Using versioned trees, change detection and node identity for three-way XML merging | |
JP2012203580A (ja) | 移行テスト支援システム、移行テスト支援プログラム、移行テスト支援方法 | |
US20090044195A1 (en) | method for performing tasks based on differences in machine state |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |