CompressContent 프로세서

CompressContent 프로세서

이 문서는 Snowflake OpenFlow의 CompressContent 프로세서에 대한 참조 문서예요. FlowFile의 내용을 지정한 압축 알고리즘으로 압축하거나 해제하고, 그에 맞게 mime.type 속성을 갱신할 수 있어요.

출처: Snowflake 문서

본문

기능 — 일반 제공 (Generally Available)

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

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

번들 (Bundle)

그룹 NAR
org.apache.nifi nifi-standard-nar

설명 (Description)

사용자가 지정한 압축 알고리즘을 사용해 FlowFile의 내용을 압축하거나 해제하고, 그에 맞게 mime.type 속성을 갱신해요. 일반적인 패턴은 CompressContent 앞에 IdentifyMimeType을 두고 Mode='decompress' 및 Compression Format='use mime.type attribute'로 구성하는 거예요. 이렇게 사용하면 MIME 타입이 자동으로 감지되고 필요하면 데이터가 해제돼요. 해제가 필요 없다면 데이터는 'success' 관계로 전달돼요. 이 프로세서는 메모리를 매우 효율적으로 사용해서 힙 크기를 훨씬 넘는 대용량 객체도 일반적으로 처리 가능해요.

태그 (Tags)

brotli, bzip2, compress, content, decompress, deflate, gzip, lz4-framed, lzma, snappy, snappy framed, snappy-hadoop, xz-lzma2, zstd

입력 요구사항 (Input Requirement)

REQUIRED

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

아니요 (false)

속성 (Properties)

속성 설명
Compression Format 사용할 압축 형식이에요. 유효한 값: GZIP, Deflate, ZSTD, BZIP2, XZ-LZMA2, LZMA, Brotli, Snappy, Snappy Hadoop, Snappy Framed, LZ4-Framed
Compression Level 사용할 압축 레벨이에요. gzip, deflate 또는 xz-lzma2 압축을 사용할 때만 유효해요. 값이 낮을수록 처리가 빠르지만 압축률은 떨어져요. 값 0은 gzip의 경우 압축 없음(단순 아카이빙), xz-lzma2의 경우 최소 압축을 의미해요. 레벨이 높을수록(예: xz-lzma/2의 레벨 7-9) 메모리 사용량이 크게 늘어날 수 있으므로 힙 크기에 주의해야 해요.
Mode 프로세서가 내용을 압축할지 해제할지를 나타내요. 'compress' 또는 'decompress' 중 하나여야 해요.
Update Filename true이면 데이터를 해제할 때 파일 확장자를 제거하고(확장자가 해당 압축 형식을 가리키는 경우에만), 데이터를 압축할 때는 적절한 확장자를 추가해요.

관계 (Relationships)

이름 설명
failure 압축/해제에 실패한 FlowFile은 failure 관계로 전달돼요.
success 압축 또는 해제에 성공한 FlowFile은 success 관계로 전달돼요.

기록하는 속성 (Writes attributes)

이름 설명
mime.type Mode 속성이 compress면 적절한 MIME 타입이 설정돼요. Mode 속성이 decompress이고 파일이 성공적으로 해제되면 MIME 타입을 더 이상 알 수 없으므로 이 속성은 제거돼요.

사용 사례 (Use cases)

  • FlowFile의 내용 압축
  • FlowFile의 내용 해제

다른 구성 요소와 관련된 사용 사례 (Use Cases Involving Other Components)

  • FlowFile이 압축되어 있는지 확인하고, 압축되어 있다면 해제해요.

더 알아보기 (Learn more)