2017-02-06 10 views
1

csv에 logstash 필터를 사용하는 동안 줄 바꿈으로 모든 줄 바꿈 문자를 처리하고 큰 줄로 묶어도 다음 줄의 다음 문자를 처리합니다 .CSV 파일에 몇 개의 열이 있습니다 큰 따옴표 안에 여러 줄의 텍스트가 들어 있습니다. logstash는 어떻게 든 새로운 줄 문자를 큰 따옴표로 무시할 수 있습니까? 내 설정은 다음과 같습니다.Logstash CSV 필터 - 큰 따옴표 안에 새 줄 문자 무시

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 {} 섹션을 다중 라인 코덱으로 구성해야합니다. 나는 입니다.은 실제로 'column'이 계속되는 'lines'은 따옴표 문자로 시작하지 않습니다. 이 경우 여러 줄을 인용 부호로 시작하지 않는 줄을 이전 줄과 긴 줄로 구성하는 것이 꽤나 간단합니다.