msyql迁移到mongodb

关系型数据库迁移到mongodb的理由

高并发需求,关系型数据库不容易扩展

快速迭代

灵活的json模式

大数据量需求

应用迁移难度:

关系型到关系

oracle-》mysql oracle -》 postgresql

关系到文档-

oracle -》 mongodb

需要考虑:

总体架构(单体到分布式)

模式设计(关系模式到文档模型)

SQL语句/储存过程/JDBC/ORM

数据迁移(如何处理已有数据?)

模式设计:

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

方法一:使用mongexport

一次性导入,需要停机

1.数据库导出

mysql添加参数secure-file-priv=/tmp #/tmp为导出的目录

方法一:

mysqldump导出:

-T 参数用于指定导出结果的目录和表文件名前缀,会导出txt格式的数据

mysqldump -uroot -p123456 test -T /tmp/

cat /tmp/testlog.txt

select导出:

select * from test.testlog into outfile '/tmp/testlog.csv';

导出后添加,号 sed -i.bak 's/\t/,/g' testlog.txt

2.导入

mongoexport导入

方法一

bash 复制代码
 --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,salary --type=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)

编辑实时数据同步任务

执行

备注:

基于源库的日志文件解析进制,可以实现秒级数据同步

对源库性能影响较少

可以支持应用的无缝迁移

四 应用主导迁移

应用程序写代码

相关推荐
一 乐13 小时前
茶叶商城|基于springboot + vue茶叶商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·茶叶商城系统
szccyw015 小时前
PHP源码能否用二手服务器部署_老旧服务器性价比分析【方法】
jvm·数据库·python
m0_6138562921 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
Adios79421 小时前
VPR:Pitts50K和Norland数据集下载
数据库
东风破13721 小时前
DM用户权限、表、约束等对象的基本操作,SQL日志的开启介绍
数据库·sql·dm达梦数据库
收获不止数据库1 天前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
小宇的天下1 天前
Virtuoso GUI 界面中的关键模块定义
数据库
bqq198610261 天前
MySQL 5.7 与 MySQL 8.0 的主要区别
数据库·mysql
Elastic 中国社区官方博客1 天前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
互联网推荐官1 天前
上海软件定制开发全流程拆解:需求分析、技术选型与交付管理的工程实践
大数据·数据库·需求分析