Mysql數(shù)據(jù)類型 | mongoimport數(shù)據(jù)類型 | |
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導(dǎo)入命令需注意以下參數(shù):
--type 指定導(dǎo)入文件的類型,可選值有CSV、TSV、JSON
--fields指定Json文檔的字段名
--columnsHaveTypes表示指定每個(gè)字段的數(shù)據(jù)類型,如果加了此選項(xiàng),field字段后面就要加數(shù)據(jù)類型,如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中的表(集合)上沒有嚴(yán)格的結(jié)構(gòu)定義,所以字段數(shù)據(jù)沒有NULL的概念,如果該字段值數(shù)據(jù)為NULL,則直接就不需要這個(gè)字段。而在mysqldump的時(shí)候,如果數(shù)據(jù)是NULL,則導(dǎo)出的文本文件就會(huì)出現(xiàn)NULL,導(dǎo)入后會(huì)呈現(xiàn)如下情況:
此時(shí),建議導(dǎo)出的時(shí)候使用selectifnull(column_name,’’)****intooutfile的形式進(jìn)行導(dǎo)出;在使用mongoimport導(dǎo)入是指定參數(shù)--ignoreBlanks,這樣導(dǎo)入的json文檔就不會(huì)存在null的字段。如果大批量的表數(shù)據(jù)遷移,則使用selectinto outfile比較麻煩,可以考慮使用shell腳本對(duì)原始文本文件進(jìn)行全量的Null替換,然后再導(dǎo)入。
另外在生產(chǎn)中,Mysql數(shù)據(jù)中可能存在以字符串形式保存的Json文檔,在Mongodb中,這種Json文檔建議以子文檔的形式存儲(chǔ)入數(shù)據(jù)庫中,此時(shí)使用mongoimport就不能滿足需求,此時(shí)可以考慮使用python對(duì)文本數(shù)據(jù)進(jìn)行轉(zhuǎn)換后寫入mongodb。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129966.html
摘要:數(shù)據(jù)的遷移由于需要換引擎,所以原來的數(shù)據(jù)不能直接使用了,必須使用和兩個(gè)工具來遷移數(shù)據(jù)。指定一個(gè)時(shí)間限制以毫秒為單位。以上是新版本用戶角色權(quán)限的一些說明。到這里,單實(shí)例的從遷移到就基本完成了。 首發(fā)于 搞起博客 總共有這么幾個(gè)問題需要解決: 1. mongodb3.0版本的二進(jìn)制包 1. wiredTiger引擎的配置 1. 數(shù)據(jù)的遷移 1. 權(quán)限 mongodb3.0的二進(jìn)...
摘要:則在讀取數(shù)據(jù)時(shí)將兩個(gè)中文字段混淆成了一個(gè)字段,導(dǎo)致整個(gè)數(shù)據(jù)結(jié)構(gòu)錯(cuò)亂。三條路子全軍覆沒,這讓我情何以堪,好在使用的經(jīng)驗(yàn)頗豐,通過中文的轉(zhuǎn)換和切割就輕松解決了這個(gè)問題。 概述 showImg(https://segmentfault.com/img/bVylLL); 在現(xiàn)實(shí)場景中,由于數(shù)據(jù)來源的異構(gòu),數(shù)據(jù)源的格式往往是難以統(tǒng)一的,這就導(dǎo)致大量具有價(jià)值的數(shù)據(jù)通常是以非結(jié)構(gòu)化的形式聚合在一起的...
摘要:正是存在問題,促使我們考慮引入數(shù)據(jù)庫審核平臺(tái)。的確,與很多互聯(lián)網(wǎng)公司相比,數(shù)據(jù)庫數(shù)十套的估摸并不是太大但與互聯(lián)網(wǎng)類公司不同,類似宜信這類金融類公司對(duì)數(shù)據(jù)庫的依賴性更大,大量的應(yīng)用是重?cái)?shù)據(jù)庫類的,且其使用復(fù)雜程度也遠(yuǎn)比互聯(lián)網(wǎng)類的復(fù)雜。 作者:韓鋒 出處:DBAplus社群分享 Themis開源地址:https://github.com/CreditEaseDBA 拓展閱讀:宜信開源|數(shù)...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20