-
[Python] pandas를 이용한 mariadb 결과값 csv 파일로 저장Mysql, Maria DB 2019. 8. 26. 01:22
DB의 결과값을 CSV로 저장할 필요가 있을 수도 있는데, 저장할 양이 많아질 수록 pandas를 이용하면 빠른 속도로
저장할 수 있다.
샘플 : 윈도우 성능 퍼포먼스 데이터 약 80만건
import pymysql print('start-time : ', str(datetime.now())[:19] ) def filewrite(): with open('mysql_output.csv', 'a') as f: f.writelines(text[:-1]+'\n') conn = pymysql.connect(host=' ', user=' ', password=' ' ,db=' ', charset='utf8') c = conn.cursor() sql = 'select * from perfomance_log where logtime between "2019-08-10 00:00:00" and "2019-08-10 23:59:59"' c.execute(sql) rows = c.fetchall() for x in rows: text = '' for y in x: y = str(y) text = text+y+',' # 구분자 : , filewrite() c.close() conn.close() print('end-time : ', str(datetime.now())[:19])
pymysql 모듈일 이용하여 csv파일로 저장하였을 때, 약 20분이 소요
start-time : 2019-08-26 00:49:29
end-time : 2019-08-26 01:09:12
import pandas as pd import pymysql from datetime import datetime print('start-time : ', str(datetime.now())[:19] ) conn = pymysql.connect(host=' ', user=' ', password=' ' ,db=' ', charset='utf8') query = 'select * from perfomance_log where logtime between "2019-08-10 00:00:00" and "2019-08-10 23:59:59"' df = pd.read_sql_query(query,conn) df.to_csv(r'mysql_output_pandas.csv', index=False) print('end-time : ', str(datetime.now())[:19])
pandas를 이용하여 csv파일로 저장하였을 때, 약 2분이 소요
start-time : 2019-08-26 00:53:28
end-time : 2019-08-26 00:55:36
2개의 파일도 용량으로 비교했을 때, 정상적으로 생성된것으로 보여지고 엑셀에서도 읽을 수 있는 csv파일로 정상적으로
저장되었다.
단순히 CSV로 저장할 때는 pandas를 이용하자.
'Mysql, Maria DB' 카테고리의 다른 글
[ Mariadb ] 10.x version install (YUM) (0) 2019.12.18 [ Mariadb ] View database Version. (마리아DB 버전보기) (0) 2019.12.18 [ mariadb query ] delete문 (0) 2019.11.29 maria db today sql (오늘 날짜 출력 쿼리) (0) 2019.09.30 maria db column 추가 (0) 2019.07.22 CentOS mariadb slow query (슬로우쿼리) 설정 (0) 2019.07.05 python을 이용한 maria DB 접속 로그 (1) - grafana 시각화 모니터링 (0) 2019.06.10 [Python] maria DB 접속 로그 (1) - 설정 및 모니터링 (0) 2018.05.12