SSISO Community

시소당

CSV파일을 external 테이블로 테이블화 해보자.Oracle-ETL

CSV 파일을 DB에 간단하게! 빠르게! 올려보자

  • 프롤로그
    - 요청이 CSV파일로 들어오면 늘 별일 아닌데도 좀 피곤하다.
    - 파일을 ftp로 올리는 것도 귀찮지만, shell을 수정하여 로딩하는 것도 귀찮은 일이다 -_-
  • 해서~ 내가왔잖아~ External Table
    - 실제로 업무적용할 일이 없고 신텍스를 보기 귀찮아 사용해보지 않은 External 테이블이 있어,
    - External 테이블을 이용해 CSV 파일을 올려봤더니 무지 편하더라는 것.
    - 그럼 지금부터 활용예를 함께 살펴보도록 하자.
  • 먼저 CSV파일을 아무곳에나 (-_-;) 서버로 올린다.
    - 예제에서는 CDWBBS서버의 /backup03/impdata 에 올려보았다.
    - 먼저 디렉토리를 이위치로 생성해준다.(이 cmd는 grant create any directory 권한이 있는 유저에게만 가능하다)

    CREATE OR REPLACE DIRECTORY load_dir AS '/backup03/impdata' 
    ; 
    

    - 이제 external table을 만들어보자.

    CREATE TABLE ex_article 
    ( 
     blogid varchar2(5),  
     ... 
    )  
    ORGANIZATION EXTERNAL 
    ( 
         TYPE oracle_loader 
         DEFAULT DIRECTORY load_dir 
         ACCESS PARAMETERS  
         ( 
               RECORDS DELIMITED BY NEWLINE 
               badfile load_dir:'ex_article.bad' 
               logfile load_dir:'ex_article.log' 
               FIELDS TERMINATED BY '\t' 
               MISSING FIELD VALUES ARE NULL 
               (  
              blogid,  
              ... 
               ) 
         ) 
    LOCATION ('ex_article.csv') 
    ) REJECT LIMIT UNLIMITED; 
    

    - 끝났다 -_- select 해보자. 너무 잘된다.

출처 : http://niflheim.tistory.com/category/Oracle-ETL

993 view

4.0 stars