把MongoDB的全量数据导入到MySQL里
借助开源DuckDB - 嵌入式DB的OLAP类型(采用列式存储)充当ETL工具
功能概述:
- 无需安装,就一个启动文件duckdb
- 支持映射MySQL数据库,直接在本地读写MySQL表数据
- 支持读取本地json文件
- 没有端口号,本地运行
To Do List:
第一步,导出MongoDB的t1表
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里
shell> ./duckdb me.duckdb
第三步,读取刚才mongoexport导出的json文件,并把数据写入DuckDB的me库t1表里
duckdb> create table t1 as SELECT * FROM read_json_auto('t1.json');
#注:会根据json文件内容,自动创建表结构
第四步,映射远端MySQL hh库,并起一个数据库别名mysql_hh
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表里
duckdb> create table mysql_hh.t1 as SELECT * EXCLUDE('_id') FROM me.t1;
#注:这里排除掉_id列(mongodb默认的主键自增列)
第六步,现在你回到MySQL里,查看hh库的t1表,数据已经全部导入进去了。
结束。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。