2017-02-06 182 views
1

對csv使用logstash過濾器時,它會將每一個換行符處理爲換行符,並將下一行中的下一個字符處理,即使這些字符位於雙引號內.CSV文件具有一些列其中包含雙引號內的多行文本。 logstash可以忽略雙引號內的新行字符嗎?我的配置如下。Logstash CSV過濾器 - 忽略雙引號內的新行char

input { 
    s3 { 

      bucket => "abcbucket" 
      region => "eu-west-1" 
      type => "spa" 
      prefix => "input/2017/SPA" 
      aws_credentials_file => "/Users/abc/project/def/config/s3-credentials.yaml" 
      sincedb_path => "/dev/null" 
    } 
} 
filter { 
csv { 
    columns => ["column1", "column2", "column3","column4"] 
    separator => "," 
    convert => { 
     "column1" => "integer" 
     "column2" => "integer" 
    } 
} 
} 
output { 
elasticsearch 
    { 
      hosts => ["abc.def.com:80"] 
      index => "abc-%{+YYYY.MM.dd}" 

    } 
} 

第3列大多數時間都有多行文本。非常感謝你的幫助。

回答

1

這種問題最好在源頭解決。在你的配置中,你應該用多線編解碼器配置你的s3 {}部分。我是猜測實際上是續行的'行'不能以引號字符開頭。如果是這樣的話,應該非常直接地配置多行來考慮不以引號開頭的行,並且對於上一行很長。