Mysql数据类型 | mongoimport数据类型 | |
1 | tinyint | int32() |
2 | smallint | int32() |
3 | mediumint | int32() |
4 | integer | int32() |
5 | bigint | int64() |
6 | decimal | decimal() |
7 | float | double() |
8 | double | double() |
9 | char | string() |
10 | varchar | string() |
11 | tinytext | string() |
12 | text | string() |
13 | mediumtext | string() |
14 | longtext | string() |
15 | year | string() |
16 | date | date_oracle(YYYY-MM-DD) |
17 | time | string() |
18 | datetime | date_oracle(YYYY-MM-DD HH24:MI:SS) |
19 | timestamp | date_oracle(YYYY-MM-DD HH24:MI:SS) |
20 | bit | int32() |
mongoimport导入命令需注意以下参数:
--type 指定导入文件的类型,可选值有CSV、TSV、JSON
--fields指定Json文档的字段名
--columnsHaveTypes表示指定每个字段的数据类型,如果加了此选项,field字段后面就要加数据类型,如msisdn.string()
命令示例:
mongoimport--db ring***ne_prod --collection=Di***bt --parseGrace=skipField--fields="ms**dn.string(),r***ame.string(),nic**me.string(),co***ntId.string(),cop***tId.string(),fil***pe.string(),dat***atus.string(),localF***Path.string(),diyTran*****nId.string(),diyFtp***ath.string(),diyFile***at.string(),cre***me.date_oracle(YYYY-MM-DDHH24:MI:SS),lastM****ime.date_oracle(YYYY-MM-DDHH24:MI:SS),sta***e.string(),e***ime.string(),he***Str.string(),dep***onId.string(),act***Id.string(),l***el.string()"--type tsv --file=t_m****bt_info.tsv --numInsertionWorkers=100--columnsHaveTypes
在上面也说过,在Mongodb中的表(集合)上没有严格的结构定义,所以字段数据没有NULL的概念,如果该字段值数据为NULL,则直接就不需要这个字段。而在mysqldump的时候,如果数据是NULL,则导出的文本文件就会出现NULL,导入后会呈现如下情况:
此时,建议导出的时候使用selectifnull(column_name,’’)****intooutfile的形式进行导出;在使用mongoimport导入是指定参数--ignoreBlanks,这样导入的json文档就不会存在null的字段。如果大批量的表数据迁移,则使用selectinto outfile比较麻烦,可以考虑使用shell脚本对原始文本文件进行全量的Null替换,然后再导入。
另外在生产中,Mysql数据中可能存在以字符串形式保存的Json文档,在Mongodb中,这种Json文档建议以子文档的形式存储入数据库中,此时使用mongoimport就不能满足需求,此时可以考虑使用python对文本数据进行转换后写入mongodb。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129966.html
摘要:数据的迁移由于需要换引擎,所以原来的数据不能直接使用了,必须使用和两个工具来迁移数据。指定一个时间限制以毫秒为单位。以上是新版本用户角色权限的一些说明。到这里,单实例的从迁移到就基本完成了。 首发于 搞起博客 总共有这么几个问题需要解决: 1. mongodb3.0版本的二进制包 1. wiredTiger引擎的配置 1. 数据的迁移 1. 权限 mongodb3.0的二进...
摘要:则在读取数据时将两个中文字段混淆成了一个字段,导致整个数据结构错乱。三条路子全军覆没,这让我情何以堪,好在使用的经验颇丰,通过中文的转换和切割就轻松解决了这个问题。 概述 showImg(https://segmentfault.com/img/bVylLL); 在现实场景中,由于数据来源的异构,数据源的格式往往是难以统一的,这就导致大量具有价值的数据通常是以非结构化的形式聚合在一起的...
摘要:正是存在问题,促使我们考虑引入数据库审核平台。的确,与很多互联网公司相比,数据库数十套的估摸并不是太大但与互联网类公司不同,类似宜信这类金融类公司对数据库的依赖性更大,大量的应用是重数据库类的,且其使用复杂程度也远比互联网类的复杂。 作者:韩锋 出处:DBAplus社群分享 Themis开源地址:https://github.com/CreditEaseDBA 拓展阅读:宜信开源|数...
阅读 1348·2023-01-11 13:20
阅读 1687·2023-01-11 13:20
阅读 1136·2023-01-11 13:20
阅读 1863·2023-01-11 13:20
阅读 4104·2023-01-11 13:20
阅读 2708·2023-01-11 13:20
阅读 1388·2023-01-11 13:20
阅读 3600·2023-01-11 13:20