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.rhkb.cn/news/208849.html

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

相关文章

【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷14

单选题 1、下列现象中有化学变化发生的是 A、蜡烛融化 B、冰块融化 C、电磁炉烧开水 D、铁生锈 答案:D 2、把左边的图形用剪刀剪开,拼成右边的正方形,至少剪几刀 A、1 B、2 C、3 D、4 答案:B 3、能够检验土壤中有沙和粘…

Vue---Echarts

项目需要用echarts来做数据展示,现记录vue3引入并使用echarts的过程。 1. 使用步骤 安装 ECharts:使用 npm 或 yarn 等包管理工具安装 ECharts。 npm install echarts 在 Vue 组件中引入 ECharts:在需要使用图表的 Vue 组件中,引入…

【Vulnhub 靶场】【HackathonCTF: 2】【简单】【20210620】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/hackathonctf-2,714/ 靶场下载:https://download.vulnhub.com/hackathonctf/Hackathon2.zip 靶场难度:简单 发布日期:2021年06月20日 文件大小:2.6 GB 靶场作者&…

VS安装QT VS Tools编译无法通过

场景: 项目拷贝到虚拟机内部后,配置好相关环境后无法编译,安装QT VS Tools后依旧无法编译,查找资料网上说的是QT工具版本不一致导致的,但反复试了几个版本后依旧无法编译通过。错误信息如下: C:\Users\Ad…

奇葩问题:arp缓存、ip地址冲突(实际是ip地址被占用导致arp缓存出现问题)

文章目录 今天遇到个奇葩的问题 今天遇到个奇葩的问题 今天遇到个奇葩的问题,我把我们192.168.1.116的盒子ip改成192.168.2.116后,再改回来,发现我们盒子的http服务始终无法访问,用Advanced IP Scanner扫描一下,发现就…

【Qt开发流程】之自定义语法高亮和使用HTML语法

描述 语法高亮(Syntax Highlighting)是一种在编辑器中突出显示代码语法元素的技术,使其更易于阅读和理解。 Qt提供了一个功能齐全的语法高亮框架,支持多种语言和格式,可以自定义颜色和样式。 对于使用Qt的开发人员来说…

【论文 | 联邦学习】 | Towards Personalized Federated Learning 走向个性化的联邦学习

Towards Personalized Federated Learning 标题:Towards Personalized Federated Learning 收录于:IEEE Transactions on Neural Networks and Learning Systems (Mar 28, 2022) 作者单位:NTU,Alibaba Group,SDU&…

RPC和REST对比

RPC和REST对比 参考学习 RPC 和 REST 之间有什么区别? 当我们对比RPC和REST时,其实是在对比RPC风格的API和REST风格的API,后者通常成为RESTful API。 远程过程调用(RPC)和 REST 是 API 设计中的两种架构风格。API …

【Linux】第二十五站:深入理解文件系统

文章目录 一、前言二、认识硬件----磁盘1.基本介绍2.磁盘的存储构成3.磁盘的逻辑结构4.回归到硬件 三、文件系统1.划分2.Block group(1)Data blocks(2)inode Table(3)Block Bitmap(4)inode Bitmap(5)Group Descriptor Table(GDT)(6)Super Block 3.总结4.一些其他问题5.如何理解…

Linux 命令stat

命令作用 stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。 查看的信息内容: File 显示文件名 Size 显示文件大小 Blocks 文件使用的数据块总数 IO Block IO块大小 regular file 文件类型(常规文件) Device …

解决:IDEA的debug模式只有第一次能拦截请求进行debug,后续所有请求全部失效

解决:IDEA的debug模式只有第一次能拦截请求进行debug,后续所有请求全部失效 一问题描述:IDEA的debug模式只有第一次能拦截请求进行debug,后续所有请求全部失效二问题原因:对IDEA的debug功能不熟悉或者理解有偏差三解决…

纯cpp如何模拟qt的信号与槽

纯cpp如何模拟qt的信号与槽 我之前是如何使用bind的?一.demo示例二.简单来讲,c自带的bind与function函数,如何实现类似信号与槽的机制1. 简单语法2. function与bind联动尝试1尝试2真正实现流程图 自我反思 我之前是如何使用bind的? 一.demo示例 using MsgHander std::funct…

【C++】C++11

一、C11 简介 C11 - cppreference.com 在 2003 年 C 标准委员会曾经提交了一份技术勘误表(简称TC1),使得 C03 这个名字已经取代了 C98 称为 C11 之前的最新 C 标准名称。不过由于 C03(TC1)主要是对 C98 标准中的漏洞进…

QT中的 容器(container)-大全

一、介绍 Qt库提供了一套通用的基于模板的容器类&#xff0c;可以用这些类存储指定类型的项。比如&#xff0c;你需要一个大小可变的QString的数组&#xff0c;则使用QVector<QString>。 这些容器类比STL&#xff08;C标准模板库&#xff09;容器设计得更轻量、更安全并…

Xilinx Zynq-7000系列FPGA多路视频处理:图像缩放+视频拼接显示,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA图像缩放方案FPGA视频拼接叠加融合方案推荐 3、设计思路详解HLS 图像缩放介绍Video Mixer介绍 4、vivado工程介绍PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程移植说明vivado版本不一致处理FPGA型号不一致处理其他…

基于springboot 学生学情预警系统-计算机毕设 附源码57567

springboot 学生学情预警系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运…

【Java Spring】Spring MVC基础

文章目录 1、Spring MVC 简介2、Spring MVC 功能1.1 Spring MVC 连接功能2.2 Spring MVC 获取参数2.2.1 获取变量2.2.2 获取对象2.2.3 RequestParam重命名后端参数2.2.4 RequestBody 接收Json对象2.2.5 PathVariable从URL中获取参数 1、Spring MVC 简介 Spring Web MVC是构建于…

智慧城市包括哪些内容?有哪些智慧城市物联网方案?

数字城市、智慧城市的发展&#xff0c;离不开对公共基础设施的数字化、智慧化改造升级。通过融合边缘计算、5G、物联网、数字孪生、人工智能等新一代信息技术&#xff0c;助力传统公共基础设施提升增强全流程数据能力、计算能力、服务能力&#xff0c;从而不断丰富公共基础设施…

深度学习记录--logistic回归函数的计算图

计算图用于logistic回归函数 先回顾一下单一样本的logistic回归损失函数的公式&#xff0c;公式如下&#xff1a; 将logistic函数用计算图表示出来(以两个基础量为例)&#xff0c;计算图如下&#xff1a; 前向传播已经完成&#xff0c;接下来完成后向传播 运用链式法则依次求…

[PyTorch][chapter 2][李宏毅深度学习-Regression]

前言&#xff1a; Regression 模型主要用于股票预测,自动驾驶,推荐系统等领域. 这个模型的输出是一个scalar。这里主要以下一个线性模型为基础 它是神经网络的基础模块&#xff0c; 目录&#xff1a; 总体流程 常见问题 Numpy 例子 PyTorch 例子 一 总体流程 1 : 建…