Node Import 모듈을 이용한 컨텐츠의 대량 입수 (csv, tsv 등으로 배치 입력)

Node Import 모듈을 이용한 컨텐츠의 대량 입수 (csv, tsv 등으로 배치 입력)

드루팔의 CCK를 이용한 컨텐츠 타입(예:CCCC) 생성후,
대량의 외부 데이타를 CCCC 컨텐츠 타입으로 드루팔로 입수코자 할 때,
Node Import 모듈( http://drupal.org/project/node_import )을 이용하면 상당히 편하다.
참고로 이 모듈은 Date API (Date 모듈)과 Advanced Help 모듈도 필요로 한다. 설치/활성화하자.

이 모듈은 CSV나 TSV 형태의 파일을 드루팔의 컨텐츠로 Import 할 때,
상당히 정교한 옵션 및 필드 조정 능력으로 원하는 배치 입력을 가능케 한다.

Node Import 모듈을 이용한 컨텐츠의 대량 입수 (csv, tsv 등으로 배치 입력): Node Import 모듈을 이용한 컨텐츠의 대량 입수 (csv, tsv 등으로 배치 입력)

Node Import 모듈을 이용한 컨텐츠의 대량 입수 (csv, tsv 등으로 배치 입력): Node Import 모듈을 이용한 컨텐츠의 대량 입수 (csv, tsv 등으로 배치 입력)

한 번 써 보면, 8단계에 이르는 Wizard 모드가 좀 길지 않나 여길 정도로
상세한 옵션 처리와 강력한 필드 매핑 능력을 가지고 있다.

다만, 종종 아시아권 PC에서 이를 사용할 때 겪는 문자열 Delimiter (구분자, 区切り) 문제를
해결하는 팁을 알리고자 기록을 남긴다.

1. 우선 TSV(탭 구분자 파일) 형태로 원하는 데이터를 엑셀이나 DB에서 Export한다.
    이때 보통 한국어(EUC-KR)나 일본어(Shift_JIS)로 저장되기 마련이다.

2. 드루팔은 UTF-8로 움직이므로, 위 1번 과정의 Export TSV 파일을 일반 편집기로
    열어서 변환해야 한다. 이때 어떠한 사전 작업을 하지 않으면 Delimiter가 어긋나 버린다.
    그 사전 작업이란, 기존 구분자인 Tab(\t)를 특수한 문자열로 치환하는 것이다.
    그 이유는 문자코드 변경시(기존 문자코드⇒UTF-8로 변환), 일반적인 필드 데이터값에서
    기존 구분자인 Tab이 발생하는 경우가 있기 때문이다. 이러면 필드 열이 어긋나 버린다.
    이를 막는 방법으로 (예를 들어 EditPlus라는 편집기를 이용하면,)

    파일을 연 다음, 문자열 치환에서, \t 를 ;:,. 로  일괄 치환하면 된다.

3. 그 후에 파일을 저장할 때, 반드시 UTF-8 형태로 저장한다.
    이미 Tab 대신에 ;:,. 로 구분자를 이용하므로 열이 어긋날 문제는 사라진다.

4. 이후에 Node Import 기능을 이용해서 해당 파일을 업로드, 필드 매핑, 컨텐츠 입수하면 된다.