Python/Python For Analytics

[Python] pandas를 이용한 mariadb 결과값 다른 mariadb 테이블로 저장

Pydole 2019. 8. 29. 01:59

python pandas를 이용해서 mariadb의 쿼리 결과값을 다른 table로 저장이 가능하다.

 

샘플로 perfomance_log 테이블의 4개 컬럼 1,000,000를 불러와서 새로운 테이블로 저장해보겠다.

sys_processortime

sys_mem_availablembytes

sys_net_revbytes_sec

sys_net_sendbytes

 

import pandas as pd
import pymysql
from sqlalchemy import create_engine

conn = pymysql.connect(host='host', user='user', password='password' ,db='db', charset='utf8')
query = 'select sys_processortime, sys_mem_availablembytes, sys_net_revbytes_sec, sys_net_sendbytes_sec from perfomance_log limit 1000000'
df = pd.read_sql_query(query,conn)
print(df)

pymysql.install_as_MySQLdb()

engine = create_engine("mysql://user:password@host/db")
df.to_sql(name='new_perfomance_log', con=engine, if_exists='append', index=False)
                                     # if_exists='append' : table 존재시 데이터만 추가
                                     # index=False : index 값 넣지 않기
 
-----------------------------------------------------------------------------------

'''
        sys_processortime  ...  sys_net_sendbytes_sec
0                    2.08  ...              368969.00
1                    4.04  ...              384656.00
2                    0.52  ...               19031.00
3                    6.12  ...              376019.00
4                    2.08  ...                2113.49
...                   ...  ...                    ...
999995               1.95  ...             1722950.00
999996               0.39  ...              514143.00
999997               0.78  ...              662456.00
999998               1.17  ...              202079.00
999999               0.78  ...              298220.00

[1000000 rows x 4 columns]

'''

 

 

새로운 테이블에 정상적으로 데이터가 정상적으로 추가되었다.