CN110109892B - 一种数据迁移方法、装置及电子设备 - Google Patents
一种数据迁移方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110109892B CN110109892B CN201810071341.6A CN201810071341A CN110109892B CN 110109892 B CN110109892 B CN 110109892B CN 201810071341 A CN201810071341 A CN 201810071341A CN 110109892 B CN110109892 B CN 110109892B
- Authority
- CN
- China
- Prior art keywords
- solr
- data
- field
- database table
- target database
- 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.)
- Active
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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据迁移方法、装置及电子设备,所述方法包括:通过分布式内存组件Spark读取Solr系统中已存储的Solr数据;获取已配置的Solr数据与目标数据库表结构的对应关系;根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。本发明实施例中,采用分布式内存组件Spark读取Solr系统中已存储的Solr数据,进而将读取的Solr数据加载到另一数据库中,Solr数据迁移过程中和Solr服务无交互,从而不影响Solr服务的正常使用。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据迁移方法、装置及电子设备。
背景技术
Solr是一种独立的企业级搜索系统,可通过对数据建立索引提供索引服务,同时可以用作存储数据使用。在Solr系统升级、存储组件更换时,需要将Solr中存储的数据迁移新的存储组件中,如Hbase数据库,由此需要一种用于Solr系统的数据迁移方法。
数据迁移是指将数据由一个存储系统迁移到另一个存储系统的过程。已知的迁移Solr系统中数据的方法为,通过Solr提供的http接口读取出数据,然后将数据存储到另一个存储系统中。然而,这种方法在数据读取过程中使用了Http接口,导致影响了Solr服务的正常使用。
发明内容
本发明实施例的目的在于提供一种数据迁移方法、装置及电子设备,以在迁移Solr系统中的数据时,不影响Solr服务的正常使用。具体技术方案如下:
第一方面,本发明实施例提供了一种数据迁移方法,所述方法包括:
通过分布式内存组件Spark读取Solr系统中已存储的Solr数据;
获取已配置的Solr数据与目标数据库表结构的对应关系;
根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。
可选的,当所述目标数据库为Hbase数据库时,所述根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中的步骤包括:
根据所述Solr数据与目标数据库表结构的对应关系,生成HFile文件;
通过Hbase BulkLoad方式加载所述HFile文件到Hbase数据库表中。
可选的,所述根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中之前,所述方法还包括:
根据已配置的Solr数据的字段信息,将所述Solr数据转化为弹性分布式数据集RDD。
可选的,所述通过分布式内存组件Spark读取Solr系统中已存储的Solr数据之前,所述方法还包括:
检测预先配置的配置文件是否正确;
所述通过分布式内存组件Spark读取Solr系统中已存储的Solr数据的步骤包括:
当所述配置文件正确时,通过分布式内存组件Spark读取Solr系统中已存储的Solr数据。
可选的,所述检测预先配置的配置文件是否正确的步骤包括:
检测已配置的Solr数据存储路径是否正确;
检测是否存在所述目标数据库表;
检测所述Solr数据与目标数据库表结构的对应关系的格式是否正确;
检测数据转换规则格式是否正确。
可选的,所述通过分布式内存组件Spark读取Solr系统中已存储的Solr数据的步骤包括:
根据所述已配置的Solr数据存储路径,通过Spark parallelize读取Solr系统Lucene文件中的Solr数据。
可选的,所述根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中之前,所述方法还包括:
根据已配置的数据转换规则,对所述Solr数据进行对应的处理;其中,所述数据转换规则包括以下至少一项:默认值规则、过滤规则和映射规则。
可选的,当所述数据转换规则包括:默认值规则、过滤规则和映射规则时,所述根据已配置的数据转换规则,对所述Solr数据进行对应的处理的步骤可以包括:
针对所述Solr数据中的每个字段,当该字段不存在值时,将该字段设置为默认值;
针对所述Solr数据中的每个字段,当该字段满足预设过滤条件时,过滤该字段;
针对所述Solr数据中的每个字段,根据已配置的映射规则,将该字段映射为对应的目标字段。
可选的,所述预设过滤条件包括:
将字段值为预设值的字段过滤;或
将字段长度满足预设条件的字段过滤。
可选的,所述将所述Solr数据加载到所述目标数据库表中之后,所述方法还包括:
判断所述Solr数据是否加载成功;如果未成功,返回执行所述通过分布式内存组件Spark读取Solr系统中已存储的Solr数据的步骤。
第二方面,本发明实施例提供了一种数据迁移装置,所述装置包括:
读取模块,用于通过分布式内存组件Spark读取Solr系统中已存储的Solr数据;
获取模块,用于获取已配置的Solr数据与目标数据库表结构的对应关系;
迁移模块,用于根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。
可选的,当所述目标数据库为Hbase数据库时,所述迁移模块包括:
执行子模块,用于根据所述Solr数据与目标数据库表结构的对应关系,生成HFile文件;
加载子模块,用于通过Hbase BulkLoad方式加载所述HFile文件到Hbase数据库表中。
可选的,所述装置还包括:
转化模块,用于根据已配置的Solr数据的字段信息,将所述Solr数据转化为弹性分布式数据集RDD。
可选的,所述装置还包括:
检测模块,用于检测预先配置的配置文件是否正确;
所述读取模块,具体用于当所述检测模块检测出所述配置文件正确时,通过分布式内存组件Spark读取Solr系统中已存储的Solr数据。
可选的,所述检测模块,具体用于:
检测已配置的Solr数据存储路径是否正确;
检测是否存在所述目标数据库表;
检测所述Solr数据与目标数据库表结构的对应关系的格式是否正确;
检测数据转换规则格式是否正确。
可选的,所述读取模块,具体用于根据所述已配置的Solr数据存储路径,通过Spark parallelize读取Solr系统Lucene文件中的Solr数据。
可选的,所述装置还包括:
处理模块,用于根据已配置的数据转换规则,对所述Solr数据进行对应的处理;其中,所述数据转换规则包括以下至少一项:默认值规则、过滤规则和映射规则。
可选的,当所述数据转换规则包括:默认值规则、过滤规则和映射规则时,所述处理模块,具体用于:
针对所述Solr数据中的每个字段,当该字段不存在值时,将该字段设置为默认值;
针对所述Solr数据中的每个字段,当该字段满足预设过滤条件时,过滤该字段;
针对所述Solr数据中的每个字段,根据已配置的映射规则,将该字段映射为对应的目标字段。
可选的,所述预设过滤条件包括:
将字段值为预设值的字段过滤;或
将字段长度满足预设条件的字段过滤。
可选的,所述装置还包括:
判断模块,用于判断所述Solr数据是否加载成功;如果未成功,触发所述读取模块。
第三方面,本发明实施例提供了一种电子设备,包括:
处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如上述第一方面所述的一种数据迁移方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的一种数据迁移方法。
本发明实施例提供了一种数据迁移方法、装置及电子设备,所述方法包括:通过Spark读取Solr系统中已存储的Solr数据;获取已配置的Solr数据与目标数据库表结构的对应关系;根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。
本发明实施例中,采用分布式内存组件Spark读取Solr系统中已存储的Solr数据,进而将读取的Solr数据加载到另一数据库中,Solr数据迁移过程中和Solr服务无交互,从而不影响Solr服务的正常使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种数据迁移方法的流程图;
图2为本发明实施例的一种数据迁移方法的另一流程图;
图3为本发明实施例的一种数据迁移方法的另一流程图;
图4为本发明实施例的一种数据迁移方法的另一流程图;
图5为本发明实施例的一种数据迁移装置的结构示意图;
图6为本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下通过具体实施例,对本发明进行详细说明。
请参考图1,其示出了本发明实施例的一种数据迁移方法流程,该方法可以包括以下步骤:
S101,通过Spark读取Solr系统中已存储的Solr数据。
本发明实施例提供的方法可以应用于电子设备。具体的,可以应用于电子设备中用于进行数据迁移的服务。其中,上述电子设备可以为台式计算机、便携式计算机等。
在本发明实施例中,为了在将Solr系统中已存储的Solr数据迁移到另一数据库时,不影响Solr系统服务的正常使用,可以不通过Solr系统本身的接口读取Solr系统中存储的Solr数据,而是借助其他工具来进行数据读取。
Spark是专为大规模数据处理而设计的快速通用的分布式内存组件。Spark是UCBerkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架。Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,因此Spark得到了更为广泛的应用。
在本发明实施例中,可以采用Spark读取Solr系统中已存储的Solr数据。具体的,可以预先配置Solr数据存储路径,即Solr数据在Solr系统中的存储路径,进而可以根据已配置的Solr数据存储路径,通过一种Spark加载文件数据的方式Spark parallelize,来读取Solr系统全文检索引擎的架构Lucene文件中的Solr数据。
S102,获取已配置的Solr数据与目标数据库表结构的对应关系。
在本发明实施例中,为了将Solr系统中的Solr数据迁移到另一数据库中,可以预先构建目标数据库表,并预先配置Solr数据与目标数据库表结构的对应关系。
也就是说,当Solr系统中一条数据有N字段,字段名称分别为ColName1,ColName2…ColNameN,字段类型分别为ColType1,ColType2…ColTypeN时,可以配置将该N字段的数据存储到目标数据库表中时目标数据库表结构的对应关系。例如,配置的Solr数据与目标数据库表结构的对应关系可以如表1所示:
表1
其中,第一行表达的对应关系是字段名称为ColName1,字段类型为ColType1的Solr数据可以对应存储在目标数据库表列族名称为colFamily1,列名称为mappingColName1的存储单元中。
在进行数据迁移时,电子设备可以获取已配置的Solr数据与目标数据库表结构的对应关系,以通过该对应关系,将读取的Solr数据加载到目标数据库表中。
S103,根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。
获取到已配置的Solr数据与目标数据库表结构的对应关系后,电子设备可以根据该Solr数据与目标数据库表结构的对应关系,将读取的Solr数据加载到目标数据库表中。
例如,可以针对每个字段,根据该字段的字段名称和字段类型,以及Solr数据与目标数据库表结构的对应关系,确定该字段对应的目标数据库表的位置信息,进而可以将该字段存储至目标数据库对应位置处。
如,当待处理的字段的字段名称为ColName1,字段类型为ColType1时,可以查询表1,获知该字段对应的目标数据库表的位置信息为列族名称为colFamily1,列名称为mappingColName1,进而即可将该字段加载至目标数据库表的列族名称为colFamily1,列名称为mappingColName1的存储单元中。
本发明实施例中,采用分布式内存组件Spark读取Solr系统中已存储的Solr数据,进而将读取的Solr数据加载到另一数据库中,Solr数据迁移过程中和Solr服务无交互,从而不影响Solr服务的正常使用。
HBase是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的功能。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。基于Hbase数据库的上述优点,Hbase数据库被广泛应用于大数据领域。
作为本发明实施例的一种实施方式,对Solr数据进行迁移时,可以将其迁移至Hbase数据库中。具体的,将Solr数据加载到Hbase数据库表时,可以先根据Solr数据与目标数据库表结构的对应关系,生成HFile文件,然后,通过Hbase BulkLoad方式加载HFile文件到Hbase数据库表中。
HFile是HBase存储数据的文件组织形式,参考BigTable的SSTable和hadoop的TFile实现。Hbase BulkLoad为Hbase提供的一种把HFile文件加载到Hbase数据库表中的机制。
本实施例中,可以将Solr数据迁移至Hbase数据库表中,并且,通过BulkLoad方式加载Solr数据到Hbase表中的方式,对Hbase表正常使用的读写性能影响很小。
作为本发明实施例的一种实施方式,电子设备将Solr数据加载到目标数据库表中之后,还可以判断Solr数据是否加载成功;如果未成功,则可以再次对Solr数据进行迁移。也即可以返回如图1所示实施例中步骤S101,执行通过分布式内存组件Spark读取Solr系统中已存储的Solr数据的步骤,以再次进行Solr数据迁移,保证数据迁移成功。
作为本发明实施例的一种实施方式,为了提高数据迁移速率,在根据Solr数据与目标数据库表结构的对应关系,将Solr数据加载到目标数据库表中之前,电子设备还可以根据已配置的Solr数据的字段信息,将Solr数据转化为RDD(Resilient DistributedDatasets,弹性分布式数据集)。
具体的,电子设备获取到Solr系统中的Solr数据之后,可以对每条Solr数据的字段信息进行配置,也即确定每条Solr数据的字段名称和字段类型。例如,可以根据预先构建的配置文件,确定每条Solr数据的字段名称和字段类型,其中,上述配置文件中可以包括不同的Solr数据(如,第一条、第二条、第三条等)对应的字段名称和字段类型;或者,可以接收用户输入的每条Solr数据对应的字段名称和字段类型。之后,可以根据已配置的Solr数据的字段信息,将其转化为RDD。
RDD是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。对开发者而言,RDD可以看作是Spark的一个对象,它本身运行于内存中,如读文件是一个RDD,对文件计算是一个RDD,结果集也是一个RDD,不同的分片、数据之间的依赖、key-value类型的map数据都可以看做RDD。
并且,RDD支持数据并行处理方式。因此,本实施例中,将Solr数据转化为RDD之后,再将其加载到目标数据库表中的方式,能够提高数据迁移速率。与已知的使用http接口读取数据的方式进行数据迁移相比,在数据迁移性能上能够得到大幅度提升。
作为本发明实施例的一种实施方式,如图2所示,本发明实施例提供的数据迁移方法可以包括:
S201,检测预先配置的配置文件是否正确;如果是,执行步骤S202,如果否,结束流程。
在本发明实施例中,在进行数据迁移之前,可以预先配置相应的配置文件。如,可以进行以下配置:
1、配置Solr数据存储路径,以通过该Solr数据存储路径,从Solr系统中读取Solr数据;
2、在Hbase数据库中建立目标数据库表,以将Solr数据迁移至建立的目标数据库表中;
3、配置Solr数据与目标数据库表结构的对应关系,以根据该对应关系,准确的将Solr数据迁移至建立的目标数据库表中;
4、配置数据转换规则,如对Solr数据进行过滤、映射等的规则,以根据过滤规则,迁移满足条件的Solr数据;或根据映射规则,正确的将Solr数据加载到目标数据库表中。
其中,上述配置过程4为可选项,即根据用户需求,可以对其进行配置,也可以不配置。
可以理解,任一配置文件的错误都可能导致Solr数据迁移失败。因此,在本发明实施例中,在进行Solr数据迁移时,为了保证Solr数据迁移能够顺利进行,可以首先检测预先配置的配置文件是否正确。只有当检测到配置文件全部正确时,才进行Solr数据的迁移;否则,结束流程,也即不进行数据迁移。
具体的,与之前的配置过程相对应,进行配置文件检测时,可以进行以下检测:
A、检测已配置的Solr数据路径是否正确;
B、检测是否存在目标数据库表;
C、检测Solr数据与目标数据库表结构的对应关系的格式是否正确;
D、检测数据转换规则格式是否正确。
在一种实现方式中,当存在不正确的配置文件时,可以由用户检查配置文件,重新对配置文件进行配置,并在重新配置后,再次进行Solr数据迁移。
S202,通过分布式内存组件Spark读取Solr系统中已存储的Solr数据。
S203,获取已配置的Solr数据与目标数据库表结构的对应关系。
S204,根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。
上述步骤S202-S204与图1所示实施例中步骤S101-S103基本相同,在此不进行赘述。
本实施例中,可以预先对配置文件进行配置,从而方便用户对配置文件进行更改,如可以对应不同的Solr系统版本配置适配的数据转换规则,进而能够提高数据迁移的适用性。
在数据迁移之前,先检测配置文件是否正确,只有在配置文件全部正确时才进行数据迁移,能够保证数据迁移顺利进行,提高数据迁移的成功率。
作为本发明实施例的一种实施方式,如图3所示,本发明实施例提供的数据迁移方法可以包括:
S301,通过分布式内存组件Spark读取Solr系统中已存储的Solr数据。
S302,获取已配置的Solr数据与目标数据库表结构的对应关系。
上述步骤S301-S302与图1所示实施例中步骤S101-S102基本相同,在此不进行赘述。
S303,根据已配置的数据转换规则,对所述Solr数据进行对应的处理;其中,所述数据转换规则包括以下至少一项:默认值规则、过滤规则和映射规则。
在本发明实施例中,用户可以通过预先配置数据转换规则,以在将Solr数据加载到目标数据库表之前,先对其进行相应的处理。
其中,上述数据转换规则可以包括以下至少一项:默认值规则、过滤规则和映射规则。当数据转换规则包括:默认值规则、过滤规则和映射规则时,电子设备根据已配置的数据转换规则,对Solr数据进行对应的处理时,可以针对Solr数据中的每个字段,当该字段不存在值,也就是当该字段为null时,将该字段设置为默认值;当该字段满足预设过滤条件时,过滤该字段;根据已配置的映射规则,将该字段映射为对应的目标字段。
也就是说,针对Solr数据中为null的字段,将其加载至目标数据库表时,可以用默认值代替该字段;还可以根据用户配置,将满足过滤条件的字段过滤,如可以将字段值为预设值的字段过滤;或将字段长度满足预设条件的字段过滤;还可以根据已配置的映射规则,将字段映射为对应的目标字段,如可以将Solr数据中的字段“1”映射为字段“a”,以满足目标数据库表中字段的存储格式等条件。
其中,上述将字段值为预设值的字段过滤,即为当配置字段A的过滤规则为1,即表示当该字段的值为1时,过滤掉该字段,否则保留该字段;将字段长度满足预设条件的字段过滤,即为当配置字段B的过滤规则Length(B)<5,即表示当该字段值的长度<5时,过滤掉该字段,否则保留该字段。
例如,预先配置的数据转换规则可以如表2所示:
表2
表2表示Solr系统中一条Solr数据有N字段,字段名称分别为ColName1,ColName2…ColNameN,字段类型分别为ColType1,ColType2…ColTypeN,对应的转换规则为:
字段名称为ColName1,字段类型为ColType1的字段,在该字段没有值时,返回默认值defaultValue1;然后按照配置的过滤规则filterRule1,当该字段满足过滤规则时,该字段将被过滤掉,即将该字段删除,不满足则保留该字段;该字段配置映射规则mappingRule1时,按照映射规则对该字段进行映射处理。
其他字段按照相同的规则处理,字段配置转换规则,对字段进行转换后的最终值为该字段的输出值;未配置转换规则,该字段输出值为从Solr系统中读取的原始字段值。
S304,根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。
上述步骤S304与图1所示实施例中步骤S103基本相同,在此不进行赘述。
本实施例中,可以根据预先配置的数据转换规则对Solr数据进行相应的处理,从而能够满足用户设置的数据迁移规则,迁移出符合要求的Solr数据。
下面结合一个具体的实施例,对本发明实施例提供的数据迁移方法进行详细说明。如图4所示,电子设备可以执行以下步骤:
S401,读取用户配置文件,并判断配置文件是否正确,包括检查用户配置的Solr数据存储路径是否正确;Hbase表是否存在;配置的数据转换规则格式是否正确;Solr数据与Hbase数据库表结构规则格式是否正确;配置不正确,则结束流程;配置正确后,执行步骤S402;
S402,根据用户配置的Solr数据存储路径,通过Spark parallelize读取Solr文件到内存中;
S403,根据用户配置Solr数据的字段信息,把Solr数据转化成RDD;
S404,根据用户配置的默认值规则、过滤规则和映射规则分别进行默认值处理、过滤处理和映射处理;
S405,数据转换处理完成后,根据用户配置的Solr数据与Hbase表结构的对应关系,生成HFile文件;
S406,生成HFile文件后,通过Hbase BulkLoad方式加载HFile文件到Hbase数据库表中;
S407,判断加载是否成功,加载成功后,则Solr数据成功由Solr系统迁移到Hbase表中,迁移流程结束;若加载失败,则需要返回步骤S402重新读取Solr数据再次进行迁移。
相应的,本发明实施例还提供了一种数据迁移装置,如图5所示,所述装置包括:
读取模块510,用于通过分布式内存组件Spark读取Solr系统中已存储的Solr数据;
获取模块520,用于获取已配置的Solr数据与目标数据库表结构的对应关系;
迁移模块530,用于根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。
本发明实施例中,采用分布式内存组件Spark读取Solr系统中已存储的Solr数据,进而将读取的Solr数据加载到另一数据库中,Solr数据迁移过程中和Solr服务无交互,从而不影响Solr服务的正常使用。
作为本发明实施例的一种实施方式,当所述目标数据库为Hbase数据库时,所述迁移模块530包括:
执行子模块,用于根据所述Solr数据与目标数据库表结构的对应关系,生成HFile文件;
加载子模块,用于通过Hbase BulkLoad方式加载所述HFile文件到Hbase数据库表中。
作为本发明实施例的一种实施方式,所述装置还包括:
转化模块,用于根据已配置的Solr数据的字段信息,将所述Solr数据转化为弹性分布式数据集RDD。
作为本发明实施例的一种实施方式,所述装置还包括:
检测模块,用于检测预先配置的配置文件是否正确;
所述读取模块,具体用于当所述检测模块检测出所述配置文件正确时,通过分布式内存组件Spark读取Solr系统中已存储的Solr数据。
作为本发明实施例的一种实施方式,所述检测模块,具体用于:
检测已配置的Solr数据存储路径是否正确;
检测是否存在所述目标数据库表;
检测所述Solr数据与目标数据库表结构的对应关系的格式是否正确;
检测数据转换规则格式是否正确。
作为本发明实施例的一种实施方式,所述读取模块510,具体用于根据所述已配置的Solr数据存储路径,通过Spark parallelize读取Solr系统Lucene文件中的Solr数据。
作为本发明实施例的一种实施方式,所述装置还包括:
处理模块,用于根据已配置的数据转换规则,对所述Solr数据进行对应的处理;其中,所述数据转换规则包括以下至少一项:默认值规则、过滤规则和映射规则。
作为本发明实施例的一种实施方式,当所述数据转换规则包括:默认值规则、过滤规则和映射规则时,所述处理模块,具体用于:
针对所述Solr数据中的每个字段,当该字段不存在值时,将该字段设置为默认值;
针对所述Solr数据中的每个字段,当该字段满足预设过滤条件时,过滤该字段;
针对所述Solr数据中的每个字段,根据已配置的映射规则,将该字段映射为对应的目标字段。
作为本发明实施例的一种实施方式,所述预设过滤条件包括:
将字段值为预设值的字段过滤;或
将字段长度满足预设条件的字段过滤。
作为本发明实施例的一种实施方式,所述装置还包括:
判断模块,用于判断所述Solr数据是否加载成功;如果未成功,触发所述读取模块。
相应的,本发明实施例还提供了一种电子设备,如图6所示,包括:
处理器610、存储器620、通信接口630和总线640;
所述处理器610、所述存储器620和所述通信接口630通过所述总线640连接并完成相互间的通信;
所述存储器620存储可执行程序代码;
所述处理器610通过读取所述存储器620中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本发明实施例的一种数据迁移方法,其中,所述数据迁移方法包括:
通过Spark读取Solr系统中已存储的Solr数据;
获取已配置的Solr数据与目标数据库表结构的对应关系;
根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中。
本发明实施例中,采用分布式内存组件Spark读取Solr系统中已存储的Solr数据,进而将读取的Solr数据加载到另一数据库中,Solr数据迁移过程中和Solr服务无交互,从而不影响Solr服务的正常使用。
上述计算机设备提到的通信总线可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述计算机设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Ne twork Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Applica tion SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
相应的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上述图1-图4任一所述的数据迁移方法。
本发明实施例中,采用分布式内存组件Spark读取Solr系统中已存储的Solr数据,进而将读取的Solr数据加载到另一数据库中,Solr数据迁移过程中和Solr服务无交互,从而不影响Solr服务的正常使用。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (19)
1.一种数据迁移方法,其特征在于,所述方法包括:
通过分布式内存组件Spark读取Solr系统中已存储的Solr数据;
获取已配置的Solr数据与目标数据库表结构的对应关系;
根据已配置的过滤规则,对所述Solr数据进行过滤处理;
根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中;
所述通过分布式内存组件Spark读取Solr系统中已存储的Solr数据的步骤包括:
根据已配置的Solr数据存储路径,通过Spark parallelize读取Solr系统Lucene文件中的Solr数据。
2.根据权利要求1所述的方法,其特征在于,当所述目标数据库为Hbase数据库时,所述根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中的步骤包括:
根据所述Solr数据与目标数据库表结构的对应关系,生成HFile文件;
通过Hbase BulkLoad方式加载所述HFile文件到Hbase数据库表中。
3.根据权利要求1所述的方法,其特征在于,所述根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中之前,所述方法还包括:
根据已配置的Solr数据的字段信息,将所述Solr数据转化为弹性分布式数据集RDD。
4.根据权利要求1所述的方法,其特征在于,所述通过分布式内存组件Spark读取Solr系统中已存储的Solr数据之前,所述方法还包括:
检测预先配置的配置文件是否正确;
所述通过分布式内存组件Spark读取Solr系统中已存储的Solr数据的步骤包括:
当所述配置文件正确时,通过分布式内存组件Spark读取Solr系统中已存储的Solr数据。
5.根据权利要求4所述的方法,其特征在于,所述检测预先配置的配置文件是否正确的步骤包括:
检测已配置的Solr数据存储路径是否正确;
检测是否存在所述目标数据库表;
检测所述Solr数据与目标数据库表结构的对应关系的格式是否正确;
检测数据转换规则格式是否正确。
6.根据权利要求5所述的方法,其特征在于,所述根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中之前,所述方法还包括:
根据已配置的数据转换规则,对所述Solr数据进行对应的处理;其中,所述数据转换规则包括以下至少一项:默认值规则、映射规则。
7.根据权利要求6所述的方法,其特征在于,当所述数据转换规则包括:默认值规则和映射规则时,所述根据已配置的数据转换规则,对所述Solr数据进行对应的处理的步骤可以包括:
针对所述Solr数据中的每个字段,当该字段不存在值时,将该字段设置为默认值;
针对所述Solr数据中的每个字段,根据已配置的映射规则,将该字段映射为对应的目标字段;
所述根据已配置的过滤规则,对所述Solr数据进行过滤处理,包括:
针对所述Solr数据中的每个字段,当该字段满足预设过滤条件时,过滤该字段。
8.根据权利要求7所述的方法,其特征在于,所述预设过滤条件包括:
将字段值为预设值的字段过滤;或
将字段长度满足预设条件的字段过滤。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述将所述Solr数据加载到所述目标数据库表中之后,所述方法还包括:
判断所述Solr数据是否加载成功;如果未成功,返回执行所述通过分布式内存组件Spark读取Solr系统中已存储的Solr数据的步骤。
10.一种数据迁移装置,其特征在于,所述装置包括:
读取模块,用于通过分布式内存组件Spark读取Solr系统中已存储的Solr数据;
处理模块,用于根据已配置的过滤规则,对所述Solr数据进行过滤处理;
获取模块,用于获取已配置的Solr数据与目标数据库表结构的对应关系;
迁移模块,用于根据所述Solr数据与目标数据库表结构的对应关系,将所述Solr数据加载到所述目标数据库表中;
所述读取模块,具体用于根据所述已配置的Solr数据存储路径,通过Sparkparallelize读取Solr系统Lucene文件中的Solr数据。
11.根据权利要求10所述的装置,其特征在于,当所述目标数据库为Hbase数据库时,所述迁移模块包括:
执行子模块,用于根据所述Solr数据与目标数据库表结构的对应关系,生成HFile文件;
加载子模块,用于通过Hbase BulkLoad方式加载所述HFile文件到Hbase数据库表中。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
转化模块,用于根据已配置的Solr数据的字段信息,将所述Solr数据转化为弹性分布式数据集RDD。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测预先配置的配置文件是否正确;
所述读取模块,具体用于当所述检测模块检测出所述配置文件正确时,通过分布式内存组件Spark读取Solr系统中已存储的Solr数据。
14.根据权利要求13所述的装置,其特征在于,所述检测模块,具体用于:
检测已配置的Solr数据存储路径是否正确;
检测是否存在所述目标数据库表;
检测所述Solr数据与目标数据库表结构的对应关系的格式是否正确;
检测数据转换规则格式是否正确。
15.根据权利要求10所述的装置,其特征在于,所述处理模块,还用于根据已配置的数据转换规则,对所述Solr数据进行对应的处理;其中,所述数据转换规则包括以下至少一项:默认值规则、映射规则。
16.根据权利要求15所述的装置,其特征在于,当所述数据转换规则包括:默认值规则和映射规则时,所述处理模块,具体用于:
针对所述Solr数据中的每个字段,当该字段不存在值时,将该字段设置为默认值;
针对所述Solr数据中的每个字段,当该字段满足预设过滤条件时,过滤该字段;
针对所述Solr数据中的每个字段,根据已配置的映射规则,将该字段映射为对应的目标字段。
17.根据权利要求16所述的装置,其特征在于,所述预设过滤条件包括:
将字段值为预设值的字段过滤;或
将字段长度满足预设条件的字段过滤。
18.根据权利要求10-17任一项所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述Solr数据是否加载成功;如果未成功,触发所述读取模块。
19.一种电子设备,其特征在于,包括:
处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-9任一项所述的一种数据迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810071341.6A CN110109892B (zh) | 2018-01-25 | 2018-01-25 | 一种数据迁移方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810071341.6A CN110109892B (zh) | 2018-01-25 | 2018-01-25 | 一种数据迁移方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109892A CN110109892A (zh) | 2019-08-09 |
CN110109892B true CN110109892B (zh) | 2021-09-10 |
Family
ID=67483504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810071341.6A Active CN110109892B (zh) | 2018-01-25 | 2018-01-25 | 一种数据迁移方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109892B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143446A (zh) * | 2019-11-26 | 2020-05-12 | 贝壳技术有限公司 | 数据对象的数据结构转换处理方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202490A (zh) * | 2016-07-19 | 2016-12-07 | 浪潮电子信息产业股份有限公司 | 一种SolrCloud配置文件修改方法、装置及系统 |
CN107229672A (zh) * | 2017-04-20 | 2017-10-03 | 中国科学院计算机网络信息中心 | 一种针对SolrCloud的大数据SQL查询方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915450B (zh) * | 2015-07-01 | 2017-11-28 | 武汉大学 | 一种基于HBase的大数据存储与检索方法及系统 |
CN106445676B (zh) * | 2015-08-05 | 2019-10-22 | 杭州海康威视系统技术有限公司 | 一种分布式数据计算的任务分配方法和任务分配装置 |
US10929417B2 (en) * | 2015-09-11 | 2021-02-23 | International Business Machines Corporation | Transforming and loading data utilizing in-memory processing |
CN105373599B (zh) * | 2015-10-28 | 2017-05-31 | 北京汇商融通信息技术有限公司 | 基于多种数据存储平台的数据迁移系统 |
CN105468720A (zh) * | 2015-11-20 | 2016-04-06 | 北京锐安科技有限公司 | 集成分布式数据处理系统的方法、相应系统及其数据处理方法 |
-
2018
- 2018-01-25 CN CN201810071341.6A patent/CN110109892B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202490A (zh) * | 2016-07-19 | 2016-12-07 | 浪潮电子信息产业股份有限公司 | 一种SolrCloud配置文件修改方法、装置及系统 |
CN107229672A (zh) * | 2017-04-20 | 2017-10-03 | 中国科学院计算机网络信息中心 | 一种针对SolrCloud的大数据SQL查询方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于SolrCloud平台的分布式全文检索系统的设计与实现;王媛冬;《中国优秀硕士学位论文全文数据库信息科技辑》;20150915;I138-1649 * |
Also Published As
Publication number | Publication date |
---|---|
CN110109892A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841841B (zh) | 一种测试中的断言处理方法及系统 | |
CN109241026B (zh) | 数据管理的方法、装置及系统 | |
CN110489087B (zh) | 一种生成分形结构的方法、装置、介质和电子设备 | |
US20170199889A1 (en) | Method and device for identifying junk picture files | |
WO2020215689A1 (zh) | 一种列存储文件的查询方法及查询装置 | |
CN110888756A (zh) | 一种诊断日志生成方法及装置 | |
CN111818175B (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
CN111615688A (zh) | 一种断言验证代码绑定方法及装置 | |
CN107451058B (zh) | 一种软件开发方法和装置 | |
CN110109892B (zh) | 一种数据迁移方法、装置及电子设备 | |
CN110019341B (zh) | 一种数据查询方法及装置 | |
CN110795920B (zh) | 一种文档生成方法及设备 | |
CN111078697B (zh) | 一种数据存储方法、装置、存储介质及电子设备 | |
CN113158627A (zh) | 代码复杂度的检测方法及装置、存储介质、电子设备 | |
CN111078773B (zh) | 一种数据处理方法及装置 | |
CN110059091B (zh) | 索引构建的方法、装置、客户端、服务器及系统 | |
CN110399026B (zh) | 基于fpga的多源单输出复位方法、装置及相关设备 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN112639786A (zh) | 智能地标 | |
CN110717036A (zh) | 一种统一资源定位符的去重方法、装置及电子设备 | |
CN113849482A (zh) | 一种数据迁移方法、装置及电子设备 | |
CN110119351B (zh) | 一种测试用例执行方法及装置 | |
CN110245136B (zh) | 数据检索方法及装置、设备及存储设备 | |
Settle et al. | aMatReader: Importing adjacency matrices via Cytoscape Automation | |
CN109670114B (zh) | 制图规则推荐方法及装置 |
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 |