前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >把MongoDB的全量数据导入到MySQL里

把MongoDB的全量数据导入到MySQL里

原创
作者头像
贺春旸的技术博客
发布2024-03-27 15:11:06
1400
发布2024-03-27 15:11:06
举报
文章被收录于专栏:DBA 平台和工具DBA 平台和工具

把MongoDB的全量数据导入到MySQL里

借助开源DuckDB - 嵌入式DB的OLAP类型(采用列式存储)充当ETL工具

http://duckdb.org/

功能概述:

- 无需安装,就一个启动文件duckdb

- 支持映射MySQL数据库,直接在本地读写MySQL表数据

- 支持读取本地json文件

- 没有端口号,本地运行

To Do List:

第一步,导出MongoDB的t1表

代码语言:bash
复制
shell> /usr/local/mongodb/bin/mongoexport -u admin -p 123456 -h 192.168.176.204:37017 -d test -c t1 --authenticationDatabase admin -o t1.json

第二步,进入DuckDB 默认库me里

代码语言:bash
复制
shell> ./duckdb me.duckdb 

第三步,读取刚才mongoexport导出的json文件,并把数据写入DuckDB的me库t1表里

代码语言:sql
复制
duckdb> create table t1 as SELECT * FROM read_json_auto('t1.json');

#注:会根据json文件内容,自动创建表结构

第四步,映射远端MySQL hh库,并起一个数据库别名mysql_hh

代码语言:sql
复制
duckdb> ATTACH 'host=192.168.137.132 user=admin password=123456 port=3306 database=hh' AS mysql_hh (TYPE mysql_scanner);

第五步,从DuckDB里取出me库t1表的数据写入远端MySQL hh库的t1表里

代码语言:sql
复制
duckdb> create table mysql_hh.t1 as SELECT * EXCLUDE('_id') FROM me.t1;

#注:这里排除掉_id列(mongodb默认的主键自增列)

第六步,现在你回到MySQL里,查看hh库的t1表,数据已经全部导入进去了。

结束。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com