在Logstash中:有没有办法直接从CSV文件的标题创建字段?

时间:2017-06-21 17:14:23

标签: csv elasticsearch logstash

我想知道logstash是否能够直接从csv文件创建字段名称,我能找到的就是像这样硬编码的方式:

csv {
            separator => ","
            columns => ["Timestamp",
                        "Imsi",
                        "imeitac",
                        "msisdn",
                        "mcc",
                        "mnc",
                        "rat",
                        "bearer",
                        "ID",
                        "Location"]
    }

但是字段的顺序可能不一样,因此在运行时有更动态的方法来创建字段。基本上我希望能够在解析开始时根据csv文件的头创建所有字段。

我能找到的所有资源都表示不可能开箱即用,如果是这样的话,另一种可能的方法是什么?

1 个答案:

答案 0 :(得分:0)

没有那么多,不。 Logstash适用于事件,在这种情况下,事件是文件中的各个行。当CSV过滤器看到事件时,它不知道之前发生了什么。

要执行您正在寻找的内容,您需要在json {}输入上使用编解码器来摄取这些通风口。但是,我无法找到编解码器。如果您能够更改文件的格式,则会有一个Object.assign()编解码器为文件中找到的字段分配值。