2017-04-27 1 views
0

질문 : 기본 스키마와 크게 다른 파일을 계속 처리하고 tSchemaComplianceCheck 오류를 트리거하는 방법은 무엇입니까? 가정하자Talend에서 스키마를 변경하여 파일 입력을 처리하는 방법

배경

나는 file1,file2,....file1000라는 고객 XLS 파일이있는 폴더가 있습니다. 나는 Talend 저장소로 파일 스키마를 수입하고 6Columns라고하고 나는 talend 작업이

  • 가를 비교 각 파일을 엑셀 읽기 각 파일을 반복하고 그들에게

    1-tFileInput ->2-tSchemaCompliance-6Columns -> 3-tMap ->4-FurtherProcessing 
    
    1. 을 처리하기 위해 구성되어 있다고 가정 스키마 6Columns
    2. 포맷 출력 (열 이름을 변경)
    3. 은 고객 데이터의 수집 및 처리 그것을 더
    를 타고3210

    처리하는 동안 스키마 준수가 다른 스키마 13Columns이있는 여러 파일 (200)을 가리키는 오류 (errorCode 16)를 생성하지만 미리 파일을 식별하여 (권장 취급의 방법이 뭐죠) 및 넣다 다른 스키마 변경을 디자인하는 나는 과정에 제대로 13Columns 스키마 파일을 통합하는 내 처리를 수정하려면 어떻게

    가 발생 subjob

    1-tFileInput ->2-tSchemaCompliance-6Columns -> 3-tMap ->4-FurtherProcessing 
            | 
            |Reject Flow (ErrorCode 16) 
    
            |Schema-13Columns 
            | 
            |-> ?? 
    

    현재 생각하면 ErrorCode 16을 Detec ted

    옵션 1 병렬. 현재 파일의 파일 경로를 가져 와서 13Columns에 대해 처리합니다. 새 파일 인풋을 사용하여 2 개의 플로우를 병합하기 전에 1

    옵션 2 연속. 준수 파일을 완료 한 후에 오류를 발생시킨 파일 목록을 수집하고 처리하십시오.

  • 답변

    3

    아래처럼 뭔가를 시도 할 수 :

    enter image description here

    tFileList - 귀하의 의견 저장소 tFileInput "schema6"읽기 - tSchemaComplianceCheck : 6 - 열 스키마로 파일을 읽을 tMap_1 : 추가 처리

    있음

    TMAP 후 링크를 ​​거절 : 다음은 일부 거부 거부 된 파일 경로를 포함하는 새로운 항목을 추가 enter image description here

    tFlowToIterate : 따르는 대하여 반복 링크 tFileInputDelimited 허용 입력을 얻기 위해 사용된다. tFileInput : 13- 열 스키마로 데이터를 읽습니다. 다음 구성 요소는 파트 1과 동일합니다.

    그런 다음 다른 하위 작업에서 더 읽을 수 있도록 tHashOutput에 데이터를 푸시 할 수 있습니다.

    +0

    폭포/계단식 스타일 방법의 단점이 있습니까? 예 : 다른 스키마를 추가해야하는 경우 (14Columns) 또는 이와 같은 상황을 처리하는 데 권장되는 방법 – mobcdi

    +0

    다른 스키마를 추가해야하는 경우 2d tSchemaComplianceCheck에서 거부 링크를 가져와 일부 스키마를 추가해야합니다 새로운 스키마를 처리하기 위해 더 많은 구성 요소가 필요합니다. Talend는 스키마 기반이므로 먼저 스키마를 모른 채로 구성 요소를 사용하여 작업 할 수 있다고 생각하지 않습니다. – Corentin

    +0

    감사합니다. 소수를 넘어서서 테스트 할 스키마의 수가 증가하면 잘 확장되지 않을까 걱정됩니다. – mobcdi

    관련 문제