MySQL大表数据导入到MongoDB

修改参数 ,开启into outfile的功能

secure_file_priv='/home/backups/mysql_outfile'

重启数据库是参数生效

按条件导出MySQL数据

sql 复制代码
select  * from receipt_receive_log  where gmt_create >= '2020-04-13 00:00:00' and gmt_create<= '2020-07-13 00:00:00' INTO OUTFILE '/home/backups/mysql_outfile/receipt_receive_log_2020_q1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY "'" LINES TERMINATED BY '\n';

FIELDS TERMINATED BY ',' 字段用逗号分割

ENCLOSED BY "'" 每个字段的数据用引号

LINES TERMINATED BY '\n' 每行数据换行

导出表头

注意表头的字段不能加引号,否则导入到MongoDB的时候字段名也会有引号

SELECT column_name FROM information_schema.columns WHERE table_schema = 'workingplatform_prod' AND table_name = 'receipt_receive_log' INTO OUTFILE '/home/backups/mysql_outfile/receipt_receive_log_tableHead.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY ',';

创建导入账号

在要导入数据的MongoDB数据库下创建一个账号

db.createUser( {user: "user_name",pwd: "123",roles: [ { role: "readWrite", db: "db_name" }] })

使用mongoimport导入

mongoimport --headerline --type=csv -d workingplatform_test -c receipt_receive_log_2020_q1 -h 10.89.181.21 --port=27017 -u workingplatform_test_rw -p 123 --file=receipt_receive_log_q1.csv -vv

导入报错

Failed: read error on entry #231885: line 231886, column 7245: bare " in non-quoted-field

'单据转换错误:Unparseable date: ""',

根据报错查看数据 发现该条数据中有引号,引号会被识别为CSV文件类象的分隔符, 导致导入报错。

相关推荐
JSON_L13 分钟前
Fastadmin中实现敏感词管理
数据库·php·fastadmin
不是起点的终点1 小时前
【实战】Python 一键生成数据库说明文档(对接阿里云百炼 AI,输出 Word 格式)
数据库·python·阿里云
2301_813599553 小时前
Go语言怎么做秒杀系统_Go语言秒杀系统实战教程【实用】
jvm·数据库·python
NCIN EXPE8 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台8 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路8 小时前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家8 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE8 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow128 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO8 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库