프로젝트를 위해 대량의 데이터를 Open API로부터 입력받아야 했는데, 우리가 이용할 Open API는 json 형태로 response 해주는 것이 아니라 html이나 xml 형태로만 출력이 가능한 것을 확인했다.
따라서 xml이나 html 형식을 가공하여 MySQL 테이블에 입력해야 했는데, 이를 간단히 할 수 있는 기능을 MySQL에서 지원해주고 있었기에 이를 정리해두고자 한다.
관련 공식문서 url : https://dev.mysql.com/doc/refman/8.0/en/load-xml.html
하는 방법은 의외로 간단하다.
우선 나의 DB 테이블에 입력할 재료가 되는 xml 파일을 저장해두고, 그 파일의 위치는 잘 알아둔다.
MySQL에 접속하여 내 DB에 접근한 뒤, 내가 데이터를 넣을 테이블을 새로 생성한다. 예를 들면 나는 판례를 넣을 테이블이 필요했기에 'preclist'라는 테이블을 생성했다.
새로 생성한 테이블 안에, xml 데이터의 태그명을 테이블의 필드명으로 해서 테이블을 생성한다.
아래와 같이 SQL문을 작성한다.
LOAD XML LOCAL INFILE '(C:\\~ ... 파일위치 경로)\\precList.xml'
INTO TABLE preclist
ROWS IDENTIFIED BY '<prec>'
precList.xml
: 내가 입력할 데이터가 담긴 xml 파일preclist
: 내가 데이터를 넣을 테이블명. 필요시 앞에 데이터베이스명.
을 붙여준다 (ex: mydb.preclist
).<prec>
: xml 데이터에서 추출해낼 태그명💡 참고
계속 Error Code : 2 오류가 나 오류를 찾기 위해 고생했는데, xml 파일명이 한글로 되어있었기에 발생한 오류인 듯 하다. 파일명을 영어로 바꾸니 쉽게 해결되었다.
결과물이 잘 들어간 것을 확인할 수 있다.