본문 바로가기
Web/Server & MySQL

[2021.07.23] MySQL에 1분 내로 대용량 데이터 CSV File 업로드 방법?

by injekim97 2021. 7. 23.
반응형

[2021.07.23] MySQL에 1분 내로 대용량 데이터 CSV File 업로드 방법?

 

 

1. 우선, csv 파일을 다운 받는다

2. 해당 파일을 아스키코드(.excel)로 workbench를 통해, 자동으로 테이블 과 컬럼(속성)을 만든다

-> 여기서, 아스키코드가 아니라면 editplus를 통해, utf-8 -> ASCII로 인코딩 해준다

0723_waist(아스키코드_workbench table setting 용도).csv
0.21MB

 

 

3. 2번에서 업로드후 10~20초후에 종료한다 

-> 자동으로 테이블과 컬럼을 setting 하기 위한 작업이기 때문이다.

-> 그런후 truncate로 데이터를 모두 삭제한다

 

 

4. workbench에서, num이라는 필드를 추가하면서 , PK,NN,AI를 Select 후, apply를 눌러준다(auto_increment)

 

 

5. 파일질라(FTP)

-> 해당 아스키코드(.excel) 파일을 editplus를 이용하여, UTF-8(.csv)로 변환하여, 파일 전송

 

0723_waist(utf8_linux에서 LOAD_DATA 용도).csv
0.20MB

 

 

mysql --local-infile=1 -u root -p

->  mysql 접속

 

 

LOAD DATA LOCAL INFILE "/home/ubuntu/data/0720_허리둘레.csv" INTO TABLE DATA.waist FIELDS TERMINATED BY "," IGNORE 1 LINES

-> LOAD DATA를 통해 데이터 삽입

 

 

* conf 파일로 db data -> logstash에 전송할 때

output -> elasticsearch -> document_id => {4번에서 설정한 num}으로 설정 해야 데이터가 중복으로 들어가지지 않음

 

 

 

 

 

input {
    jdbc {
        jdbc_driver_library => "/usr/share/java/mysql-connector-java-8.0.25.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        jdbc_connection_string => "jdbc:mysql://localhost:3306/DATA?allowPublicKeyRetrieval=true&useSSL=false&user=root&password=root"
        #jdbc_connection_string => "jdbc:mysql://localhost:3306/DATA?useSSL=false&user=root&password=root"
        jdbc_user => "root"
        jdbc_password => "root"
        schedule => "* * * * *"
        statement => "select * from waist"
        type => "waist"
        tracking_column => "table_1"
        use_column_value => true
        }
}



output {
    if[type] == "waist"  {
        elasticsearch {
            hosts => "localhost:9200"
            index => "0723_waist"
            user => "elastic"
            password => "d2L79ArdVSJqbxqATuKj"
            document_id => "%{num}"

            }
    
    }
    stdout {
        #codec => dots {}
        codec => rubydebug

    }    
}

 

07_23_logstash_success.conf
0.00MB

 

 

반응형

댓글