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。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129966.html
摘要:數據的遷移由于需要換引擎,所以原來的數據不能直接使用了,必須使用和兩個工具來遷移數據。指定一個時間限制以毫秒為單位。以上是新版本用戶角色權限的一些說明。到這里,單實例的從遷移到就基本完成了。 首發于 搞起博客 總共有這么幾個問題需要解決: 1. mongodb3.0版本的二進制包 1. wiredTiger引擎的配置 1. 數據的遷移 1. 權限 mongodb3.0的二進...
摘要:則在讀取數據時將兩個中文字段混淆成了一個字段,導致整個數據結構錯亂。三條路子全軍覆沒,這讓我情何以堪,好在使用的經驗頗豐,通過中文的轉換和切割就輕松解決了這個問題。 概述 showImg(https://segmentfault.com/img/bVylLL); 在現實場景中,由于數據來源的異構,數據源的格式往往是難以統一的,這就導致大量具有價值的數據通常是以非結構化的形式聚合在一起的...
摘要:正是存在問題,促使我們考慮引入數據庫審核平臺。的確,與很多互聯網公司相比,數據庫數十套的估摸并不是太大但與互聯網類公司不同,類似宜信這類金融類公司對數據庫的依賴性更大,大量的應用是重數據庫類的,且其使用復雜程度也遠比互聯網類的復雜。 作者:韓鋒 出處:DBAplus社群分享 Themis開源地址:https://github.com/CreditEaseDBA 拓展閱讀:宜信開源|數...
閱讀 1351·2023-01-11 13:20
閱讀 1696·2023-01-11 13:20
閱讀 1209·2023-01-11 13:20
閱讀 1901·2023-01-11 13:20
閱讀 4160·2023-01-11 13:20
閱讀 2739·2023-01-11 13:20
閱讀 1393·2023-01-11 13:20
閱讀 3662·2023-01-11 13:20