Требуется разъяснение по sql_last_value, используемому в конфигурации Logstash.

Привет всем, я использую приведенный ниже код для индексации данных с сервера MSSql в elasticsearch, но я не совсем понимаю это значение sql_last_value.

input {
jdbc {
jdbc_driver_library => ""
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => "jdbc:sqlserver://xxxx:1433;databaseName=xxxx;"
jdbc_user => "xxxx"
jdbc_paging_enabled => true
tracking_column => modified_date
tracking_column_type => "timestamp"
use_column_value => true
jdbc_password => "xxxx"
clean_run => true
schedule => "*/1 * * * *"
statement => "Select * from [dbo].[xxxx] where modified_date >:sql_last_value"
}
}

filter {
if [is_deleted] {
        mutate {    
            add_field => {
                "[@metadata][elasticsearch_action]" => "delete"
            }
        }
        mutate {
            remove_field => [ "is_deleted","@version","@timestamp" ]
        }
    } else {
        mutate {    
            add_field => {
                "[@metadata][elasticsearch_action]" => "index"
            }
        }
        mutate {
            remove_field => [ "is_deleted","@version","@timestamp" ]
        }
    } 
}

output {
elasticsearch {
hosts => "xxxx"
user => "xxxx"
password => "xxxx"
index => "xxxx"
action => "%{[@metadata][elasticsearch_action]}"
document_type => "_doc"
document_id => "%{id}"

}
stdout { codec => rubydebug }
}

Где хранится это значение sql_last_value и как его физически просмотреть? Можно ли установить пользовательское значение sql_last_value?

Может ли кто-нибудь уточнить по вышеуказанным вопросам?


person Mohan vel    schedule 22.01.2020    source источник


Ответы (1)


sql_last_value хранится в файле с именем .logstash_jdbc_last_run и в соответствии с docs хранится в $HOME/.logstash_jdbc_last_run. Сам файл содержит отметку времени последнего запуска, и для него можно установить определенное значение.

Вы должны определить параметр last_run_metadata_path для каждого отдельного jdbc_input_plugin и указать более конкретное местоположение, поскольку все запущенные экземпляры jdbc_input_plugin по умолчанию будут совместно использовать один и тот же файл .logstash_jdbc_last_run, что может привести к нежелательным результатам.

person ibexit    schedule 22.01.2020