호기심 많은 분석가
[Linux] File 옮기기 본문
일전에 포스팅했던 2021.05.04 - [Machine Learning] - [SQL] DB(데이터베이스)의 data를 csv로 추출하는 법이 Local에서는 별 무리 없이 돌아갔는데 서버에서 하나의 문제점이 발생했다.
[SQL] DB(데이터베이스)의 data를 csv로 추출하는 법
포스팅 개요 보통의 공모전이나 캐글은 csv 형태의 파일을 제공하고 시작하기에 데이터를 추출하는 역량이 필요해 보이지 않을 수 있습니다. 하지만 현업에서는 그런 편한 상황은 주어지지 않
herjh0405.tistory.com
서버에서 작업을 편하게 하기 위해 VS code로 연결해서 사용하고 있었는데 /var/lib/mysql-files/라는 폴더를 가시화시킬 수 없었다. 데이터를 모두가 편하게 쓸 수 있도록 보기 쉬운 곳으로 데이터를 옮겨보자.
저번에 포스팅 했던 대로 우리의 데이터는 /var/lib/mysql-files 폴더에 0511_17.csv라는 이름으로 저장해주었다.
( WINDOW에서 MySQL을 설치하고 다른 설정을 건드리지 않는다면 기본적으로 /var/lib/mysql-files 폴더에 저장된다.)
SELECT * FROM WDS_ROW_PROCESS
WHERE DAY BETWEEN 11 AND 17
INTO OUTFILE '/var/lib/mysql-files/0511_17.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n';
Workbench나 phpMyAdmin 같은 다른 Tool을 사용하지 않고 Ubuntu 자체에서 저장을 해주니 천만 건의 query가 30초 만에 저장이 되었다. 이제 이 데이터를 옮겨보자. 나는 /home/ubuntu/ 경로에 data_csv라는 폴더를 만들어두었다.
Linux의 mv 문법을 사용하겠다.
mv [이동할 파일명] [이동할 위치]
mv /var/lib/mysql-files/0511_17.csv /home/ubuntu/data_csv/0511_17.csv
위와 같이 실행해주면 우리가 원하는 목표를 이루어냈다.!
참고. 서버 상에서 데이터를 저장하면 column의 이름들이 지정되어 있지 않으므로,import pandas as pd col_name = ['IDX', 'AP_ADDR', 'MAC_ADDR', 'IN_TIME','DURATION', 'DISTANCE', 'COLLECT_DATE', 'YEAR', 'MONTH', 'DAY', 'HOUR', 'WEEK', 'WEEKOFYEAR'] df = pd.read_csv(data, header=None, usecols=range(13), names=col_name) df.to_csv(data, index=False)
위의 코드를 참조하여 평소에 사용하던 모습으로 변화시켜줄 수 있다.
점점 데이터의 용량이 커지고 있다. 다음번에는 SAS를 통해 대용량 데이터를 처리하는 포스팅이 올라갈지도 모른다.
'Coding > Information' 카테고리의 다른 글
[Google Drive] 구글 드라이브 '내 드라이브에 추가' (4) | 2021.06.15 |
---|---|
[Ubuntu] ubuntu 터미널 명령어를 조금 알아보자 (0) | 2021.06.14 |
[Git] .gitignore 사용하기 (0) | 2021.05.05 |
[메쉬코리아] 2021 부릉 개발자 채용 코딩 테스트 후기 (0) | 2021.04.27 |
[데이터] 공공 데이터 포털 정리 (0) | 2021.04.25 |