更新时间:2024-05-29 17:51:28

CSV解析主要适用于 CSV 格式的文本解析,利用 Logstash CSV Filter 插件获取 CSV 数据事件字段并对其执行解析操作。
CSV 格式文本通常结构较为工整,且每个字段均用特定的字符隔开(不仅限于逗号),形如:"field1" 字段分隔符  "field2" 字段分隔符  "field3"格式或‘field1’ 字段分隔符  ‘field2’ 字段分隔符  ‘field3’的字符串,字段数据前后有配套的单引号、双引号。
示例如下所示:“李x|男|"26岁"|测试工程师”,其中字段分隔符为“|”。

元素名称 元素说明
字段分隔符 可设置为任意字符串,常见为逗号( , )、分号( ; )、竖杠( | )
字段引用符

根据CSV格式数据的内容,选择所需的字段引用符,默认为双引号(")。可配置的字段引用符包括:空、单引号(')、双引号("),具体如下:

• 字段引用符选择为“空”时,原日志数据中含有的单引号(')、双引号(")都会被作为数据内容进行解析。例如,以上方解析配置示例为例,当原日志样例为"李x"|‘男|"26岁"|’测试工程师‘”时,解析结果如下所示:

• 字段引用符选择为“单引号(')”时,原日志数据中字段前后有配套单引号(')的数据可以被正常解析,例如,以上方解析配置示例为例,当原日志样例为“李x|‘男‘|26岁|‘测试工程师’””,解析结果如下所示。否则,原CSV数据将不能被正常解析(如:原日志数据中字段前后仅有一个单引号,或原日志数据中既包含单引号又包含双引号)。

• 字段引用符选择为“双引号(")”时,原日志数据中字段前后有配套双引号(")的数据可以被正常解析,例如,以上方解析配置示例为例,当原日志样例为“李x|“男”|”26岁“|测试工程师”时,解析结果如下所示。否则,原CSV数据将不能被正常解析(如:原日志数据中字段前后仅有一个双引号,或原日志数据中既包含单引号又包含双引号)。

说明:若配置了不合适的字段引用符,原CSV数据将不能被正常解析,需要进入 搜索 页面查看相关报错信息。

目标字段 默认为空,目标字段可理解为解析字段中的一级字段:
• 若设置目标字段,则解析字段名为:目标字段.字段名称 
以上图为例,目标字段设置为“用户名”,则解析字段名为:用户名.column1,用户名.column2……;
若目标字段为空,则解析字段名为:字段名称
字段名称 可自定义解析字段名,默认为空数组,解析字段名默认为column1,column2……依次递增命名



说明:自定义字段名称若少于根据实际日志解析出来的字段数量,则从第一个字段开始定义字段名称,超过自定义字段名称数量的字段,按默认字段名column1,column2……依次递增命名。