LookupRecord

LookupRecord

Record에서 하나 이상의 필드를 추출하고 LookupService에서 해당 필드에 대한 값을 조회하는 프로세서예요. LookupService가 결과를 반환하면 그 결과는 선택적으로 Record에 추가돼요. 이 경우 프로세서는 Enrichment 프로세서로 기능해요. 어쨌든 Record는 LookupService가 결과를 반환했는지 여부를 나타내며 'matched' 관계 또는 'unmatched' 관계로 연결되고('Routing Strategy' 속성이 그렇게 구성된 경우), 이를 통해 프로세서는 Routing 프로세서로도 기능할 수 있어요. Lookup Service에서 값을 조회하는 데 사용할 "coordinates"는 사용자 정의 속성을 추가해 정의해요. 추가된 각 속성에는 Map에 항목이 추가되며, 속성 이름이 Map Key가 되고 RecordPath가 반환한 값이 해당 키의 값이 돼요. RecordPath가 여러 값을 반환하면 Record는 'unmatched' 관계(또는 'Routing Strategy' 속성 구성에 따라 'success')로 연결돼요. 하나 이상의 필드가 Result RecordPath와 일치하면 일치하는 모든 필드가 업데이트돼요. 구성된 LookupService에 일치 항목이 없으면 어떤 필드도 업데이트되지 않아요. 즉, Record의 기존 값을 null 값으로 덮어쓰지 않아요. 다만 LookupService가 반환한 결과가 스키마(특히 Record Writer에 구성된 스키마)에 설명되어 있지 않으면 해당 필드는 FlowFile에 기록되지 않는다는 점에 유의하세요.

출처: Snowflake 문서

본문

기능 — 일반 제공(Generally Available)

Openflow Snowflake 배포는 AWS, Azure, GCP Commercial 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS Commercial 리전의 모든 계정에서 사용할 수 있어요.

Bundle

org.apache.nifi | nifi-standard-nar

설명 (Description)

Record에서 하나 이상의 필드를 추출하고 LookupService에서 해당 필드에 대한 값을 조회해요. LookupService가 결과를 반환하면 그 결과는 선택적으로 Record에 추가돼요. 이 경우 프로세서는 Enrichment 프로세서로 기능해요. 어쨌든 Record는 LookupService가 결과를 반환했는지 여부를 나타내며 'matched' 관계 또는 'unmatched' 관계로 연결되고('Routing Strategy' 속성이 그렇게 구성된 경우), 이를 통해 프로세서는 Routing 프로세서로도 기능할 수 있어요. Lookup Service에서 값을 조회하는 데 사용할 "coordinates"는 사용자 정의 속성을 추가해 정의해요. 추가된 각 속성에는 Map에 항목이 추가되며, 속성 이름이 Map Key가 되고 RecordPath가 반환한 값이 해당 키의 값이 돼요. RecordPath가 여러 값을 반환하면 Record는 'unmatched' 관계(또는 'Routing Strategy' 속성 구성에 따라 'success')로 연결돼요. 하나 이상의 필드가 Result RecordPath와 일치하면 일치하는 모든 필드가 업데이트돼요. 구성된 LookupService에 일치 항목이 없으면 어떤 필드도 업데이트되지 않아요. 즉, Record의 기존 값을 null 값으로 덮어쓰지 않아요. 다만 LookupService가 반환한 결과가 스키마(특히 Record Writer에 구성된 스키마)에 설명되어 있지 않으면 해당 필드는 FlowFile에 기록되지 않는다는 점에 유의하세요.

태그 (Tags)

avro, convert, csv, database, db, enrichment, filter, json, logs, lookup, record, route

입력 요구사항 (Input Requirement)

REQUIRED (필수)

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

false

속성 (Properties)

Property Description
Root Record Path FlowFile의 각 최상위 Record 내에서 하위 Record를 가리키는 RecordPath예요. 지정하면 추가 RecordPath 속성이 최상위 Record 대신 이 하위 Record에 대해 평가돼요. 이를 통해 단일 최상위 Record 내의 여러 하위 Record에 대해 enrichment를 수행할 수 있어요.
lookup-service 각 Record에서 값을 조회하는 데 사용할 Lookup Service예요.
record-path-lookup-miss-result-cache-size 캐시할 조회 값/레코드 수를 지정해요. 이 속성을 0으로 설정하면 캐싱이 수행되지 않고 각 레코드의 각 조회 값에 대해 테이블을 쿼리해요. 조회 테이블이 자주 변경되거나 가장 최근 데이터를 검색해야 하면 캐시를 사용하지 마세요.
record-reader 들어오는 데이터를 읽는 데 사용할 Controller Service를 지정해요.
record-update-strategy Lookup Service가 반환한 값으로 레코드를 업데이트할 때 사용할 전략을 정의해요.
record-writer 레코드를 기록하는 데 사용할 Controller Service를 지정해요.
result-contents Record를 포함하는 결과를 얻었을 때, 이 속성은 Record 자체를 구성된 경로에 삽입할지 아니면 Record의 내용(즉 하위 필드)을 구성된 경로에 삽입할지를 결정해요.
result-record-path Lookup Service에서 반환된 값으로 업데이트해야 할 필드를 가리키는 RecordPath예요. 지정하지 않으면 FlowFile을 'matched' 또는 'unmatched' Relationship으로 연결할지 결정하는 경우를 제외하고 Lookup Service에서 반환된 값은 무시돼요.
routing-strategy Lookup이 완료된 후 레코드를 라우팅하는 방법을 지정해요.

관계 (Relationships)

Name Description
failure FlowFile을 enrich할 수 없으면 변경되지 않은 FlowFile이 이 관계로 연결돼요.
success 그렇게 구성된 경우 실패가 없으면 모든 레코드가 이 Relationship으로 전송돼요.

쓰기 속성 (Writes attributes)

Name Description
mime.type mime.type 속성을 Record Writer가 지정한 MIME Type으로 설정해요.
record.count FlowFile의 레코드 수예요.

함께 보기 (See also)

  • org.apache.nifi.processors.standard.ConvertRecord
  • org.apache.nifi.processors.standard.SplitRecord

더 알아보기 (Learn more)