2017-06-01 10 views
0

Ich habe einen CSV, in dem eine Spalte mehrzeilige Werte enthalten kann.Laden von CSV in ElasticSearch mit logstash

Die oben beschriebenen Daten gemäß CSV-Standard ist ein Datensatz (meines Wissens).

Ich habe folgende Filter für logstash

filter { 
    csv { 
     separator => "," 
     quote_char => "\"" 
    columns => ["ID","Name", "Address"] 
    } 
} 
output { 
    elasticsearch { 
    host => "localhost" 
    port => "9200" 
    index => "TestData" 
    protocol => "http" 
    } 
stdout {} 
} 

Aber wenn ich es ausführen, erstellt es drei Datensätze. (Alle sind im Prinzip falsch, da die erste Spalte zwei Spalten enthält, ID und Name und Teildaten für Adresse und die nächsten zwei Datensätze Zeile 2 und Zeile 3, aber keine ID und Name

Wie kann ich das beheben? Fehle ich etwas? ? in der Datei Parsing

Antwort

0

haben tryed Sie die multiline codec

Sie sollten so etwas in Ihrer Eingabe-Plugin hinzufügen:

codec => multiline { 
     pattern => "^[0-9]" 
     negate => "true" 
     what => "previous" 
    } 

es sagt logstash, dass jede Zeile, die nicht mit einer Zahl sein sollte mer ged mit der vorherigen Zeile

Verwandte Themen