[英]Loading csv in ElasticSearch using logstash
我有一個csv,其中一列可能包含多行值。
ID,Name,Address
1, ABC, "Line 1
Line 2
Line 3"
據我所知,以上根據CSV標准編寫的數據是一條記錄。
我有以下用於logstash的過濾器
filter {
csv {
separator => ","
quote_char => "\""
columns => ["ID","Name", "Address"]
}
}
output {
elasticsearch {
host => "localhost"
port => "9200"
index => "TestData"
protocol => "http"
}
stdout {}
}
但是當我執行它時,它會創建三個記錄。 (所有原則上都是錯誤的,因為前一個包含兩個列數據ID和名稱以及Address的部分數據,接下來的兩個記錄包含第2行和第3行,但沒有ID和名稱
我怎樣才能解決這個問題? 我在文件解析中丟失了什么嗎?
您是否嘗試過多行編解碼器 ?
您應該在輸入插件中添加以下內容:
codec => multiline {
pattern => "^[0-9]"
negate => "true"
what => "previous"
}
它告訴logstash,每個不以數字開頭的行都應與前一行合並
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.