기본적인 이해가 동반되어야 하는 것이지만, 내가 기억하기 위해 글을 남긴다.
DB를 주로 쓰고 SQL문을 잘 쓴다면야 뭐 필요도 없는 기능일 수도 있지만,
뭔가 데이터를 DB에 넣을 때 엑셀로 정리해 놓은 것을 그냥 밀어야 할 경우도 있다.
이때 편리한 기능이 csv 파일을 그대로 mysql에 집어넣는 것인데,
phpMyAdmin에서 이 기능을 지원한다.
0. 먼저 DB에 사용할 Table을 형식에 맞게 형성해 주어야 한다.
주의점은 없지만, 통상적인 개념으로는 첫 행에 값의 레이블을 주고 둘째 행부터 값을 넣는 것이 일반적이다. 이를 열로 처리했을 때는 어떻게 되는지 실험해보질 않았다.
1. 해당 테이블을 선택하고 import 탭으로 오면, 기본 화면은 그림과 같다.
여기에 세팅해 주어야 할 부분을 짚어보자.
1-1. 파일 올리기 : SQL 텍스트파일의 위치 - 찾아보기... 버튼을 이용해서 집어넣는다.
1-2. 파일 문자셋 : 한글 코딩인 euckr을 선택
1-3. 레이블(Label) 건너뛰기 : 만일 엑셀에서 데이터 레이블을 이용했다면 (값이 바로 나오는 게 아니라 첫 행이 값의 레이블이라면) Number of records(queries) to skip from start 값을 1로 해서 건너뛰게 해준다.
1-4. 필드 구분자 : 물론 csv를 선택해야 하는데, 이때 사용하는 필드 구분자는 , (쉼표)이다. csv 파일 자체가 쉼표로 구분되는 형식문서인데, 왜 phpMyAdmin에서는 csv import의 기본 필드 구분자를 ; (세미콜론)으로 해 놓았는지 아직은 모르겠다.
2. 위 과정을 잘 거치고 "실행" 버튼을 누르면, 해당 테이블에 자료가 잘 들어갔다는 메시지와 함께 값을 볼 수 있다.
#### 2016-08-05 추가
한번 메모리 한계까지 작업하고 나서 파일란이 지워지면서 import가 다시 뜬다.
읽어보면 같은 파일을 다시 지정해주면 import 완료지점 다음부터 다시 작업한다고 한다.
아마도 .txt가 아니라 .tsv (Oracle text import 형식) 이기 때문일까?
그럼에도 큰 .txt나 .tsv의 경우에는 여전히 command line을 사용하는 것이 빠르고 안정적인 듯하다.
직접 해보니 파일 크기에 비하여 너무 자주 서버리고 라인수가 맞지도 않는 듯.
No comments:
Post a Comment