2017-11-17 9 views
0

나는 펜타 호를 처음 사용합니다. 나는 하나의 문제에 붙어있다.단일 스푼 변환에서 변수를 기반으로 출력을 생성하는 방법은 무엇입니까?

스푼 변환이 있습니다. 데이터가있는 입력 파일이 있습니다. 입력 파일에 따라 출력 파일을 생성해야합니다. 내 문제는 입력 파일을 기반으로 다른 파일 이름으로 출력 파일을 생성하는 방법입니다.

예 : 필드 국가 (예 : 미국)가있는 입력 파일이 있습니다. 제가 한 것은 내가 변수

$ {COUNTRY_NAME}

에 국가 필드를 매핑이다 그 내용은 최종 즉 USA.xls 에서이 나라와 출력 XLS 파일을 생성해야 그래서 출력 파일 이름을 생성하는 동안이 변수를 사용할 수 있습니다. 그러나 예상대로 작동하지 않습니다.

입력 파일을 기반으로이 변환을 여러 번 실행해야합니다. 각 입력 파일에는 국가 이름이 다른 국가 필드가 있습니다. 그래서 저는 각국에 해당하는 Excel을 생성해야합니다.

예 : 처음으로 나는 USA와 파일을 사용했습니다. 현재 $ {COUNTRY_NAME}은 미국입니다. 생성 된 출력 파일의 이름은 USA.xls로 끝납니다. 여태까지는 그런대로 잘됐다. 그러나 AUS에서 두 번째 변환을 실행하면 $ {COUNTRY_NAME}이 (가) 여전히 미국입니다. 생성 된 출력 파일의 이름은 AUS.xls가 아닌 USA.xls로 끝납니다.

변환이 하나뿐입니다. 제발 입력 파일을 기반으로 다른 이름 xls 파일을 생성하는 데 도움이됩니다.

미리 감사드립니다.

답변

0

단일 변환으로는이 작업을 수행 할 수 없습니다. 그 이유는 변환에서 모든 단계가 병렬로 실행되므로 출력 파일에 쓰는 경우 US와 AUS의 데이터는 여전히 처리 파이프 라인에서 혼합되어 있기 때문입니다.

시간과 관련된 작업이 필요할 경우 job을 사용하십시오. 기본적으로 변환은 그대로이며, ${country}을 기반으로 데이터를 필터링하고 filename${country}.xls이라는 파일에 넣습니다 (가능한 경우 문자열이 연결됩니다).

변수 ${country}은 데이터를 읽는 다른 변환에서 정의되고 Unique row은 국가 별, Set Variables은 유지합니다.

그런 다음 두 번째 transfo (정의 ${country})를 읽고 두 번째 체인 (생성 filename${country}.xls)을 읽습니다.

PDC와 함께 제공되는 sample 폴더는 spoon.bat/spoon.sh와 같은 디렉토리에 있습니다. sample/job/run_all/Run all sample transformations.kjb은 달성하려는 것과 거의 같습니다.

제가 알기에 첫 번째 반응은 단순한 작업으로 인해 발단이 끊어지는 것입니다. 그러나 추론에 익숙해지면 병렬 처리를 너무 단순하게 제어 할 수 있다는 모든 이점을 발견하게됩니다.