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导入
方法一

 --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)
编辑实时数据同步任务
执行

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

四 应用主导迁移

应用程序写代码

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/231741.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

傅里叶变换及其在机器学习中的应用

​​​​​​​一、介绍 傅立叶变换是一种数学技术,在各个科学和工程领域发挥着关键作用,其应用范围从信号处理到量子力学。近年来,它在机器学习领域发现了新的意义。本文探讨了傅里叶变换的基础知识及其在机器学习应用中日益增长的重要性。 …

同旺科技 分布式数字温度传感器

内附链接 1、数字温度传感器 主要特性有: ● 支持PT100 / PT1000 两种铂电阻; ● 支持 2线 / 3线 / 4线 制接线方式; ● 支持5V~17V DC电源供电; ● 支持电源反接保护; ● 支持通讯波特率1200bps、2…

一套后台管理系统的入门级的增删改查(vue3组合式api+elemment-plus)

一、页面示意: 图一 图二 二、组件结构 列表组件 :index.vue,对应图一添加组件:add.vue,对应图二,用抽屉效果编辑组件:edit.vue,和添加组件的效果一个。 三、代码 1、列表组件: index.vue …

代码随想录算法训练营第五十九天| 503.下一个更大元素II 42. 接雨水

文档讲解:代码随想录 视频讲解:代码随想录B站账号 状态:看了视频题解和文章解析后做出来了 503.下一个更大元素II class Solution:def nextGreaterElements(self, nums: List[int]) -> List[int]:res [-1] * len(nums)stack []for i in…

06 # 枚举类型

一个角色判断例子 function initByRole(role) {if (role 1 || role 2) {// do sth} else if (role 3 || role 4) {// do sth} else if (role 5) {// do sth} else {// do sth} }上面的代码存在的问题: 可读性差:很难记住数字的含义可维护性差&…

基于单片机智能液位水位监测控制系统

**单片机设计介绍, 基于单片机智能液位水位监测控制系统 文章目录 一 概要特点应用场景工作原理实现方式 系统功能实时监测控制调节报警功能数据记录与分析 总结 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 ## 系统介绍 基于单片机…

私域数字化建设:解锁企业融资新引擎

私域数字化建设对于增加企业融资能力的机遇是十分重要的,随着数字化经济的快速发展和数据技术的不断进步,企业需要正确认识到数据资产的重要性和私域数字化建设在提升融资能力等方面所带来的机遇。 近期,财政部发布了《企业数据资源相关会计…

CONTROLLING VISION-LANGUAGE MODELS FOR MULTI-TASK IMAGE RESTORATION

CONTROLLING VISION-LANGUAGE MODELS FOR MULTI-TASK IMAGE RESTORATION (Paper reading) Ziwei Luo, Uppsala University, ICLR under review(6663), Cited:None, Stars: 350, Code, Paper. 1. 前言 像CLIP这样的视觉语言模型已经显示出对零样本或无标签预测的各种下游任务…

深度学习毕设项目 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

F. Magic Will Save the World

首先积攒了能量打了怪再积攒是没有意义的,可以直接积攒好,然后一次性进行攻击 那么怎么进行攻击了?可以尽量的多选怪物使用水魔法攻击剩余的再用火魔法进行攻击, 也就是只要存在合法的体积(即装入背包的怪物的体积之…

geoserver根据数据字段动态设置样式

一、数据展示&#xff1a; 二、样式设置 <?xml version"1.0" encoding"UTF-8"?> <StyledLayerDescriptor version"1.0.0" xsi:schemaLocation"http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns"http://…

Linux下Docker 离线安装详细步骤,亲测成功

1.离线原因&#xff1a;公司新创不能使用开元linux&#xff0c;使用了一个变种centOS&#xff0c;致使yum被禁 2.步骤&#xff1a; 2.1 下载docker tar包&#xff0c;下载地址&#xff1a;Index of linux/https://download.docker.com/linux/ 2.2 新建自己的软件目录&am…