Wait 프로세서

Wait 프로세서

Openflow의 Wait 프로세서는 대응하는 Notify 프로세서로부터 릴리스 신호를 받을 때까지 FlowFile을 보류하는 데 사용합니다. 이 문서에서 프로세서의 번들, 설명, 속성, 관계 등을 확인할 수 있습니다.

출처: Snowflake 문서

본문

번들 (Bundle)

org.apache.nifi | nifi-standard-nar

설명 (Description)

해당하는 대응 Notify 프로세서로부터 일치하는 릴리스 신호가 분산 캐시에 저장될 때까지 들어오는 FlowFile을 wait 관계로 라우팅합니다. 일치하는 릴리스 신호가 식별되면 대기 중인 FlowFile이 success 관계로 라우팅됩니다. 그러면 릴리스 신호 항목이 캐시에서 제거됩니다. 해당 Notify 프로세서의 Attribute Cache Regex 속성이 올바르게 설정되어 있으면 릴리스 신호를 생성한 FlowFile의 속성이 대기 중인 FlowFile에 복사됩니다. Release Signal Identifier로 식별되는 캐시에 여러 릴리스 신호가 있고 Notify 프로세서가 FlowFile 속성을 캐시에 복사하도록 구성된 경우, Wait 프로세서를 통과하는 FlowFile은 캐시에서 릴리스 신호를 생성한 FlowFile들의 속성 합집합(Release Signal Identifier로 식별)을 받습니다. 대기 중인 FlowFile이 Expiration Duration을 초과하면 expired로 라우팅됩니다. 둘 이상의 신호를 기다려야 한다면 Target Signal Count 속성으로 원하는 신호 수를 지정하세요. 이는 SplitText처럼 소스 FlowFile을 여러 조각으로 분할하는 프로세서에서 특히 유용합니다. 모든 조각이 처리되기를 기다리려면 original 관계를 Wait 프로세서에 연결하고 splits 관계를 해당 Notify 프로세서에 연결하세요. Notify와 Wait 프로세서가 Release Signal Identifier 값으로 ${fragment.identifier}를 사용하고 Wait 프로세서에서 Target Signal Count 값으로 ${fragment.count}를 지정하도록 구성하세요. wait 관계를 루프로 사용할 때는 우선 순위 지정자(예: First In First Out)를 사용하는 것이 좋습니다.

태그 (Tags)

cache, distributed, hold, map, release, signal, wait

입력 요구사항 (Input Requirement)

REQUIRED

민감한 동적 속성 지원 (Supports Sensitive Dynamic Properties)

false

속성 (Properties)

속성 (Property) 설명 (Description)
attribute-copy-mode Notify 프로세서로 들어오는 FlowFile에서 복사된 속성을 처리하는 방법을 지정합니다.
distributed-cache-service 대응하는 Notify 프로세서의 릴리스 신호를 확인하는 데 사용되는 Controller Service입니다.
expiration-duration 대기 중인 FlowFile이 expired 관계로 라우팅된 후의 기간을 나타냅니다.
releasable-flowfile-count FlowFile에 대해 평가되어 릴리스 가능한 FlowFile 수를 결정하는 값 또는 Attribute Expression Language 문의 결과입니다. 이것은 대상 수(target signal count)에 도달했을 때 몇 개의 FlowFile을 릴리스할 수 있는지 지정합니다. 0은 특별한 의미로, 신호 수가 target과 일치하기만 하면 얼마든지 많은 FlowFile을 릴리스할 수 있습니다.
release-signal-id 특정 릴리스 신호 캐시의 키를 지정하는 값입니다. Wait 프로세서가 처리 중인 FlowFile을 success 또는 wait 관계로 보낼지 결정하기 위해 이 키로 지정된 캐시의 신호를 확인합니다.
signal-counter-name Release Signal Identifier로 지정된 캐시 내에서 신호는 서로 다른 카운터에 속할 수 있습니다. 이 속성을 지정하면 프로세서가 캐시에서 이 특정 카운터에 속하는 신호 수를 확인합니다. 지정하지 않으면 캐시의 총 신호 수를 확인합니다.
target-signal-count Wait 프로세서가 처리하는 FlowFile이 success 관계로 전송되기 위해 Release Signal Identifier로 지정된 캐시에 있어야 하는 신호 수입니다. 캐시의 신호 수가 이 수에 도달하면 FlowFile이 success 관계로 라우팅되고 캐시의 신호 수는 이 값만큼 감소합니다. Signal Counter Name이 지정되면 이 프로세서는 특정 카운터를 확인하고, 그렇지 않으면 캐시의 총 신호 수를 기준으로 확인합니다.
wait-buffer-count 앞으로 진행될 수 있는지 확인하기 위해 버퍼링할 수 있는 들어오는 FlowFile의 최대 수를 지정합니다. 버퍼가 클수록 신호 식별자별로 FlowFile을 그룹화하여 캐시 서비스와의 상호작용을 줄이므로 성능이 좋아집니다. 프로세서 실행에서 신호 식별자는 하나만 처리할 수 있습니다.
wait-mode notify 신호를 기다리는 FlowFile을 처리하는 방법을 지정합니다.
wait-penalty-duration 구성하면 신호 식별자가 처리되었지만 릴리스 기준을 충족하지 못한 후 해당 신호 식별자에 패널티가 부여되어, 지정된 기간 동안 그 신호 식별자를 가진 FlowFile은 다시 처리되지 않으므로 다른 신호가 처리되는 것을 차단하지 않습니다. 이는 Wait 프로세서가 여러 신호 식별자를 처리해야 하고 각 신호 식별자에 여러 FlowFile이 있으며 신호 식별자 내에서 FlowFile 릴리스 순서가 중요한 사용 사례에 유용합니다. FlowFile 순서는 Prioritizers로 구성할 수 있습니다. 중요: 처리할 수 있는 대기 신호 수에는 제한이 있으며 Wait 프로세서가 모든 대기 신호 ID를 확인하지 못할 수 있습니다. 모범 사례는 추가 세부 정보를 참조하세요.

관계 (Relationships)

이름 (Name) 설명 (Description)
expired 구성된 Expiration Duration을 초과한 FlowFile이 이 관계로 라우팅됩니다.
failure 캐시에 도달할 수 없거나 Release Signal Identifier가 null 또는 빈 값으로 평가되면 FlowFile이 이 관계로 라우팅됩니다.
success 캐시에 일치하는 릴리스 신호가 있는 FlowFile이 이 관계로 라우팅됩니다.
wait 캐시에 일치하는 릴리스 신호가 없는 FlowFile이 이 관계로 라우팅됩니다.

기록하는 속성 (Writes attributes)

이름 (Name) 설명 (Description)
wait.start.timestamp 모든 FlowFile은 파일이 처음 이 프로세서에 들어왔을 때의 초기 epoch 타임스탬프를 설정하는 wait.start.timestamp 속성을 갖습니다. 이는 FlowFile의 만료 시간을 결정하는 데 사용됩니다. 이 속성은 FlowFile이 failure, expired, success로 전송될 때는 기록되지 않습니다.
wait.counter. 캐시가 마지막으로 비워진 이후 캐시에 신호가 하나 이상 있었던 각 카운터의 이름이 현재 FlowFile에 속성으로 복사됩니다.

함께 보기 (See also)

  • org.apache.nifi.processors.standard.Notify

더 알아보기 (Learn more)