关系数据库移到mongodb的理由
并发需求关系数据库不容易扩展
快速迭代
灵活的json模式
数据量需求

应用迁移难度
关系型到关系
oracle-》mysql oracle -》 postgresql
关系到文档
oracle -》 mongodb
需要考虑
总体架构单体分布式
模式设计(关系模式文档模型
SQL语句/储存过程/JDBC/ORM
数据迁移如何处理已有数据?)

模式设计
针对已有关系模型考虑如何用文档模型进行设计

方法一:使用mongexport

一次导入需要停机

1.数据库导出

mysql添加参数securefilepriv=/tmp #/tmp导出目录
方法一:
mysqldump导出:
-T 参数用于指定导出结果的目录和表文件名前缀,会导出txt格式的数据
mysqldump -urootp123456 test -T /tmp/
cat /tmp/testlog.txt

select导出:
select * from test.testlog into outfile ‘/tmp/testlog.csv’;

导出后添加,号 sedi.baks/t/,/gtestlog.txt

2.导入
mongoexport导入
方法一

 --headerline -第一行做为mongodb中的列,要编辑testlog.txt添加列
 mongoimport  -d test -c testlog --headerline --type=csv /tmp/testlog.txt
2023-11-30T00:46:52.430+0800	connected to: mongodb://localhost/
2023-11-30T00:46:52.756+0800	29757 document(s) imported successfully. 0 document(s) failed to import.

在这里插入图片描述

方法二
-f指定列(就是mongodb中的列)导入
mongoimport -d test –c testlog -f id,name,salarytype=csv /tmp/testlog.txt

mongodb查看文档信息正常
test> use test
already on db test
test> db.testlog.find()

在这里插入图片描述

db.dropDatabase() 删除当前数据库

方法二:批量同步

安装同步工具(如kettle/Talend
创建输入源(关系型数据库
创建输入源(mongodb
编辑数据同步任务
执行
备注
适用3变量同步,定期更新,特别是每晚跑批
支持基于时间戳的增量同步,需要源表有合适的时间戳支持
对源库有明显的性能影响,不宜频繁查询
不支持实时同步

实时同步

安装实时同步工具(如informatica/Tapdata
创建输入
创建输入源(关系型数据库
创建输入源(mongodb
编辑实时数据同步任务
执行

备注
基于源库的日志文件解析进制可以实现级数据同步
对源库性能影响较少
可以支持应用的无缝迁移

应用主导迁移

应用程序代码

在这里插入图片描述

原文地址:https://blog.csdn.net/m0_37749659/article/details/134702247

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_33194.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注