본문 바로가기
Database/MySQL

[Programming][MySQL] Workbench로 데이터 Import하기(Feat. 카카오 주가 데이터)

by LydiaRyu 2021. 7. 22.
반응형

 

실습에 사용할 목적으로 카카오 주간 주가 데이터(2020/07/21-2021/07/22 ) 데이터를 INVESTING.COM에서 추출하여 CSV 파일로 생성했다.

 

  • 데이터 설명

데이터는 주 별 기준일(date), 종가(close), 오픈(open), 고가(high), 저가(low), 거래량(volume), 변동(fluctuation)으로 구성되어 있고, 고윳값 실습을 위해 name 변수와 TEXT 데이터를 위해 month  변수를 임의로 추가했다. 

 

  •  Create Schemas

데이터 집합체인 스키마를 만들어 주기 위해 왼쪽 SCHEMAS 창에 마우스를 대고 우클릭하여 Create Schea.. 를 클릭한다. 

 

 

 

스키마의 이름을 정하는 페이지가 나오는데, 원하는 이름을 설정한 후 Apply를 클릭한다. (data로 작성했다!) 

Review the SQL Script to be Applied in the Database 창이 나오면 스키마 이름을 확인하고 Apply를 클릭한다.

 

 

 

왼쪽 SCHEMAS 창에 스키마가 새로 잘 만들어졌는지 확인하고 Finish 버튼을 클릭한다.

 

 

  • Data Importing

새로 만든 스키마에 데이터를 넣기 위해서 data 스키마를 우클릭한 후 Table Data Import Wizard를 클릭한다.

 

 

 

창이 뜨면 파일이 저장되어 있는 경로를 찾고, NEXT를 누른다. 다음으로 새롭게 만든 스키마와 데이터 파일명을 확인하고 NEXT를 누른다. 기존에 있던 테이블을 사용하고 싶으면 위의 칸(Use existing table)을 선택하고, 테이블 명을 변경하고 싶으면 아래칸에서 수정한다.

 

 

다음 단계로 넘어가면 많은 경우 아래와 같은 오류가 발생한다. 

 Table Data Import 
Can't analyze file. Please try to change encoding type. If that doesn't help, maybe the file is not: csv, or the file is empty.

 

 

인코딩할 때 형식이 맞지 않아 발생하는 오류로 아래와 같이 해결한다.

 

1) EXCEL - 다른 이름으로 저장 - 도구 - 웹 옵션 - 인코딩유니코드(UTF-8)으로 변경하여 저장한다.

 

EXCEL에서 문제해결

 

 

2) CSV 파일에 데이터를 전체 복사해서 메모장에 옮겨 붙이고,  저장할 때 아래 인코딩UTF-8로 선택하여 저장한다. 

 

 

메모장에서 문제해결

 

문제를 해결하고 나면, 아래와 같이 column들의 데이터 형식과 불러올 데이터 셋의 모습이 보인다. 데이터 형식이 나중에 실습하면서 바꿔 줄 예정이므로 일단은 불러온 상태 그대로 진행한다. NEXT를 누르면, 아래와 같은 창이 뜬다.

 

 

마찬가지로  NEXT를 눌러 실행한다.

 

 

두 칸에 체크 표시가 뜨면 완료된 것이므로 NEXT를 눌러 넘어간다. Import data file이 수행되는데 오래 걸린다면, Show Logs를 클릭하여 진행되는 상황을 확인한다. 

 

 

아래와 같이 52 records imported로 데이터 건수와 일치하는 숫자가 리코딩되면 잘 완료된 것이다! Finsh 버튼을 클릭하여 Importing을 마친다.

 

 

불러온 데이터를 확인하기 위해, 스키마 옆에 노란색으로 표시한 버튼을 눌러 새로고침 한다. (새로 고침을 하지 않으면 데이터가 보이지 않는다.) 새로 고침 후에 오른쪽과 같이 Tables 아래 데이터(kakao)가 잘 생성된 것을 확인할 수 있다.

 

왼쪽: 새로 고침 전 / 오른쪽: 새로 고침 후

 

표를 열어서 보고 싶으면 kakao에 마우스를 대고(클릭하지 말기), 오른쪽에 뜨는 3가지 아이콘 중에 제일 오른쪽 표 모양의 아이콘을 클릭한다. 

 

 

 

아래와 같이 자동으로 쿼리가 작성되면서 Import 한 데이터를 볼 수 있다.

 

 

  • 고윳값(Primary Key) 설정

데이터에서 중복 되지 않고, 식별 가능한 정보를 만들기 위해, 결측값(NULL)이 없고 중복된 값이 없는 열(Column)을 선택한다. 

 

kakao 데이터에서는 name 열을 고윳값으로 지정한다.

변수를 설정하기 위해서는 kakao Table에 마우스를 대면 두번째로 나오는 스패너 모양을 선택한다. 고윳값을 지정하고 싶은 열의 PK를 선택하면 자동으로 NN(Not Null)도 선택되면서 지정된다.

고윳값 설정 중 발생할 수 있는 오류

ERROR CODE 1170: BLOB/TEXT column '변수명' used in key specification without a key length SQL Statement
-> 고윳값에 맞지 않는 형식의 변수로, 다른 값을 설정하거나 양식을 변경해 준다.

 

 

  • 변수 타입 변경

모든 변수가 TEXT로 설정되어 있는 상태 그대로 불러 왔기 때문에 각각 변수 타입에 맞게 설정해 준다. 고윳값을 설정하는 페이지와 동일한 화면에서 변경하고 싶은 열의 Datatype을 클릭한다.

 

 

다양한 타입을 설정할 수 있는데, kakao 데이터의 각 변수 타입에 맞게 Datatype을 설정했다.

 

Datatype 설정 중 발생할 수 있는 오류

1. ERROR 1265 : Data truncated for column ‘변수명’ at row 1
-> 데이터 타입 형식이 맞지 않는 변수로 타입에 맞게 변경

2. ERROR 1292: Incorrect date value
-> DATE 타입을 지정할 때 yyyy-mm-dd 형태여야 한다.

 

 

데이터 준비가 끝났으면 APPLY를 클릭하여 적용시킨다.

728x90

댓글