CSV解析主要适用于 CSV 格式的文本解析,利用 Logstash CSV Filter 插件获取 CSV 数据事件字段并对其执行解析操作。
CSV 格式文本通常结构较为工整,且每个字段均用特定的字符隔开(不仅限于逗号),形如:"field1" 字段分隔符 "field2" 字段分隔符 "field3"格式或‘field1’ 字段分隔符 ‘field2’ 字段分隔符 ‘field3’的字符串,字段数据前后有配套的单引号、双引号。
示例如下所示:“李x|男|"26岁"|测试工程师”,其中字段分隔符为“|”。
![](https://assets.aishu.cn/images/ce83321db9748079b439a48b63f6b4d7.png)
元素名称 |
元素说明 |
字段分隔符 |
可设置为任意字符串,常见为逗号( , )、分号( ; )、竖杠( | ) |
字段引用符 |
根据CSV格式数据的内容,选择所需的字段引用符,默认为双引号(")。可配置的字段引用符包括:空、单引号(')、双引号("),具体如下:
• 字段引用符选择为“空”时,原日志数据中含有的单引号(')、双引号(")都会被作为数据内容进行解析。例如,以上方解析配置示例为例,当原日志样例为"李x"|‘男|"26岁"|’测试工程师‘”时,解析结果如下所示:
![](https://assets.aishu.cn/images/18eb52692d99f22db5c3f1588eed030c.png)
• 字段引用符选择为“单引号(')”时,原日志数据中字段前后有配套单引号(')的数据可以被正常解析,例如,以上方解析配置示例为例,当原日志样例为“李x|‘男‘|26岁|‘测试工程师’””,解析结果如下所示。否则,原CSV数据将不能被正常解析(如:原日志数据中字段前后仅有一个单引号,或原日志数据中既包含单引号又包含双引号)。
![](https://assets.aishu.cn/images/8da0b8b138c271d4e2b4b0475b4c8435.png)
• 字段引用符选择为“双引号(")”时,原日志数据中字段前后有配套双引号(")的数据可以被正常解析,例如,以上方解析配置示例为例,当原日志样例为“李x|“男”|”26岁“|测试工程师”时,解析结果如下所示。否则,原CSV数据将不能被正常解析(如:原日志数据中字段前后仅有一个双引号,或原日志数据中既包含单引号又包含双引号)。
![](https://assets.aishu.cn/images/8da0b8b138c271d4e2b4b0475b4c8435.png)
说明:若配置了不合适的字段引用符,原CSV数据将不能被正常解析,需要进入 搜索 页面查看相关报错信息。
|
目标字段 |
默认为空,目标字段可理解为解析字段中的一级字段: • 若设置目标字段,则解析字段名为:目标字段.字段名称 ; 以上图为例,目标字段设置为“用户名”,则解析字段名为:用户名.column1,用户名.column2……; • 若目标字段为空,则解析字段名为:字段名称 |
字段名称 |
可自定义解析字段名,默认为空数组,解析字段名默认为column1,column2……依次递增命名 |
![](https://new-official-website-1256829807.cos.ap-shanghai.myqcloud.com/images/%E8%A7%A3%E6%9E%90%E7%A4%BA%E4%BE%8B-1_3_0_17_5.png)
说明:自定义字段名称若少于根据实际日志解析出来的字段数量,则从第一个字段开始定义字段名称,超过自定义字段名称数量的字段,按默认字段名column1,column2……依次递增命名。