1. 程式人生 > >將mongodb中的資料匯入mysqld

將mongodb中的資料匯入mysqld

最近學習了一下將微博爬取的資料從mongodb匯入mysql!
其實網上已經有很多教程了,匯入過程不難,只不過在匯入過程中出現了很多錯誤,所以在此記錄一下。

一、用mongodb的匯出工具mongoexport

用爬蟲系統將微博上的部分資料爬取下來的內容如下兩圖,有兩種形式: 形式一:
形式二:
用mongoexport將資料庫匯出成csv格式,開啟mongodb的命令列視窗後,啟動mongodb。啟動之後,再重新開啟一視窗,輸入命令: 形式一對應命令:
形式二對應命令: (注意:形式二中的geometry.coordinates.1等寫法與形式一的不同) 最後,可以得到兩個csv檔案。如下圖:

二、利用navicat for mysql工具將csv檔案匯入mysql中

如果直接將csv利用“匯入嚮導”匯入mysql,會出現錯誤: 比如它的目標欄位無法正確識別,以至於無法匯入資料

但是用xlsx開啟csv檔案,發現它的分欄是正確的,可能是由於記事本無法自動換行的原因導致軟體無法識別。於是我試著將csv匯出成xlsx格式,因為xlsx格式有明確的分欄,在導成xlsx之前還需要將csv另存為編碼為UTF-8的csv,不然xlsx中是亂碼。如下圖:
最後在excle中開啟csv,並另存為xlsx格式。再用原來的方法重新匯入,匯入成功!
但是形式二的Tweets檔案用同樣的方法卻無法匯入成功,只能匯入一部分的資料。錯誤如下:

原因是,微博爬取的資料中很多用到了emoij表情,但是這些emoij表情佔4個字元,UTF-8只能儲存3個字元,需要轉換成UTF-8mb4格式,然而現在還沒有找到合適的方法解決這個問題。網上有很多解決方案,但是試了之後還是沒有用。也請各位大神能多多指教! 最後,附上我參考的幾個優秀網址:http://chenzhou123520.iteye.com/blog/1641319                                                                 http://mobile.51cto.com/aengine-448430.htm                                                                 http://blog.csdn.net/yan943789510/article/details/44196317