CN110716913B - 一种Kafka与Elasticsearch数据库数据的互相迁移方法 - Google Patents
一种Kafka与Elasticsearch数据库数据的互相迁移方法 Download PDFInfo
- Publication number
- CN110716913B CN110716913B CN201910702780.7A CN201910702780A CN110716913B CN 110716913 B CN110716913 B CN 110716913B CN 201910702780 A CN201910702780 A CN 201910702780A CN 110716913 B CN110716913 B CN 110716913B
- Authority
- CN
- China
- Prior art keywords
- database
- kafka
- elasticissearch
- data
- code
- 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/25—Integrating or interfacing systems involving database management systems
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种Kafka与Elasticsearch数据库数据的互相迁移方法,包括如下步骤:读取Kafka数据库和Elasticsearch数据库配置文件的运行参数;并获取Kafka数据库和Elasticsearch数据库的元数据;根据Kafka数据库的元数据生成Kafka数据库的模型;根据Elasticsearch数据库的元数据生成Elasticsearch数据库的模型;根据数据迁移需求分别生成Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板;根据Kafka数据库的模型、Elasticsearch数据库的模型、Kafka数据库和Elasticsearch数据库的在代码中使用的配置文件定制模板生成可执行运行文件,运行可执行运行文件进而完成Kafka与Elasticsearch数据库数据的互相迁移。本发明实现了Kafka数据库与Elasticsearch数据库数据的快速互相迁移,满足了数据流动与分享需求。
Description
技术领域
本发明属于数据库迁移领域,具体地讲涉及一种Kafka与Elasticsearch数据库数据的互相迁移方法。
背景技术
实现数据共享,可以使更多的人更充分地使用已有数据资源,减少资料收集、数据采集等重复劳动和相应费用,而把精力重点放在开发新的应用程序及系统集成上。由于不同用户提供的数据可能来自不同的途径,其数据内容、数据格式和数据质量千差万别,因而给数据共享带来了很大困难,有时甚至会遇到数据格式不能转换或数据转换格式后丢失信息的棘手问题,严重地阻碍了数据在各部门和各软件系统中的流动与共享。
Kafka数据库和Elasticsearch数据库是目前较常用的两种数据库,实现他们之间的数据迁移对于数据流动与共享具有重大意义。
发明内容
根据现有技术中存在的问题,本发明提供了一种Kafka与Elasticsearch数据库数据的互相迁移方法,其实现了Kafka数据库与Elasticsearch数据库数据的快速互相迁移,满足了数据流动与分享需求。
本发明采用以下技术方案:
一种Kafka与Elasticsearch数据库数据的互相迁移方法,包括如下步骤:
S1,读取Kafka数据库和Elasticsearch数据库配置文件的运行参数;并获取Kafka数据库和Elasticsearch数据库的元数据;
S2,根据Kafka数据库的元数据生成Kafka数据库的模型,获得Kafka数据库在代码中使用的类名和键名;根据Elasticsearch数据库的元数据生成Elasticsearch数据库的模型,获得Elasticsearch数据库在代码中使用的类名和字段名;
S3,根据数据迁移需求分别生成Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板;
S4,根据Kafka数据库在代码中使用的类名及键名、Elasticsearch数据库在代码中使用的类名及字段名、Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板生成可执行运行文件,运行可执行运行文件进而完成Kafka与Elasticsearch数据库数据的互相迁移。
优选的,步骤S1中,Kafka数据库连接属性的配置文件的运行参数包括Kafka集群IP地址、端口号和主题topic的表名;Elasticsearch数据库连接属性的配置文件的运行参数包括Elasticsearch集群IP地址、端口号和索引index的表名;所述Kafka数据库的元数据包括节点broker、主题topic、分片partition、生产者producer、消费者consumer、消费组consumer group;所述Elasticsearch数据库的元数据包括索引index、对象type、表示id。
进一步优选的,步骤S2包括如下步骤:
S21,根据Kafka数据库的元数据获取消费消息进而生成Kafka数据库的模型,Kafka数据库的模型的类型为json格式的字符串topic;根据Elasticsearch数据库的元数据获取消费消息进而生成Elasticsearch数据库的模型,Elasticsearch数据库的模型的类型为json格式的字符串source;
S22,遍历Kafka数据库的主题topic中的键值对内容,对Kafka数据库的主题topic中的键的命名进行转换进而获得在代码中使用的类名和键名;遍历Elasticsearch数据库的对象type中的字段内容,对Elasticsearch数据库的对象type中的字段的命名进行转换进而获得在代码中使用的类名和字段名。
更进一步优选的,步骤S21中,Kafka与Elasticsearch数据库的生产者先产生数据,通过zookeeper找到集群中的节点broker,然后将产生的数据存进节点broker,Kafka与Elasticsearch数据库的消费者要消费数据,通过zookeeper找到集群中对应的节点broker后再消费,最终根据Kafka数据库的元数据获取消费消息,根据Elasticsearch数据库的元数据获取消费消息。
更进一步优选的,步骤S22中,对Kafka数据库的主题topic中的键的命名进行转换的方式如下:将Kafka数据库的主题topic中的键的命名中的字母均改为小写,将原有下划线去掉,并将原有下划线后的第一个字母再改为大写;对Elasticsearch数据库的对象type中的字段的命名进行转换的方式如下:将Elasticsearch数据库的对象type中的字段的命名中的字母均改为小写,将原有下划线去掉,并将原有下划线后的第一个字母再改为大写。
更进一步优选的,步骤S3包括如下步骤:
S31,确认Kafka数据库的主题topic和Elasticsearch数据库的对象type是否需要重新命名,如果需要,指出并修改在代码中对应的类名,且Kafka数据库的主题topic和Elasticsearch数据库的对象type的命名名称不能重复;
S32,确认并设置Kafka数据库与Elasticsearch数据库的连接方式为内嵌或引用,默认连接方式设为引用;
S33,根据数据迁移需求确认Kafka数据库的必要字段、非必须要字段以及Elasticsearch数据库的必要字段和非必须要字段,由Kafka数据库和Elasticsearch数据库的必要字段进而生成Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板。
更进一步优选的,步骤S4包括如下步骤:
S41,根据Kafka数据库在代码中使用的类名及键名、Elasticsearch数据库在代码中使用的类名及字段名、Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板获取生成执行文件的代码所需要的配置文件;
S42,根据生成执行文件的代码所需要的配置文件信息通过代码生成方法生成可执行运行文件,运行可执行运行文件进而完成Kafka与Elasticsearch数据库数据的互相迁移。
本发明的优点和有益效果在于:
1)本发明的数据库数据的互相迁移方法中,生产者先产生数据,通过zookeeper找到集群中的节点broker,然后将产生的数据存进节点broker,消费者要消费数据,通过zookeeper找到集群中对应的节点broker后再消费,最终获取消费消息进而生成模型;Kafka数据库与Elasticsearch数据库数据的互相迁移过程中,通过访问共享数据的存储路径信息,实现了快速的获取待交换数据的存储位置,并且通过对Kafka数据库与Elasticsearch数据库的指定元数据的命名进行相同的转化,进而实现了Kafka数据库与Elasticsearch数据库数据之间的快速迁移。
附图说明
图1为本发明的数据库数据的互相迁移方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种Kafka与Elasticsearch数据库数据的互相迁移方法包括如下步骤:
1、读取Kafka数据库和Elasticsearch数据库配置文件的运行参数;并获取Kafka数据库和Elasticsearch数据库的元数据;
具体的,Kafka数据库连接属性的配置文件的运行参数包括Kafka集群IP地址、端口号和主题topic的表名;Elasticsearch数据库连接属性的配置文件的运行参数包括Elasticsearch集群IP地址、端口号和索引index的表名;所述Kafka数据库的元数据包括节点broker、主题topic、分片partition、生产者producer、消费者consumer、消费组consumergroup;所述Elasticsearch数据库的元数据包括索引index、对象type、表示id。
2、根据Kafka数据库的元数据生成Kafka数据库的模型,获得Kafka数据库在代码中使用的类名和键名;根据Elasticsearch数据库的元数据生成Elasticsearch数据库的模型,获得Elasticsearch数据库在代码中使用的类名和字段名;
具体包括如下步骤:
1)根据Kafka数据库的元数据获取消费消息进而生成Kafka数据库的模型,Kafka数据库的模型的类型为json格式的字符串topic;根据Elasticsearch数据库的元数据获取消费消息进而生成Elasticsearch数据库的模型,Elasticsearch数据库的模型的类型为json格式的字符串source;
具体的,Kafka与Elasticsearch数据库的生产者先产生数据,通过zookeeper找到集群中的节点broker,然后将产生的数据存进节点broker,Kafka与Elasticsearch数据库的消费者要消费数据,通过zookeeper找到集群中对应的节点broker后再消费,最终根据Kafka数据库的元数据获取消费消息,根据Elasticsearch数据库的元数据获取消费消息;
2)遍历Kafka数据库的主题topic中的键值对内容,对Kafka数据库的主题topic中的键的命名进行转换进而获得在代码中使用的类名和键名;遍历Elasticsearch数据库的对象type中的字段内容,对Elasticsearch数据库的对象type中的字段的命名进行转换进而获得在代码中使用的类名和字段名;
具体的,对Kafka数据库的主题topic中的键的命名进行转换的方式如下:将Kafka数据库的主题topic中的键的命名中的字母均改为小写,将原有下划线去掉,并将原有下划线后的第一个字母再改为大写;对Elasticsearch数据库的对象type中的字段的命名进行转换的方式如下:将Elasticsearch数据库的对象type中的字段的命名中的字母均改为小写,将原有下划线去掉,并将原有下划线后的第一个字母再改为大写。
3、根据数据迁移需求分别生成Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板;
具体包括如下步骤:
1)确认Kafka数据库的主题topic和Elasticsearch数据库的对象type是否需要重新命名,如果需要,指出并修改在代码中对应的类名,且Kafka数据库的主题topic和Elasticsearch数据库的对象type的命名名称不能重复;
2)确认并设置Kafka数据库与Elasticsearch数据库的连接方式为内嵌或引用,默认连接方式设为引用;
3)根据数据迁移需求确认Kafka数据库的必要字段、非必须要字段以及Elasticsearch数据库的必要字段和非必须要字段,由Kafka数据库和Elasticsearch数据库的必要字段进而生成Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板。
4、根据Kafka数据库在代码中使用的类名及键名、Elasticsearch数据库在代码中使用的类名及字段名、Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板生成可执行运行文件,运行可执行运行文件进而完成Kafka与Elasticsearch数据库数据的互相迁移;
具体包括如下步骤:
1)根据Kafka数据库在代码中使用的类名及键名、Elasticsearch数据库在代码中使用的类名及字段名、Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板获取生成执行文件的代码所需要的配置文件;
2)根据生成执行文件的代码所需要的配置文件信息通过代码生成方法生成可执行运行文件,运行可执行运行文件进而完成Kafka与Elasticsearch数据库数据的互相迁移。
综上所述,本发明提供了一种Kafka与Elasticsearch数据库数据的互相迁移方法,其实现了Kafka数据库与Elasticsearch数据库数据的快速互相迁移,满足了数据流动与分享需求。
Claims (3)
1.一种Kafka与Elasticsearch数据库数据的互相迁移方法,其特征在于,包括如下步骤:
S1,读取Kafka数据库和Elasticsearch数据库连接属性的配置文件的运行参数,所述Kafka数据库连接属性的配置文件的运行参数包括Kafka集群IP地址、端口号、主题topic的表名,所述Elasticsearch数据库连接属性的配置文件的运行参数包括Elasticsearch集群IP地址、端口号和索引index的表名;并获取Kafka数据库和Elasticsearch数据库的元数据,所述Kafka数据库的元数据包括节点broker、主题topic、分片partition、生产者producer、消费者consumer、消费组consumer group,所述Elasticsearch数据库的元数据包括索引index、对象type、表示id;
S2,根据Kafka数据库的元数据生成Kafka数据库的模型,获得Kafka数据库在代码中使用的类名和键名;根据Elasticsearch数据库的元数据生成Elasticsearch数据库的模型,得Elasticsearch数据库在代码中使用的类名和字段名,步骤S2包括如下步骤:
S21,根据Kafka数据库的元数据获取消费消息进而生成Kafka数据库的模型,Kafka数据库的模型的类型为json格式的字符串topic;根据Elasticsearch数据库的元数据获取消费消息进而生成Elasticsearch数据库的模型,Elasticsearch数据库的模型的类型为json格式的字符串source;
S22,遍历Kafka数据库的主题topic中的键值对内容,对Kafka数据库的主题topic中的键的命名进行转换进而获得在代码中使用的类名和键名;遍历Elasticsearch数据库的对象type中的字段内容,对Elasticsearch数据库的对象type中的字段的命名进行转换进而获得在代码中使用的类名和字段名;
S3,根据数据迁移需求分别生成Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板,步骤S3包括如下步骤:
S31,确认Kafka数据库的主题topic和Elasticsearch数据库的对象type是否需要重新命名,如果需要,指出并修改在代码中对应的类名,且Kafka数据库的主题topic和Elasticsearch数据库的对象type的命名名称不能重复;
S32,确认并设置Kafka数据库与Elasticsearch数据库的连接方式为内嵌或引用,默认连接方式设为引用;
S33,根据数据迁移需求确认Kafka数据库的必要字段、非必须要字段以及Elasticsearch数据库的必要字段和非必须要字段,由Kafka数据库和Elasticsearch数据库的必要字段进而生成Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板;
S4,步骤S4包括如下步骤:
S41,根据Kafka数据库在代码中使用的类名及键名、Elasticsearch数据库在代码中使用的类名及字段名、Kafka数据库和Elasticsearch数据库在代码中使用的配置文件定制模板获取生成执行文件的代码所需要的配置文件;
S42,根据生成执行文件的代码所需要的配置文件信息通过代码生成方法生成可执行运行文件,运行可执行运行文件进而完成Kafka与Elasticsearch数据库数据的互相迁移。
2.根据权利要求1所述的一种Kafka与Elasticsearch数据库数据的互相迁移方法,其特征在于:步骤S21中,Kafka与Elasticsearch数据库的生产者先产生数据,通过zookeeper找到集群中的节点broker,然后将产生的数据存进节点broker,Kafka与Elasticsearch数据库的消费者要消费数据,通过zookeeper找到集群中对应的节点broker后再消费,最终根据Kafka数据库的元数据获取消费消息,根据Elasticsearch数据库的元数据获取消费消息。
3.根据权利要求2所述的一种Kafka与Elasticsearch数据库数据的互相迁移方法,其特征在于:步骤S22中,对Kafka数据库的主题topic中的键的命名进行转换的方式如下:将Kafka数据库的主题topic中的键的命名中的字母均改为小写,将原有下划线去掉,并将原有下划线后的第一个字母再改为大写;对Elasticsearch数据库的对象type中的字段的命名进行转换的方式如下:将Elasticsearch数据库的对象type中的字段的命名中的字母均改为小写,将原有下划线去掉,并将原有下划线后的第一个字母再改为大写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910702780.7A CN110716913B (zh) | 2019-07-31 | 2019-07-31 | 一种Kafka与Elasticsearch数据库数据的互相迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910702780.7A CN110716913B (zh) | 2019-07-31 | 2019-07-31 | 一种Kafka与Elasticsearch数据库数据的互相迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716913A CN110716913A (zh) | 2020-01-21 |
CN110716913B true CN110716913B (zh) | 2022-12-20 |
Family
ID=69209407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910702780.7A Active CN110716913B (zh) | 2019-07-31 | 2019-07-31 | 一种Kafka与Elasticsearch数据库数据的互相迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110716913B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051968B (zh) * | 2020-08-07 | 2021-10-22 | 东北大学 | 基于Kafka的分布式数据流分级缓存自动迁移方法 |
CN113347263B (zh) * | 2021-06-11 | 2022-10-11 | 上海中通吉网络技术有限公司 | 消息集群管理方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542733A (zh) * | 2018-12-05 | 2019-03-29 | 焦点科技股份有限公司 | 一种高可靠的实时日志收集及可视化检索方法 |
CN109542892A (zh) * | 2018-10-19 | 2019-03-29 | 北京全路通信信号研究设计院集团有限公司 | 一种实时数据库的关系化实现方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308297B (zh) * | 2011-07-13 | 2013-06-05 | 华为技术有限公司 | 一种数据迁移方法、数据迁移装置及数据迁移系统 |
CN103530327B (zh) * | 2013-09-25 | 2016-08-17 | 清华大学深圳研究生院 | 一种从非关系型数据库到关系型数据库的数据迁移方法 |
CN106095991B (zh) * | 2016-06-21 | 2019-07-09 | 南京大学 | 一种自动生成从关系型数据库向MongoDB数据库数据迁移的代码的方法 |
US10554501B2 (en) * | 2017-10-23 | 2020-02-04 | Cisco Technology, Inc. | Network migration assistant |
-
2019
- 2019-07-31 CN CN201910702780.7A patent/CN110716913B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542892A (zh) * | 2018-10-19 | 2019-03-29 | 北京全路通信信号研究设计院集团有限公司 | 一种实时数据库的关系化实现方法、装置及系统 |
CN109542733A (zh) * | 2018-12-05 | 2019-03-29 | 焦点科技股份有限公司 | 一种高可靠的实时日志收集及可视化检索方法 |
Non-Patent Citations (1)
Title |
---|
PostgreSQL与MongoDB的数据迁移与应用适配;王博然;《北京工业职业技术学院学报》;20130415;第12卷(第02期);第26-30页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110716913A (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103699689B (zh) | 事件知识库的构建方法及装置 | |
CN109491989B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN104035754A (zh) | 一种基于xml的自定义代码生成方法及生成器 | |
CN108446313B (zh) | 一种数据格式转换方法和装置 | |
JP2009099124A (ja) | データ構築方法とシステム | |
CN107609302B (zh) | 一种产品工艺结构生成方法及系统 | |
CN111124379B (zh) | 页面生成方法、装置、电子设备及存储介质 | |
CN110716913B (zh) | 一种Kafka与Elasticsearch数据库数据的互相迁移方法 | |
CN111159177B (zh) | 一种基于异构数据的数据融合方法、装置、设备及介质 | |
CN113535977B (zh) | 一种知识图谱融合方法和装置及设备 | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和系统 | |
CN114792145B (zh) | 一种基于知识图谱的标准数字化管理维护系统及方法 | |
CN103020318A (zh) | 一种对数据库中数据库表维护的方法 | |
Li et al. | Graph-based semantic evolution for context information management platforms | |
CN103927168B (zh) | 一种面向对象的数据模型持久化的方法及装置 | |
CN105335466A (zh) | 一种音频数据的检索方法与装置 | |
CN112582073B (zh) | 医疗信息获取方法、装置、电子设备和介质 | |
CN101944133A (zh) | 一种xml元数据对象化解析方法及系统 | |
CN105912723A (zh) | 一种自定义字段的存储方法 | |
CN103699746B (zh) | 基于数据库的cadds5管系三维设计方法及系统 | |
CN102999329A (zh) | 基于可扩展标记语言映射配置的活动目录接口开发方法 | |
CN111026916B (zh) | 文本描述的转换方法、装置、电子设备及存储介质 | |
CN109471957B (zh) | 一种基于统一标签的元数据转换方法及装置 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
CN109542953A (zh) | 基于presto的数据处理方法及装置 |
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 |