菜鳥mysql四分鐘導入千萬級別的數據

最近在分析數據時,遇到1000萬條csv數據,於是便想着將其導入MySQL進行分析,由於本人比較笨,折騰了一晚上還沒搞定,總是遇到各種各樣的錯誤,終於在今天成功導入了這1000萬條數據,在此跟大家分享一下:

一、工具

  1. MySQL-8.0.15
  2. notepad++.7.4.2

二、過程.

  1. 首先先建好相應的數據庫和表
    具體過程大家可以自己根據自己數據實際情況建庫和表,重點各字段名只能全部爲文本類型(char,varchar等)
    注:這裏有個細節要跟大家說一下,數據庫和表的名字不能有“-”等符號,但下劃線可以,不然後面會出錯(後面有圖)

  2. 之後就是數據的處理
    由於數據量過大,用exce只能打開部分數據,所以這裏要用 notpad ++打開,然後將數據轉化爲utf-8編碼
    在這裏插入圖片描述

打開MySQL目錄下的my.ini文件,在裏面添加,secure_file_priv=‘文件導入的數據源’;以後要導入的數據源都要放在這個目錄下纔可以導入,如:secure_file_priv='D:/'
3. 數據導入
切換到相應的數據庫下面:use 數據庫名;

數據開始導入:

 load data infile 'D:/traffic_shenzhen.csv'into table traffic_shenzhen fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n';

解讀:
D:/traffic_shenzhen.csv:數據的存放路徑(注意上面所說的路徑要與my.ini文件裏面添加的位置一致
traffic_shenzhen:數據庫下要存放的表
fields terminated by ‘,’:表示每個字段用逗號分開
optionally enclosed by ‘"’ escaped by ‘"’:內容包含在雙引號內
lines terminated by ‘\n’:每行的換行(注意:window系統用‘\r\n’,linux系統用‘\n’)

在這裏插入圖片描述

這裏可以看出插入的數據有11077919條數據,用時3分鐘45秒

注:一般這樣寫是不會錯的,除非是在一些細節上沒處理好,這些細節在上面都有用“()”或“注”指出,下面也會再進行一些錯誤分析。

三、錯誤分析
一般只要按照上面的步驟來是不會錯的,主要是細節方面的問題,細心點就好,要是實在遇到很多錯誤也不要心浮氣躁,一般的錯誤網上可以找得到的,畢竟人非聖賢,有錯誤也正常,主要心態要好,畢竟這是一個學習的過程,有錯誤纔有收穫,你說對嗎!

  1. .錯誤1:
    在這裏插入圖片描述
    解:這裏就像我說的,在數據庫和表的命名時不能有“-”符號,不然就會有這樣的錯誤提示,所以只要把數據庫和表的名字改一下(不要包含“-”符號)就行了。

  2. notepad++.7.4.2
    在這裏插入圖片描述
    解:這裏命令的寫法跟錯誤1的寫法作用是一樣的,這裏是編碼的問題,我在上面的數據處理那裏說過,要先用notpad++打開,轉爲utf-8編碼就可以解決了。

  3. 錯誤3:
    在這裏插入圖片描述
    解:這裏就像字面意思一樣,沒有選擇是哪個數據庫,所以只要在執行這些命令之前,先執行“use 數據庫名;”就可以了。

  4. 錯誤4:
    在這裏插入圖片描述
    解:這裏的錯誤是數據庫下的表結構導致的,意思就是“道路形狀座標”這一列,你之前給它創建時範圍太小了,csv文件裏面的對應的數據太大,數據庫下的表存不下,所以,只要把數據庫下的表中的“道路形狀座標”這一列的範圍改大一點就可以了。

  5. 錯誤5:
    在這裏插入圖片描述
    解:這裏只要打開MySQL目錄下的my.ini文件,在裏面添加,secure_file_priv=‘文件導入的數據源’;以後要導入的數據源都要放在這個目錄下纔可以導入,如:secure_file_priv=‘D:/’

  6. 錯誤6:
    在這裏插入圖片描述
    解:這裏是字段的類型不對,可以字段類型改一下就好,比如:全部改爲varchar類型等。

以上就是本次千萬級別數據導入的全部內容,希望對大家有用,如有說得不對得地方希望大佬指出,本文純屬原創,如有侵權,可聯繫本人博主刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章