Back-end Skill/DataBase

Python pandas을 통해 DB 마이그레이션하는 방법

Sophie소피 2022. 10. 5. 16:39
  1. 젯브레인에서 파이썬 IDE인 pycahrm를 설치한다.
  2. 파이썬을 설치한다.
  3. cmd에서 pandas를 설치한다.

Python Pandas 설치 및 import 방법
https://danykde0til.tistory.com/m/104

  1. 파이썬과 판다스 설치 후 파이참에서 엑셀 파일을 잘 불러오는지 확인해본다.

Python Pandas로 Excel 파일 불러오고 조회하는 방법
https://danykde0til.tistory.com/m/105

 

Python Pandas로 Excel 파일 불러오고 조회하는 방법

import pandas as pd import warnings import os warnings.simplefilter("ignore") fileDir = "C:/Users/SEEYA/Desktop/Data/구급일지/" # 파일경로+ 폴더명 fileNm = "AAA.csv" # 파일 이름 data = pd.read_csv(f..

danykde0til.tistory.com


필요한 컬럼명을 줄여서 테이블을 생성한다.

  1. 시연영상을 보고 구급일지와 구조일지 엑셀 파일(엑셀파일 데이터들 중 필요핮 컬럼 추출해서 알아서 만들면됨 )에서

 

  • 구급일지 테이블
    ### 구급일지 테이블
    
    ```jsx
    CREATE TABLE `er_kde` (
      `DIS_SEQ` varchar(12) NOT NULL,
      `EMR_RE_SEQ` varchar(17) NOT NULL,
      `FS_From` varchar(30) DEFAULT NULL,
      `EMR_Regi` varchar(30) DEFAULT NULL,
      `REP_YMD` varchar(10) DEFAULT NULL,
      `REP_Time` varchar(5) DEFAULT NULL,
      `Center` varchar(20) DEFAULT NULL,
      `Mov_YMD` varchar(10) DEFAULT NULL,
      `Mov_Time` varchar(5) DEFAULT NULL,
      `Arriv_YMD` varchar(10) DEFAULT NULL,
      `Arriv_date` varchar(5) DEFAULT NULL,
      `Pati_YMD` varchar(10) DEFAULT NULL,
      `Pati_Time` varchar(5) DEFAULT NULL,
      `Dist_f` varchar(10) DEFAULT NULL,
      `YMD_Dep_f` varchar(10) DEFAULT NULL,
      `Time_Dep_f` varchar(5) DEFAULT NULL,
      `Hosp_YMD` varchar(10) DEFAULT NULL,
      `Hosp_Time` varchar(5) DEFAULT NULL,
      `ER_Coun` varchar(30) DEFAULT NULL,
      `ER_Gu` varchar(30) DEFAULT NULL,
      `ER_Dong` varchar(30) DEFAULT NULL,
      `ER_lee` varchar(30) DEFAULT NULL,
      `ER_HN` varchar(100) DEFAULT NULL,
      `ER_Adrr` varchar(200) DEFAULT NULL,
      `ER_Place` varchar(200) DEFAULT NULL,
      `Symptom1` varchar(20) DEFAULT NULL,
      `Pati_Sort` varchar(20) DEFAULT NULL,
      PRIMARY KEY (`DIS_SEQ`,`EMR_RE_SEQ`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
  • 구조구급 테이블
CREATE TABLE `es_kde` (
  `REG_SEQ` varchar(12) NOT NULL,
  `REG_ROUTE_CD` varchar(100) DEFAULT NULL,
  `REG_DTIME` varchar(100) DEFAULT NULL,
  `CALL_ALI` varchar(1000) DEFAULT NULL,
  `TTY_ID` varchar(100) DEFAULT NULL,
  `TREAT_CLS_CD` varchar(100) DEFAULT NULL,
  `REG_END_DTIME` varchar(100) DEFAULT NULL,
  `GIS_X` varchar(100) DEFAULT NULL,
  `GIS_Y` varchar(100) DEFAULT NULL,
  `DSR_SEQ` varchar(12) NOT NULL,
  `RECORD_NO` varchar(100) DEFAULT NULL,
  `RECORD_SEND_YN` varchar(100) DEFAULT NULL,
  `BOARD_CLS` varchar(100) DEFAULT NULL,
  `BOARD_NO` varchar(100) DEFAULT NULL,
  `ADDR_TYPE` varchar(100) DEFAULT NULL,
  `RN_CD` varchar(100) DEFAULT NULL,
  `EMD_SN` varchar(100) DEFAULT NULL,
  `UNDGRD_FG` varchar(100) DEFAULT NULL,
  `BULD_MNNM` varchar(100) DEFAULT NULL,
  `BULD_SLNO` varchar(100) DEFAULT NULL,
  `CALL_RN_ETC_ADDR` varchar(100) DEFAULT NULL,
  `CALL_SN` varchar(100) DEFAULT NULL,
  `TRANS_REG_CLS` varchar(100) DEFAULT NULL,
  `OUTORG_TRANS_DTIME` varchar(100) DEFAULT NULL,
  `TRANSREG_ORG_CD` varchar(100) DEFAULT NULL,
  `TRANS_PROC_CD` varchar(100) DEFAULT NULL,
  `EMG_CALLREG_YN` varchar(100) DEFAULT NULL,
  `RECV_CALL_112_YN` varchar(100) DEFAULT NULL,
  `OUTORG_REG_NO` varchar(100) DEFAULT NULL,
  `CALL_BACK_YN` varchar(100) DEFAULT NULL,
  `MSR_TYPE_CD` varchar(100) DEFAULT NULL,
  `FOREIGNER_YN` varchar(100) DEFAULT NULL,
  `DSR_SEQ_1` varchar(100) DEFAULT NULL,
  `SAMEDSR_SEQ` varchar(100) DEFAULT NULL,
  `DSR_ZIP_SEQ` varchar(100) DEFAULT NULL,
  `DSR_SIDO_CD` varchar(100) DEFAULT NULL,
  `DSR_GUGUN_CD` varchar(100) DEFAULT NULL,
  `DSR_DONG_CD` varchar(100) DEFAULT NULL,
  `DSR_RI_CD` varchar(100) DEFAULT NULL,
  `DSR_HOUSE_NO` varchar(100) DEFAULT NULL,
  `DSR_ETC_ADDR` varchar(100) DEFAULT NULL,
  `OBJ_ID` varchar(100) DEFAULT NULL,
  `DSR_KND_CD` varchar(100) DEFAULT NULL,
  `DSR_CLS_CD` varchar(100) DEFAULT NULL,
  `DSR_SIZE_CD` varchar(100) DEFAULT NULL,
  `PROC_CD` varchar(100) DEFAULT NULL,
  `CTL_YN` varchar(100) DEFAULT NULL,
  `CTL_USER_ID` varchar(100) DEFAULT NULL,
  `TTY_ID_1` varchar(100) DEFAULT NULL,
  `STAT_END_DTIME` varchar(100) DEFAULT NULL,
  `END_USER_ID` varchar(100) DEFAULT NULL,
  `JURIS_WARD_ID` varchar(100) DEFAULT NULL,
  `HAND_INS_YN` varchar(100) DEFAULT NULL,
  `RADIO_CH` varchar(100) DEFAULT NULL,
  `STATION_ID` varchar(100) DEFAULT NULL,
  `POINT_ACCR_CLS` varchar(100) DEFAULT NULL,
  `GIS_X_1` varchar(100) DEFAULT NULL,
  `GIS_Y_1` varchar(100) DEFAULT NULL,
  `SAMEDSR_RAD` varchar(100) DEFAULT NULL,
  `D_FST_REG_SEQ` varchar(100) DEFAULT NULL,
  `CTRLRSC_DSP_REQ_YN` varchar(100) DEFAULT NULL,
  `AFT_REG_YN` varchar(100) DEFAULT NULL,
  `DSP_DELAY_RSN_CD` varchar(100) DEFAULT NULL,
  `AIR_DSR_SEQ` varchar(100) DEFAULT NULL,
  `DSR_ADMIN_ZIP_SEQ` varchar(100) DEFAULT NULL,
  `DSR_ADMIN_SIDO_CD` varchar(100) DEFAULT NULL,
  `DSR_ADMIN_GUGUN_CD` varchar(100) DEFAULT NULL,
  `DSR_ADMIN_DONG_CD` varchar(100) DEFAULT NULL,
  `DSR_ADMIN_RI_CD` varchar(100) DEFAULT NULL,
  `ADDR_FLAG` varchar(100) DEFAULT NULL,
  `AVL_GIS_X` varchar(100) DEFAULT NULL,
  `AVL_GIS_Y` varchar(100) DEFAULT NULL,
  `RN_CD_1` varchar(100) DEFAULT NULL,
  `EMD_SN_1` varchar(100) DEFAULT NULL,
  `UNDGRD_FG_1` varchar(100) DEFAULT NULL,
  `BULD_MNNM_1` varchar(100) DEFAULT NULL,
  `BULD_SLNO_1` varchar(100) DEFAULT NULL,
  `ADDR_TYPE_1` varchar(100) DEFAULT NULL,
  `DSR_RN_ETC_ADDR` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`REG_SEQ`,`DSR_SEQ`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

  1. 엑셀 파일 csv 파일로 변환하는 법 (굳이 안해도되긴합니다 용량에서 차이가 난다고 합니다.)

 

for 문돌려서 변환했습니다.

변환된 csv 파일 폴더와 db 주소 찾아서 insert 하는 법입니다.
sql문으로 컬럼명 insert하고 for문돌려서 엑셀형태의 파일을 csv파일로 변환해줍니다.
파일경로도 지정하주고 형변환해줍니다. 배열로 찾아서 엑셀에 있는 데이터들이
테이블로 insert된걸 확인해줄 수 있습니다.

100만건 정도 마이그레이션하는데 시간이 조큼 걸리긴합니다!
궁금한건 댓글로 남겨주세요.
사이드로 통계 전공한 친구와 함께
데이터 시각화 하는 프로젝트에 관심 있어서
시작해보려고합니다.
r shiny 좀 치시는 분?!