Как использовать поле, возвращаемое sql для оператора logstash if - PullRequest
0 голосов
/ 12 ноября 2018

Sql выписка

statement => "select ref_id,index_name,type,content from t_backup_es_data where backup_id >= :sql_last_value"

Значение возвращаемого столбца type содержит предложение и цитату

if[%{type}] == "quotation" {
        elasticsearch {
            hosts => "localhost:9200"
            index => "%{index_name}"
            document_type => "%{type}"
            document_id => "%{ref_id}"
            manage_template => true
            template_overwrite => true
            template => "../config/quotationMapping.json"
        }   
    }else if[%{type}] == "proposal" {
        elasticsearch {
            hosts => "localhost:9200"
            index => "%{index_name}"
            document_type => "%{type}"
            document_id => "%{ref_id}"
            manage_template => true
            template_overwrite => true
            template => "../config/proposalMapping.json"
        }
    }

Эта конфигурация не работает, что вы посоветуете?

1 Ответ

0 голосов
/ 28 ноября 2018

Если вы используете плагин ввода JDBC, doc сообщает:

Столбцы в наборе результатов преобразуются в поля в событии

Я бы начал с вывода stdout и посмотрел, что у вас есть. В прошлом в стеке ELK в качестве внутреннего поля использовался тип, поэтому это может быть так же просто, как переименование столбца в вашем запросе.

...