CN111241060A - 数据迁移方法、系统、设备及存储介质 - Google Patents
数据迁移方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111241060A CN111241060A CN202010018704.7A CN202010018704A CN111241060A CN 111241060 A CN111241060 A CN 111241060A CN 202010018704 A CN202010018704 A CN 202010018704A CN 111241060 A CN111241060 A CN 111241060A
- Authority
- CN
- China
- Prior art keywords
- data
- relational database
- snapshot
- cluster
- request
- 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.)
- Pending
Links
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本发明提供了一种数据迁移方法、系统、设备及存储介质,所述方法包括:在关系型数据库中建立数据表,并建立Elasticsearch集群中数据类型与所述数据表的映射关系;创建Elasticsearch集群中需迁移数据的快照;从所述快照中依次取出每条数据,并根据所述映射关系将取出的数据写入所述关系型数据库,至将所述快照中所有数据均写入所述关系型数据为止。通过采用本发明,可以在不停机的情况下对已有的Elasticsearch集群中的数据迁移至关系型数据库中,在迁移过程中用户的使用不受影响,迁移完成后可直接在关系型数据库中进行关联查询等应用。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据迁移方法、系统、设备及存储介质。
背景技术
Elasticsearch是一个基于Lucene库的搜索引擎,它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON(JavaScript Object Notation,JS对象简谱)文档。Elasticsearch的查询效率高,对海量数据可以进行近似实时的处理,其全文搜索性能较高,条件可以随意排列组合。此外,Elasticsearch对分布式的支持也较好,基于集群的环境可以方便横向扩展,可以将海量的数据分散到多台集群上去存储和检索。但Elasticsearch对事务的支持较差,包含多个文档的事务时不支持事务的正常回滚,对一致性和原子性支持较差。此外,对多种类型的文档之间做关联操作也没有很好的支持。
由上可见,虽然Elasticsearch搜索引擎很强大,但是对于一些复杂的关联查询及对数据一致性、可靠性的支持并没有传统的关系型数据库好,传统的关系型数据库仍有强项和存在价值。因此,在实际应用中,可能会需要将Elasticsearch集群的数据迁移至关系型数据库中。
目前已有的数据库迁移技术多是同类型的数据库之间进行迁移,或是将传统关系型数据库迁移至非关系型数据库,因此缺少一种数据库迁移技术,可以根据需求将非关系型数据库数据迁移至传统关系型数据库中,从而对于存储在非关系型数据库中的数据来说,无法很好地利用关系型数据库中对数据一致性、可靠性支持的优势。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种数据迁移方法、系统、设备及存储介质,实现将Elasticsearch集群的数据迁移至关系型数据库,对于非关系型数据库中的数据来说,可以更好地利用关系型数据库中对数据一致性、可靠性支持的优势。
本发明实施例提供一种数据迁移方法,包括如下步骤:
在关系型数据库中建立数据表,并建立Elasticsearch集群中数据类型与所述数据表的映射关系;
创建Elasticsearch集群中需迁移数据的快照;
从所述快照中依次取出每条数据,并根据所述映射关系将取出的数据写入所述关系型数据库,至将所述快照中所有数据均写入所述关系型数据为止。
可选地,所述建立Elasticsearch集群中数据类型与数据表的映射关系,包括:建立所述Elasticsearch集群中数据类型与所述关系型数据库中的数据表一对一的映射关系;或
建立所述Elasticsearch集群中数据类型与所述关系型数据库中的数据表多对一的映射关系;或
建立所述Elasticsearch集群中数据类型与所述关系型数据库中的数据表一对多的映射关系。
可选地,所述建立Elasticsearch集群中数据类型与数据表的映射关系的步骤,包括:建立所述Elasticsearch集群中数据类型与所述关系型数据库中的数据表一对多的映射关系,且同一数据类型所对应的多张数据表通过外键相互关联。
可选地,从所述快照中取出数据,并根据所述映射关系写入所述关系型数据库,包括如下步骤:
从所述快照中取出数据,生成写入取出的数据的结构化查询语言语句;
在所述关系型数据库中执行所述结构化查询语言语句。
可选地,所述创建Elasticsearch集群的快照之后,还包括:监听所述Elasticsearch集群的数据操作,生成数据操作记录;
从所述快照中取出数据,并根据所述映射关系写入所述关系型数据库之后,还包括:将所述数据操作记录同步至所述关系型数据库。
可选地,所述监听所述Elasticsearch集群的数据操作,包括如下步骤:
监听所述Elasticsearch集群的超文本传输协议HTTP请求;
从所述HTTP请求中筛选得到粘贴请求、写入请求和删除请求;
将筛选得到的粘贴请求、写入请求和删除请求的请求记录按照请求时间顺序添加至操作缓存队列。
可选地,将所述数据操作记录同步至所述关系型数据库,包括如下步骤:
依次从所述操作缓存队列中获取每条请求记录,根据每条所述请求记录生成结构化查询语言语句;
在所述关系型数据库中依次执行所述结构化查询语言语句,并在一结构化查询语言语句执行完毕后,从所述操作缓存队列中删除对应的请求记录;
所述操作缓存队列中不存在请求记录时,停止将所述数据操作记录同步至所述关系型数据库。
本发明实施例还提供一种数据迁移系统,应用于所述的数据迁移方法,所述系统包括:
映射模块,用于在关系型数据库中建立数据表,并建立Elasticsearch集群中数据类型与所述数据表的映射关系;
快照模块,用于创建Elasticsearch集群中需迁移数据的快照;
执行模块,用于从所述快照中依次取出每条数据,并根据所述映射关系将取出的数据写入所述关系型数据库,至将所述快照中所有数据均写入所述关系型数据为止。
本发明实施例还提供一种数据迁移设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的数据迁移方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的数据迁移方法的步骤。
本发明所提供的数据迁移方法、系统、设备及存储介质具有下列优点:
通过采用本发明,通过创建快照的方式进行数据迁移,可以在不停机的情况下对已有的Elasticsearch集群中的数据迁移至关系型数据库中,在迁移过程中由于不对Elasticsearch集群中的数据有所变动,也无需将Elasticsearch集群停机专门用于数据迁移,用户的使用不受影响,迁移完成前,用户仍可以在Elasticsearch集群中进行数据操作,迁移完成后,由于快照数据和Elasticsearch集群中数据的高度一致性,用户可直接在关系型数据库中进行关联查询等应用;由此,对于存储在Elasticsearch集群中数据来说,在迁移到关系型数据库中之后,可以更好地利用关系型数据库中对数据一致性、可靠性支持的优势。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例的数据迁移方法的流程图;
图2是本发明一实施例的快照数据写入和操作数据写入的流程图;
图3是本发明一实施例的数据迁移系统的结构示意图;
图4是本发明一实施例的数据迁移系统与数据库交互的示意图;
图5是本发明一实施例的数据迁移设备的结构示意图;
图6是本发明一实施例的计算机存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
为了解决现有技术的技术问题,本发明实施例提供一种数据迁移方法,可以方便地将已有的Elasticsearch集群中的数据迁移至关系型数据库中。
如图1所示,在该实施例中,所述数据迁移方法包括如下步骤:
S100:在关系型数据库中建立数据表,并建立Elasticsearch集群中数据类型与所述数据表的映射关系。
S200:创建Elasticsearch集群中需迁移数据的快照。
具体地,此处可以选定Elasticsearch集群中需要迁移的数据创建快照,如果是迁移Elasticsearch集群中所有数据,则对Elasticsearch集群中所有数据创建快照。
S300:从所述快照中依次取出每条数据,并根据所述映射关系将取出的数据写入所述关系型数据库,至将所述快照中所有数据均写入所述关系型数据为止。
其中,关系型数据库可以为各种不同类型的关系型数据库,例如MySQL数据库、Oracle数据库、Microsoft Access数据库等,均可以应用本发明的数据迁移方法。
Elasticsearch集群提供快照功能,通过快照可以实现Elasticsearch集群中的数据备份,可以在远程文件系统仓库中单独给部分索引或者整个集群创建快照。部分索引快照适用于部分数据迁移,整个集群快照适用于整体集群迁移。快照可以使用一些已有的工具,例如,使用snapshotAPI,取出Elasticsearch集群当前的状态和数据,然后保存到一个快照仓库中。
本发明的数据迁移方法首先通过步骤S100,建立Elasticsearch集群和关系型数据库的映射关系,通过步骤S200创建Elasticsearch集群的快照,并通过步骤S300根据映射关系执行迁移过程,从而可以在不停机的情况下对已有的Elasticsearch集群中的数据迁移至关系型数据库中,由于通过创建快照的方式进行数据迁移,因此Elasticsearch集群无需停机专用于数据迁移,在迁移过程中用户的使用不受影响,迁移完成前,用户仍可以在Elasticsearch集群中进行数据操作,迁移完成后,由于快照数据和Elasticsearch集群中数据的高度一致性,用户可直接在关系型数据库中进行关联查询等应用。
在该实施例中,所述步骤S100中建立的Elasticsearch集群中数据类型与数据表的映射关系,包括建立Elasticsearch集群中数据类型与关系型数据库中的数据表一对一的映射关系、多对一的映射关系或一对多的映射关系。
此处建立的映射关系逻辑上包括数据类型映射和字段映射。关系型数据库中通常包括库、模式、数据表和外键等层次结构。而Elasticsearch则通常使用JSON格式描述数据,是一种扁平化的表示,从而需要通过映射在关系型数据库中转化为对应的数据表及相应的外键。
将所述Elasticsearch集群中数据类型与所述关系型数据库中的数据库建立一对一的映射时,将Elasticsearch集群中一种数据类型的文档映射至关系型数据库中的一张数据表,一种数据类型的文档和对应的数据表之间的字段均可做一对一的映射。
将所述Elasticsearch集群中数据类型与所述关系型数据库中的数据库建立多对一映射时,将Elasticsearch集群中的多种类型的文档映射至关系型数据库中的一张数据表,且关系型数据库中该张数据表的字段均可在Elasticsearch集群中这些多种类型的文档中做一对一的映射。
将所述Elasticsearch集群中数据类型与所述关系型数据库中的数据库建立一对多映射时,将Elasticsearch集群中一种类型的文档映射至关系型数据库中的多张数据表中,且这些数据表之间可根据需要添加有相应的外键关联。Elasticsearch集群中文档的字段均可在这多张数据表中做一对一的映射。
如图2所示,在一个实施例中,步骤S300:将快照中的数据写入关系型数据库中包括:S310:从快照中依次取出一条数据,并根据映射关系将该取出的数据写入到关系型数据库中;S320:判断所述快照中是否还有数据要写入到关系型数据库中,如果是,则继续步骤S310,否则,快照数据写入完成。
在该实施例中,从所述快照中取出数据,并根据所述映射关系写入所述关系型数据库,包括如下步骤:
从所述快照中取出数据,生成写入取出的数据的结构化查询语言语句(SQL语句),所述结构化查询语言语句即为根据快照的位置(数据源位置)、关系型数据库的位置(数据目的位置)和操作指令类型(写入操作)生成的SQL语句;
在所述关系型数据库中执行所述结构化查询语言语句,从而实现将所述快照写入到所述关系型数据库中。通过采用结构化查询语言语句的方式,方便于操作人员编写数据迁移脚本,并且可以在关系型数据库中快速执行数据迁移操作,提高数据迁移效率。
进一步地,在一个实施例中,在关系型数据库中建立数据表之前,还可以包括建立关系型数据库。从而可以将Elasticsearch集群的数据迁移到该新建的关系型数据库中。在其他可替代的实施方式中,也可以采用本发明的数据迁移方法将Elasticsearch集群的数据迁移到已有的关系型数据库中。
在采用本发明的数据迁移方法进行数据迁移时,所述Elasticsearch集群为数据迁移的数据源,所述关系型数据库为迁移后的数据存储位置。在数据迁移过程中,由于采用快照对Elasticsearch集群一个时刻的需迁移数据进行了备份,在快照完成后到Elasticsearch集群中数据迁移完成之前,用户可能会对Elasticsearch集群进行数据操作,例如添加数据、删除数据、修改数据等等,这些操作会更改Elasticsearch集群中存储的数据,为了保证在数据迁移完成后,Elasticsearch集群中数据与所述关系型数据库中数据的一致性,该实施例的数据迁移方法还进一步包括操作同步。
具体地,创建Elasticsearch集群的快照的步骤之后,还包括监听Elasticsearch集群的数据操作,生成数据操作记录。具体地,在一个实施方式中,将数据操作记录按照操作顺序添加到操作缓存队列中。此处数据操作包括对数据的增加、删除、修改等操作。而对于查询、获取数据的操作,由于不会对Elasticsearch集群的存储数据造成影响,则可以直接忽略。
所述步骤S300:从所述快照中取出数据,并根据所述映射关系写入所述关系型数据库之后,还包括S400:从所述操作缓存队列中获取数据操作记录,将所述数据操作记录同步至所述关系型数据库。
具体地,在数据同步时,在所述操作缓存队列中依次取出一条数据操作记录,同步之后,将该条数据操作记录从操作缓存队列中删除,并判断操作缓存队列中是否还存在待同步的数据操作记录,如果是,则重复该动作,如果否,则停止数据操作同步。
因此,本发明在将数据从所述Elasticsearch集群迁移到所述关系型数据库中时,迁移过程中用户对所述Elasticsearch集群的数据进行的任何修改操作都将反馈到关系型数据库中,迁移完成后,所述关系型数据库中的数据与所述Elasticsearch集群当前的数据即为一致的,可以直接在所述关系型数据库中进行关联查询等应用。在该种情况下,用户即可以在原Elasticsearch集群中对数据进行操作,充分利用Elasticsearch集群的高效率查询优势,用户也可以在关系型数据库中对数据进行操作,充分利用关系型数据库中对数据一致性、可靠性支持的优势。在一个优选实施例中,监听Elasticsearch集群的数据操作,包括如下步骤:
监听Elasticsearch集群的HTTP(超文本传输协议)请求;
从所述HTTP请求中筛选得到POST(粘贴)请求、PUT(写入)请求和DELETE(删除)请求,并对于GET(获取)请求直接忽略;
将筛选得到的POST请求、PUT请求和DELETE请求的请求记录添加至操作缓存队列。
对应地,将所述数据操作记录同步至所述关系型数据库,包括如下步骤:
从操作缓存队列中获取请求记录,根据请求记录生成结构化查询语言语句(SQL语句),此处生成SQL语句即为根据请求记录的请求类型、请求内容、被请求改变的数据生成的可执行语句;
在关系型数据库中执行所述结构化查询语言语句,以将所述请求记录同步至关系型数据库中。
通过监听Elasticsearch集群的数据操作,并生成数据操作记录同步至关系型数据库中,保证在所述数据迁移过程中,用户对所述Elasticsearch集群的数据修改操作都可以同样反映在所述关系型数据库中,无需停机就可以将Elasticsearch集群的数据全部迁移到所述关系型数据库中,迁移完成后可以直接在所述关系型数据库中进行关联查询等应用。
如图3所示,本发明实施例还提供一种数据迁移系统,应用于所述的数据迁移方法,所述系统包括:
映射模块M100,用于在关系型数据库中建立数据表,并建立Elasticsearch集群中数据类型与所述数据表的映射关系。
具体地,此处建立的映射关系包括数据类型映射和字段映射,可以为将所述Elasticsearch集群中数据类型与所述关系型数据库中的数据库建立一对一的映射、多对一的映射或一对多的映射。
快照模块M200,用于创建Elasticsearch集群中需迁移数据的快照。
执行模块M300,用于从所述快照中依次取出每条数据,并根据所述映射关系将取出的数据写入所述关系型数据库,至将所述快照中所有数据均写入所述关系型数据为止。
因此,本发明的数据迁移系统首先通过映射模块M100,建立Elasticsearch集群和关系型数据库的映射关系,通过快照模块M200创建Elasticsearch集群的快照,并通过执行模块M300根据映射关系执行迁移过程,从而可以在不停机的情况下对已有的Elasticsearch集群中的数据迁移至关系型数据库中,由于通过创建快照的方式进行数据迁移,因此Elasticsearch集群无需停机专用于数据迁移,在迁移过程中用户的使用不受影响,迁移完成前,用户仍可以在Elasticsearch集群中进行数据操作,迁移完成后,由于快照数据和Elasticsearch集群中数据的高度一致性,用户可直接在关系型数据库中进行关联查询等应用。
如图3所示,在该实施例中,所述数据迁移系统还包括监听模块M400,监听模块M400用于监听所述Elasticsearch集群的数据操作,进行数据操作记录,将所述数据操作记录添加至操作缓存队列中。所述执行模块M300还用于将所述操作缓存队列中的数据操作记录同步至所述关系型数据库。
具体地,在该实施例中,所述监听模块M400用于监听所述Elasticsearch集群的超文本传输协议HTTP请求,从所述HTTP请求中筛选得到粘贴POST请求、写入PUT请求和删除DELETE请求,以及将筛选得到的请求记录添加至操作缓存队列。
如图4所示,所述执行模块M300包括语句生成单元M310和语句执行单元M320。所述语句生成单元M310用于从所述快照中取出数据,生成写入取出的数据的结构化查询语言语句,此处所述结构化查询语言语句即为根据快照的位置(数据源位置)、关系型数据库的位置(数据目的位置)和操作指令类型(写入操作)生成的SQL语句;所述语句执行单元M320用于在所述关系型数据库中执行写入取出的数据的所述结构化查询语言语句,从而将所述快照中的数据写入到所述关系型数据库。
如图4所示,所述语句生成单元M310还用于从所述操作缓存队列中获取请求记录,根据所述请求记录生成结构化查询语言语句,此处生成结构化查询语言语句即为根据请求记录的请求类型、请求内容、被请求改变的数据生成的可执行语句。所述语句执行单元M320还用于在所述关系型数据库中执行根据所述请求记录生成的所述结构化查询语言语句,以将所述请求记录同步至所述关系型数据库中,保证在所述数据迁移过程中,用户对所述Elasticsearch集群的数据修改操作都可以同样反映在所述关系型数据库中。
本发明实施例还提供一种数据迁移设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的数据迁移方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述数据迁移方法部分中描述的根据本发明各种示例性实施方式或实施例的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的数据迁移方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述数据迁移方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或集群上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,与现有技术相比,本发明所提供的数据迁移方法、系统、设备及存储介质具有下列优点:
通过采用本发明,通过创建快照的方式进行数据迁移,可以在不停机的情况下对已有的Elasticsearch集群中的数据迁移至关系型数据库中,在迁移过程中由于不对Elasticsearch集群中的数据有所变动,也无需将Elasticsearch集群停机专门用于数据迁移,用户的使用不受影响,迁移完成前,用户仍可以在Elasticsearch集群中进行数据操作,迁移完成后,由于快照数据和Elasticsearch集群中数据的高度一致性,用户可直接在关系型数据库中进行关联查询等应用;由此,对于存储在Elasticsearch集群中数据来说,在迁移到关系型数据库中之后,可以更好地利用关系型数据库中对数据一致性、可靠性支持的优势。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种数据迁移方法,其特征在于,包括如下步骤:
在关系型数据库中建立数据表,并建立Elasticsearch集群中数据类型与所述数据表的映射关系;
创建Elasticsearch集群中需迁移数据的快照;
从所述快照中依次取出每条数据,并根据所述映射关系将取出的数据写入所述关系型数据库,至将所述快照中所有数据均写入所述关系型数据为止。
2.根据权利要求1所述的数据迁移方法,其特征在于,所述建立Elasticsearch集群中数据类型与数据表的映射关系,包括:建立所述Elasticsearch集群中数据类型与所述关系型数据库中的数据表一对一的映射关系;或
建立所述Elasticsearch集群中数据类型与所述关系型数据库中的数据表多对一的映射关系;或
建立所述Elasticsearch集群中数据类型与所述关系型数据库中的数据表一对多的映射关系。
3.根据权利要求1所述的数据迁移方法,其特征在于,所述建立Elasticsearch集群中数据类型与数据表的映射关系的步骤,包括:建立所述Elasticsearch集群中数据类型与所述关系型数据库中的数据表一对多的映射关系,且同一数据类型所对应的多张数据表通过外键相互关联。
4.根据权利要求1所述的数据迁移方法,其特征在于,从所述快照中取出数据,并根据所述映射关系写入所述关系型数据库,包括如下步骤:
从所述快照中取出数据,生成写入取出的数据的结构化查询语言语句;
在所述关系型数据库中执行所述结构化查询语言语句。
5.根据权利要求1所述的数据迁移方法,其特征在于,所述创建Elasticsearch集群的快照之后,还包括:监听所述Elasticsearch集群的数据操作,生成数据操作记录;
从所述快照中取出数据,并根据所述映射关系写入所述关系型数据库之后,还包括:将所述数据操作记录同步至所述关系型数据库。
6.根据权利要求5所述的数据迁移方法,其特征在于,所述监听所述Elasticsearch集群的数据操作,包括如下步骤:
监听所述Elasticsearch集群的超文本传输协议HTTP请求;
从所述HTTP请求中筛选得到粘贴请求、写入请求和删除请求;
将筛选得到的粘贴请求、写入请求和删除请求的请求记录按照请求时间顺序添加至操作缓存队列。
7.根据权利要求6所述的数据迁移方法,其特征在于,将所述数据操作记录同步至所述关系型数据库,包括如下步骤:
依次从所述操作缓存队列中获取每条请求记录,根据每条所述请求记录生成结构化查询语言语句;
在所述关系型数据库中依次执行所述结构化查询语言语句,并在一结构化查询语言语句执行完毕后,从所述操作缓存队列中删除对应的请求记录;
所述操作缓存队列中不存在请求记录时,停止将所述数据操作记录同步至所述关系型数据库。
8.一种数据迁移系统,其特征在于,应用于权利要求1至7中任一项所述的数据迁移方法,所述系统包括:
映射模块,用于在关系型数据库中建立数据表,并建立Elasticsearch集群中数据类型与所述数据表的映射关系;
快照模块,用于创建Elasticsearch集群中需迁移数据的快照;
执行模块,用于从所述快照中依次取出每条数据,并根据所述映射关系将取出的数据写入所述关系型数据库,至将所述快照中所有数据均写入所述关系型数据为止。
9.一种数据迁移设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任一项所述的数据迁移方法的步骤。
10.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至7中任一项所述的数据迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010018704.7A CN111241060A (zh) | 2020-01-08 | 2020-01-08 | 数据迁移方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010018704.7A CN111241060A (zh) | 2020-01-08 | 2020-01-08 | 数据迁移方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111241060A true CN111241060A (zh) | 2020-06-05 |
Family
ID=70865047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010018704.7A Pending CN111241060A (zh) | 2020-01-08 | 2020-01-08 | 数据迁移方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241060A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131291A (zh) * | 2020-09-11 | 2020-12-25 | 重庆誉存大数据科技有限公司 | 基于json数据的结构化解析方法、装置、设备及存储介质 |
CN115408473A (zh) * | 2022-11-01 | 2022-11-29 | 神州数码融信云技术服务有限公司 | 数据同步方法及装置、计算机设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530327A (zh) * | 2013-09-25 | 2014-01-22 | 清华大学深圳研究生院 | 一种从非关系型数据库到关系型数据库的数据迁移方法 |
CN105373599A (zh) * | 2015-10-28 | 2016-03-02 | 北京汇商融通信息技术有限公司 | 基于多种数据存储平台的数据迁移系统 |
CN108038153A (zh) * | 2017-12-04 | 2018-05-15 | 北京小度信息科技有限公司 | Hbase的数据在线迁移方法和装置 |
CN108628874A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 迁移数据的方法、装置、电子设备和可读存储介质 |
CN109189756A (zh) * | 2018-06-29 | 2019-01-11 | 平安科技(深圳)有限公司 | 电子装置、数据迁移的方法及存储介质 |
CN110019133A (zh) * | 2017-12-21 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据在线迁移方法和装置 |
CN110555012A (zh) * | 2018-05-14 | 2019-12-10 | 杭州海康威视数字技术股份有限公司 | 数据迁移方法及装置 |
CN110647579A (zh) * | 2019-08-16 | 2020-01-03 | 北京百度网讯科技有限公司 | 数据同步方法及装置、计算机设备与可读介质 |
-
2020
- 2020-01-08 CN CN202010018704.7A patent/CN111241060A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530327A (zh) * | 2013-09-25 | 2014-01-22 | 清华大学深圳研究生院 | 一种从非关系型数据库到关系型数据库的数据迁移方法 |
CN105373599A (zh) * | 2015-10-28 | 2016-03-02 | 北京汇商融通信息技术有限公司 | 基于多种数据存储平台的数据迁移系统 |
CN108628874A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 迁移数据的方法、装置、电子设备和可读存储介质 |
CN108038153A (zh) * | 2017-12-04 | 2018-05-15 | 北京小度信息科技有限公司 | Hbase的数据在线迁移方法和装置 |
CN110019133A (zh) * | 2017-12-21 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据在线迁移方法和装置 |
CN110555012A (zh) * | 2018-05-14 | 2019-12-10 | 杭州海康威视数字技术股份有限公司 | 数据迁移方法及装置 |
CN109189756A (zh) * | 2018-06-29 | 2019-01-11 | 平安科技(深圳)有限公司 | 电子装置、数据迁移的方法及存储介质 |
CN110647579A (zh) * | 2019-08-16 | 2020-01-03 | 北京百度网讯科技有限公司 | 数据同步方法及装置、计算机设备与可读介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131291A (zh) * | 2020-09-11 | 2020-12-25 | 重庆誉存大数据科技有限公司 | 基于json数据的结构化解析方法、装置、设备及存储介质 |
CN115408473A (zh) * | 2022-11-01 | 2022-11-29 | 神州数码融信云技术服务有限公司 | 数据同步方法及装置、计算机设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
US20200278955A1 (en) | Event context enrichment | |
US8572575B2 (en) | Debugging a map reduce application on a cluster | |
US10248676B2 (en) | Efficient B-Tree data serialization | |
CN111241203B (zh) | Hive数据仓库同步方法、系统、设备及存储介质 | |
GB2519779A (en) | Triplestore replicator | |
CN111709527A (zh) | 运维知识图谱库的建立方法、装置、设备及存储介质 | |
US8805777B2 (en) | Data record collapse and split functionality | |
CN111241060A (zh) | 数据迁移方法、系统、设备及存储介质 | |
Zou et al. | From a stream of relational queries to distributed stream processing | |
CN114556317A (zh) | 通过版本散列链接图形的文档跟踪 | |
CN109473178B (zh) | 医疗数据整合的方法、系统、设备及存储介质 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
US8200673B2 (en) | System and method for on-demand indexing | |
US20180203900A1 (en) | Transforming a user-defined table function to a derived table in a database management system | |
WO2023231615A1 (zh) | 一种基于数据湖的物化列创建方法以及数据查询方法 | |
US9201937B2 (en) | Rapid provisioning of information for business analytics | |
US9280582B2 (en) | Optimization of join queries for related data | |
WO2023086322A1 (en) | Late materialization of queried data in database cache | |
CN113127496B (zh) | 数据库中变更数据的确定方法及装置、介质和设备 | |
CN111291130B (zh) | Hive表一致性校验方法、系统、设备及存储介质 | |
CN113297181A (zh) | 配置项管理数据库、数据处理方法和装置 | |
US8818955B2 (en) | Reducing storage costs associated with backing up a database | |
CN110888839A (zh) | 数据存储及数据搜索方法和装置 | |
US10061801B2 (en) | Customize column sequence in projection list of select queries |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200605 |
|
RJ01 | Rejection of invention patent application after publication |