Data Fusion : 한 파이프 라인에서 다른 파이프 라인으로 런타임 인수 전달

Aug 20 2020

business_date : $ {logicalStartTime (yyyy-MM-dd)} 인 네임 스페이스에 런타임 인수가 설정되어 있습니다. 내 파이프 라인에서이 인수를 사용하고 있으며 다른 파이프 라인에서도 동일하게 사용하고 싶습니다. 여러 파이프 라인이 연속적으로 있으며 첫 번째 파이프 라인에서 계산 된 파이프 라인 전체에서 값이 동일하기를 원합니다. 값이 '2020-08-20 20:14:11'으로 계산되고 파이프 라인 하나가 성공하면이 인수를 파이프 라인 2에 전달한다고 가정합니다. 그러나이 인수는 네임 스페이스 수준에서 정의되므로 파이프 라인 2가 시작될 때 재정의됩니다.

이 값이 다시 계산되지 않도록하려면 어떻게해야합니까?

답변

1 Juls Aug 21 2020 at 18:53

앞서 언급했듯이 한 파이프 라인을 설정하여 다른 파이프 라인을 트리거 할 수 있습니다. 첫 번째 파이프 라인에서 런타임 변수를 설정할 수 있으며이 변수는 트리거 된 파이프 라인에서 설정됩니다. 다음 단계에 따라 인바운드 트리거를 만들 수 있습니다.

  1. 파이프 라인을 생성했으면 실행할 마지막 파이프 라인을 선택합니다. 제 경우에는 DataFusionQuickstart2 파이프 라인이 있습니다.

  1. 파이프 라인 애플리케이션의 왼쪽에서 "Inbound triggers"-> "Set pipeline triggers"를 클릭하면 트리거 할 수있는 파이프가 표시됩니다. 트리거 할 이벤트 확인 DataFusionQuickstart2의 에서 파이프 라인 DataFusionQuickstart을 하고 그것을 가능하게합니다.

  1. 이전 파이프 라인 DataFusionQuickstar살펴보면 아웃 바운드 트리거 옵션 (오른쪽)에 DataFusionQuickstar 에 의해 트리거 될 파이프 라인이 표시됩니다 .

  1. 마지막으로 런타임 인수를 설정하십시오.

추가 정보

이 게시물 에서는 파이프 라인의 런타임 인수를 설정할 수있는 세 가지 방법이 있다고 언급했습니다.

  1. Argument Setter 플러그인 (파일의 해당 값을 첫 번째 파이프 라인에 기록 할 수 있습니다. 모든 후속 파이프 라인에서 해당 파일을 읽는 매개 변수를 생성합니다.)
  2. 파이프 라인을 시작할 때 런타임 인수 전달 (위에서 설명한 것)
  3. 기본 설정 지정 (CDAP 인스턴스, 네임 스페이스, 응용 프로그램 및 프로그램 수준을 포함하여 시스템의 다양한 수준에서 구성 정보를 저장하는 기능을 제공합니다.)
adiideas Sep 02 2020 at 11:17

첫 번째 파이프 라인의 파일에 해당 값을 기록 할 수 있습니다. 모든 후속 파이프 라인에서 해당 파일을 읽는 매개 변수를 생성합니다. 그렇게하면 목표를 달성해야합니다.

adiideas Oct 29 2020 at 07:16

@Sudhir, 선호 사항을 탐색 할 수 있습니다. https://cdap.atlassian.net/wiki/spaces/DOCS/pages/477561058/Preferences+HTTP+RESTful+API

네임 스페이스 수준에서 변수를 설정했으며 찾은 결과에 따라 사용할 때마다 평가됩니다.

응용 프로그램 수준에서 설정해 볼 수 있습니까? 다음 파이프 라인으로 전달합니다. 나는 그 경우 특정 애플리케이션 (파이프 라인)에서 한 번만 평가되어야하며 그 후에는 가치가 전달 될 것이라고 믿습니다.

프로그램 수준에서도 기본 설정을 사용할 수 있습니다.