簡體   English   中英

使用Logstash在ElasticSearch中加載CSV

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM