Apache Nifi 2.x处理器:CompressContent 2.2.0
Bundle
org.apache.nifi | nifi--standard--nar
描述
使用用户指定的压缩算法对FlowFile内容进行压缩或解压缩,并更新mime.type属性。常用模式是在CompressContent前配置IdentifyMimeType处理器,并设置Mode='decompress'且Compression Format='use mime.type attribute'。此模式下,MIME类型会自动检测并按需解压数据。若无需解压,数据将直接通过success关系传递。本处理器内存效率极高,可处理远超堆内存大小的超大对象。
标签
brotli, bzip2, compress, content, decompress, deflate, gzip, lz4--framed, lzma, snappy, snappy framed, snappy--hadoop, xz--lzma2, zstd
输入要求
REQUIRED
支持敏感动态属性
false
属性配置
压缩格式
- 显示名称:压缩格式
- 描述:使用的压缩格式。有效值包括:GZIP、Deflate、ZSTD、BZIP2、XZ--LZMA2、LZMA、Brotli、Snappy、Snappy Hadoop、Snappy Framed、LZ4--Framed。
- API名称:Compression Format
- 默认值:use mime.type attribute
- 允许值:
- use mime.type attribute
- gzip
- deflate
- bzip2
- xz-lzma2
- lzma
- snappy
- snappy-hadoop
- snappy framed
- lz4-framed
- zstd
- brotli
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
压缩级别
- 显示名称:压缩级别
- 描述:压缩级别(仅适用于gzip、deflate或xz-lzma2)。数值越小处理越快但压缩率越低。0表示无压缩(gzip)或最小压缩(xz-lzma2)。高级别(如xz-lzma2的7-9级)可能导致内存占用激增,需谨慎设置。
- API名称:Compression Level
- 默认值:1
- 允许值:0至9
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
- 依赖条件:
- 压缩格式为zstd、use mime.type attribute、deflate、brotli、gzip或xz-lzma2
- 模式为compress
模式
- 显示名称:模式
- 描述:指定处理器应压缩或解压缩内容。必须为compress或decompress。
- API名称:Mode
- 默认值:compress
- 允许值:compress、decompress
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
更新文件名
- 显示名称:更新文件名
- 描述:若为true,解压时将删除文件名中表示压缩格式的扩展名,压缩时添加对应扩展名。
- API名称:Update Filename
- 默认值:false
- 允许值:true、false
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
系统资源消耗
资源 | 描述 |
CPU | 单个实例可能占用较高CPU资源。多实例或高并发设置可能导致性能下降。 |
内存 | 单个实例可能占用较高内存资源。多实例或高并发设置可能导致性能下降。 |
关系
名称 | 描述 |
success | 压缩或解压成功的FlowFile将传输至此关系。 |
failure | 压缩或解压失败的FlowFile将传输至此关系。 |
读取属性
属性名 | 描述 |
mime.type | 若压缩格式设为use mime.type attribute,此属性用于确定压缩类型;否则忽略。 |
写入属性
属性名 | 描述 |
mime.type | 若模式为compress,设置对应的MIME类型;若模式为decompress且解压成功,则移除此属性(因MIME类型不再明确)。 |
用例
压缩FlowFile内容
描述:压缩FlowFile内容。
配置:
- 模式 = compress
- 压缩格式 = 指定需使用的压缩算法(如gzip)。
解压FlowFile内容
描述:解压FlowFile内容。
配置:
- 模式 = decompress
- 压缩格式 = 指定原始压缩算法(如gzip)。
结合其他组件的用例
描述:检查FlowFile是否压缩,若压缩则解压。
步骤:
- 使用IdentifyMimeType检测MIME类型。若内容未压缩,CompressContent将直接传递FlowFile至success。
- 将IdentifyMimeType的success关系连接至CompressContent。
- CompressContent配置:
- 模式 = decompress
- 压缩格式 = use mime.type attribute