1

변환의 모든 단계가 병렬로 실행되며 이제는 Pentaho에서이 동작을 변경할 수있는 방법이 없습니다.PDI/주전자 : 파일 생성 또는 매핑 (하위 변형) 실행을 피하십시오

주어진 경우 특정 필드 (파일 이름에서 읽음)를 확인하고 해당 파일을 처리 할 작업 (매핑 - 하위 변환)을 결정하는 전환 작업이있는 시나리오가 있습니다. 이것은 각각의 매핑 작업 전후, 이메일을 보내는, DB 레코드를 업데이트하는 일부 상용구 작업을 수행, 일반적인 로직 등의 일부입니다

switch task 문제는 우리가 더 "ACCC014"파일이가없는 경우 변환을 실행할 수 없습니다. 모든 작업이 병렬로 실행되므로 두 번째 문제가 발생할 수 있으므로 이해할 수 없습니다. 일부 매핑 내에서 XML 파일이 만들어집니다. 그리고 Pentaho가이 작업을 빈 데이터로 실행하는 경우에도 XML 출력 파일 생성을 피할 수있는 방법을 찾을 수 없습니다.

우리는이 스위치 로직을 이론적으로 연속적으로 움직이는 것으로 생각했지만 이러한 종류의 구별을 수행하는 조건부 단계는 발견되지 않았습니다.

우리는 또한 메타 데이터 삽입 작업을 살펴 ​​보았지만 그 방법이 적절하지 않다고 생각합니다. 각 하위 변환은 실제로 다른 작업을 수행합니다. 그들 중 일부는 일부 테이블을 업데이트하고 다른 테이블은 파일을 쓰고 다른 테이블은 다른 데이터베이스간에 데이터를 이동합니다. 모두 입력으로 파일을 받고 send_email 플래그와 메시지 문자열을 반환합니다. 다른 건 없어.

우리가 원하는 것을 할 수있는 방법이 있습니까? 또는 기본 입력/출력을 기반으로 한 로직의 일부를 재사용 할 수있는 방법이 없습니까?

편집 : ACCC014 변환을 추가하십시오. 예, "시작시 파일 생성 안 함"옵션이 선택되어 있습니다.

enter image description here

+2

XML 출력 단계에서이 xml 파일을 생성합니까? 5.2에서 XML 출력 단계에는 파일 탭의 "시작시 파일 생성 안 함"옵션이있었습니다. 확인해 봤어? – user4637357

+0

파일이 없으면 왜 ACCC014 변환을 실행해야합니까? 그것이 당신이 원하는 부작용이 있다면, 그들을 다른 변형으로 분해하십시오. –

+0

@ user4637357 예, XML 파일은 ACCC014 변환에 의해 예를 들어 생성됩니다. "시작시 파일 생성 안함"을 선택했으나 전환 작업에 의해 전송 된 레코드가 없더라도 변환은 어쨌든 실행됩니다. – jfneis

답변

3

조건부로 변환을 실행하기 위해 단계 Transformation Executor (http://wiki.pentaho.com/display/EAI/Transformation+Executor)를 사용할 수있다. 비록이 단계를 실제로 사용하지는 않았지만 안정성이나 성능에 관해서는 아무 말도 할 수 없습니다.

홈페이지 변환 : 인젝터 단계에 관한
Main transformation set-up example : 5.2 버전에서, 나는 비록 서브 변환에서 만든 필드를 얻을 수 없습니다 이런

셋업 부모 변환 그들은 "결과 행"탭에서 정의되었으므로 인젝터 단계에서이 모든 필드를 대신 정의해야했습니다. 현재 버전에서 여전히 필요한 경우 확실하지 않습니다. 변환 실행 프로그램에 대한

가능한 조정 : 모든 행을 보낼 번 대신을 다시 실행 하기 위해 0으로 설정 : 아마

  1. , 당신은 Row grouping 탭에서 The number of rows to send to the transformation 값을 변경할 것 N 행마다 에 대한 변환.

  2. 당신이 당신의 하위 변환의 출력을 읽고 싶다면, 가 다음 단계로 도약 작성하는 동안 옵션 "이 출력은 실행 후 결과 행을 포함합니다"를 선택 : Selecting output type

하위 변환 :

당신은 아마 여기가 필요합니다 유일한 변화는 Get rows from result 및하여 매핑 입력과 출력을 대체하는 것입니다:

5.2의 알려진 문제점 : 작업 실행자가 "행을 결과로 복사"단계가 아니라 가장 최근에 작성된 단계에서 하위 변환 결과를 읽는 것 같습니다. 따라서 하위 변형에 몇 가지 단계를 추가 한 경우 결과를 읽을 것으로 예상되는 단계를 다시 작성하십시오. "결과 행 복사"를 선택하고 잘라내어 다시 붙여 넣은 다음 다시 작성하십시오. 홉을 만듭니다.

+0

확인 만하면됩니다. 매핑은 이전 단계에서 행을받지 못했지만 변환 실행 프로그램이 병렬로 실행되지 않습니까? – jfneis

+0

내 테스트에 따르면 입력 행이없는 경우 변환을 실행하지 않습니다. – user4637357

+0

Tks 남자, 나는 곧 다시 당신에게 도착하려고 노력할 것이다! – jfneis