首页 > 数据库 >数据库迁移:批量 JSON文件 导入 SQL Server

数据库迁移:批量 JSON文件 导入 SQL Server

时间:2023-02-23 16:22:49浏览次数:60  
标签:文件 MongoDB json Server JSON SQL 迁移

--------------------------------------------------------------Beginning--------------------------------------------------------------

一、问题引入

在之前的博客中利用阿里开源软件(DataX)实现了数据库数据的迁移:SQL Server --> MongoDB ,并且成功将 2千万条 记录迁移至 MongoDB。当时顺便还记录了迁移速度,迁移方式:分批次迁移(1百万条/次), DataX统计显示迁移速度: 7000+条/s。执行 10次 迁移任务,耗费时间约 48分钟

通过上一次的迁移经验,这次反过来迁移数据库数据:MongoDB --> SQL Server ,时间和效率理论上是可控的。 但是,问题来了。在执行一批次迁移 9千万+条 记录时,DataX统计显示迁移速度:200+条/s
按照这样的迁移速度,需要耗费时间约:5.2天。迁移持续时间过长,一旦网络中断,一切归零,从来再来,只能另寻他法。

DataX统计记录中,观察到缺陷所在:MonggoDB 读数据时间很长,但SQL Server 写数据时间很短,问题出在MongoDB上。

经过一番查询,SQL Server支持 json 格式导入,而MongoDB 本身就是以 类json 格式存储的。

所以解决方法:MongoDB --> json文件 --> SQL Server

二、解决过程

按照解决方法分两步走:

第一步:MongoDB to json file

第二步:json file to SQL Server

2-1 MongoDB to json file

MongoDB官网上有工具(mongoexport.exe)可以将数据导出json格式文件。(耗费时间约20min)

mongoexport.exe的使用方法请参考官网mongoexport介绍,此处不做说明。

2-2 json file to SQL Server

标签:文件,MongoDB,json,Server,JSON,SQL,迁移
From: https://www.cnblogs.com/caojun97/p/17147471.html

相关文章

  • ElasticSearch 8.2.0版本访问9200端口,返回Empty reply from server
    Docker安装ElasticSearch8.2.0版本后,使用curl访问127.0.0.1:9200端口,返回Emptyreplyfromserver  出现问题的情况可能如下:1、ElasticSearch未启动、或是内存不足......
  • JsonUtil工具类
    转自:https://blog.csdn.net/weixin_45035342/article/details/126440758   1、Json转换成实体   2、实体转json字符串   3、list集合转换成json   4、数......
  • 一次docker启动错误unable to configure the Docker daemon with file /etc/docker/da
    环境:三台服务器,一台daemon可以启动,另外两台不行解决原因:服务器内有两个docker.service,其中一个有配置--insecure-registry=127.0.0.1,重命名后启动docker可用报错如下:2月......
  • SQL中的排序order by 、SQL中的分页limit、SQL的多表查询、
    SQL中的排序使用关键字:ORDERBYORDERBY字段名后使用ASC升序表示;使用DESC表示降序。ORDERBY后面可以使用列的别名进行排序(列的别名只能在ORDERBY中使用,不能再HWERE......
  • SpringBoot21 - 数据层解决方案 SQL
    数据层解决方案-SQL​ SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与MyBatisPlus框架,后面又学了Druid数据源的配置,所以现在数据层解决方案可以说是Mysql......
  • Ubuntu22.04安装Mysql配置远程连接
    安装MySQLsudoaptinstallmysql-server启动sudoservicemysqlstart查看用户密码sudocat/etc/mysql/debian.cnf使用该用户名和密码进入MySQL修改root密码......
  • windows 安装mysql-8.0.13(zip安装)
    安装环境说明系统版本:windows10mysql版本:mysql-8.0.13-winx64.zip下载地址:http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.13-winx64.zip解压安装......
  • MySQL这些底层执行原理,早已成必备了!
    大体来说,MySQL可以分为Server层和存储引擎层两部分。Server层:包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日......
  • C# 自动化发布GeoServer
    最近新接触了GeoServer,从零开始的研究也是折磨了好几天,发现GeoServer这块很多大佬分享各种解决方案,也是帮了我大忙,刚好告一个段落了,所以也贡献一下我这几天的研究成果,希望......
  • redis(1)NoSQL数据库简介
    1.1技术发展redis是用来解决性能问题的数据库技术的分类:解决功能性问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN解决扩展性问题:Struts、Spring、SpringMVC......