GrokReader¶
描述¶
提供一种机制,用于读取非结构化文本数据(如日志文件),并对这些数据进行结构化处理,以便能够进行处理。该服务使用 Grok 模式进行配置。该服务从数据流中读取数据,并将找到的每条消息拆分为一条单独的记录,每条记录都包含已配置的字段。如果输入中的某行与预期的消息模式不匹配,则该文本行要么被视为前一条消息的一部分,要么被跳过,具体取决于配置,但堆栈跟踪除外。在日志消息末尾找到的堆栈跟踪被视为前一条消息的一部分,但会被添加到记录的“stackTrace”字段中。如果一条记录没有堆栈跟踪,则它在 stackTrace 字段中将具有 NULL 值(假设该架构实际上包含一个类型为字符串的 stackTrace 字段)。假设该架构包含一个类型为字符串的“_raw”字段,则原始消息将包含在记录中。
属性¶
下表列出了各项属性,其中带星号 (*) 的为必需属性。其他属性视为可选属性。该表还指出了所有默认值以及属性是否支持 NiFi 表达式语言。
显示名称 |
API 名称 |
默认值 |
允许值 |
描述 |
---|---|---|---|---|
Grok 表达式 * |
Grok 表达式 |
以 Grok 格式指定日志行的格式。这使记录读取器能够了解如何解析每个日志行。该属性支持一个或多个 Grok 表达式。读取器尝试根据表达式的配置顺序解析输入行。如果日志文件中的某行与任何表达式都不匹配,则将假定该行属于先前的日志消息。如果此表达式引用了其他 Grok 模式,则需要在 Grok 模式文件属性中提供这些模式。 |
||
Grok 模式 |
Grok 模式文件 |
用于解析日志的 Grok 模式。如果未指定,则将使用内置的默认“Pattern”文件。如果已指定,则所有指定的模式都将替换默认模式。有关预定义模式的列表,请参阅“控制器服务的其他详细信息”。 |
||
无匹配行为 * |
no-match-behavior |
append-to-previous-message |
|
如果遇到一行文本,该行文本与给定的 Grok 表达式不匹配,并且不属于堆栈跟踪,则该属性指定文本处理方式。 |
架构访问策略 * |
schema-access-strategy |
string-fields-from-grok-expression |
|
指定如何获取用于解读数据的架构。 |
架构分支 |
schema-branch |
指定在“架构注册表”属性中查找架构时使用的分支名称。如果所选架构注册表不支持分支,则该值将被忽略。 |
||
架构名称 |
schema-name |
${schema.name} |
指定要在架构注册表属性中查找的架构的名称。 |
|
架构参考读取器 * |
schema-reference-reader |
服务实现,负责读取 FlowFile 属性或内容以确定架构参考标识符 |
||
架构注册表 |
schema-registry |
指定用于架构注册表的控制器服务 |
||
架构文本 |
schema-text |
${avro.schema} |
Avro 格式架构的文本 |
|
架构版本 |
schema-version |
指定要在架构注册表中查找的架构版本。如果未指定,则将检索架构的最新版本。 |
状态管理¶
此组件不存储状态。
受限¶
限制¶
所需权限 |
解释 |
---|---|
引用远程资源 |
模式和表达式可以通过 HTTP 引用资源 |
系统资源注意事项¶
此组件未指定系统资源注意事项。