2017년 3월 29일 수요일

[TALEND] 데이터 정렬(Sort)하기

Talend 대용량 데이터 정렬(Sorting)

Studio에서 제공하는 Sorting 기능은 크게 tSortRow와 tExternalSortRow 두개로 나눠져 있습니다. 이는 정렬작업을 Job의 리소스를 이용 하느냐? 외부(외부 프로그램)에서 정렬 작업을 하는냐에 따라 다르게 사용됩니다. 만약 데이터 사이즈가 작은 경우는 일반적인 tSortRow를 이용하면 되지만, 대량 데이터(job이 사용가능한 메모리를 초과하는 사이즈)의 경우는 데이터를 조회하는 과정에서 “java.lang.OutOfMemory” 오류를 만날 확률이 높습니다. 
그럼 tSortRowtExternalSortRow에 대해서 자세히 알아보겠습니다.
  1. tSortRow

    tSortRow는 정렬을 위한 기본 Component이며, 정렬작업을 Job의 메모리 또는 파일(선택 옵션)에서 수행 가능합니다. 다만, 여기서 말한 정렬작업은 정렬이 필요한 데이터를 모두 Job의 메모리에 로딩 후에 이루어집니다. 만약 로딩해야할 데이터(정렬할 데이터) 사이즈가 Job의 메모리보다 크다면 로딩 과정(정렬과정 아님)에서 “java.lang.OutOfMemoryError”가 발생합니다. 따라서 Job의 메모리가 사용가능한 정도로 데이터를 조회해야합니다. (필요하다면 메모리 사이즈 증가 *이전 글 참고)
    [정렬작업을 파일에서 수행하는 방법]
    1) tSortRow 의 Advanced settings에서 Sort on disk 체크
    2) Temp data directory path에 정렬 작업에 쓰일 파일의 디렉토리 경로(파일은 자동으로 생성됨)
    3) 기타 옵션 설정(디렉토리 생성유무 및 버퍼사이즈)
    [주의!] 정렬작업을 파일에서 수행하는 것은 이미 Job의 메모리에 정렬할 데이터가 전체 로드된 후에 파일에서 정렬을 수행합니다.
    정렬할 데이터 로드작업 부터 파일에 쓰기 위해서는 아래 tExternalSortRow를 사용하셔야 합니다.

  2. tExternalSortRow

    tExternalSortRow는 tSortRow의 로딩단계에서 발생하는 “java.lang.OutOfMemoryError”를 물리 칠 수 있는 Componenet입니다. 구동 방식은 조회 된 데이터를 Job의 메모리가 아닌 “①별도의 파일”(Component에서 temp파일을 저장할 디렉토리 지정)로 저장하고, 저장된 파일을 “②별도 외부 정렬 프로그램”을 사용하여 정렬을 수행합니다. 그리고 외부 정렬 프로그램에서 “③정렬된 결과 파일(외부 정렬 프로그램에서 생성한)”을 다시 읽어 다음 Component에 데이터를 넘겨줍니니다.


    [참고1] 해당 Componet의 상세 설명 및 외부 Sorting 프로그램에 대한 자세한 언급은 Talend에서 제공하지 않고 있지 않아서 위 내용정도만 확인되었습니다.
    [참고2] tExternalSortOutput도 동일한 방식으로 구동됩니다.

2017년 3월 16일 목요일

[TALEND] Componet의 Default Encoding Type 변경 방법

Default Encofing Type 변경 방법

  1. Talend Open Studio가 설치된 폴더에서 아래의 경로로 이동
    {Talend Open Studio 설치 폴더}\plugins
    \org.talend.designer.components.localprovider_6.3.0.20161026_1219\components
    \tFileOutputDelimited
  2. tFileOutputDelimited_java.xml 파일을 메모장(Notepad)으로 열기
  3. 찾기 기능(Ctrl+F)을 이용하ISO-8859-15 검색
  4. ISO-8859-15UTF-8로 변경

  5. Talend Open Studio를 재실행 또는 실행된 화면에서 Ctrl+Shift+F3 눌러서 Component Reload 실시
  6. Job에 tFileOutputDelimited Component를 가져와 Default 값으로 UTF-8인지 확인

<기타 Component 변경 방법>

tFileOutputDelimited외 Component도 아래 경로에서 변경을 원하는 Component명의 폴더를 찾아, 위 방법으로 XML파일을 수정하면 됩니다.
  • 기본 경로 : {Talend Open Studio 설치 폴더nm}\plugins \org.talend.designer.components.localprovider_6.3.0.20161026_1219 \components\

2017년 3월 3일 금요일

[TALEND] Shared DB Connection 사용 방법

<설정 방법>

  1. Parent Job에서 ①DB Connection Component 추가 후 ②DB 접속 정보 설정
    Use or register a shared DB Connection 옵션에 DB Connection 명 입력
       * DB Connection 명은 임의의 고유한(Unique) 값을 지정해주시면 됩니다.


  2. tRunjob 에서 Child job 선택

  3. Child Job에도 ①DB Connection Component 추가 후 Use or register a shared DB Connection 옵션에 Parent Job에서 지정한 DB Connection 명 입력
    Child Job의 DB 접속 정보는 입력 불필요


  4. Parent Job을 수행 후 Child Job 정상 실행 확인

[TALEND] Schema 한글 컬럼 사용하기

<설정방법>

  1. [Window] -> [Preferences] 목록에서 [Talend] -> [Specific Setting]
    Allow specific chracters (UTF-8,..) for columns of schemas 체크



  2. Schema에 한글 컬럼 생성 후 실행




<활용 예>

  1. 한글(또는 일본어)컬럼을 사용하는 DB 이행 시, 설정 후 사용
  2. 한글(또는 일본어)컬럼을 사용하는 파일(엑셀) 등을 처리할 때 사용

[TALEND] TALEND의 쿼리 질의기 사용 방법

Talend 기본 SQL Builder 사용하기 본 내용은 간단한 TIP이지만, 많은 사람들이 모르는 것 같아 포스팅합니다. TOS에서 흔히 INPUT 컴퍼넌트에서 사용한 쿼리를 별로의 쿼리 툴에서 조회해야하는 경우가 발생합니다. 이럴때 TOS...