Требуется пояснение по sql_last_value, используемому в конфигурации Logsta sh - PullRequest
0 голосов
/ 22 января 2020

Привет. Я использую приведенный ниже код для индексации данных с сервера MS Sql наasticsearch, но мне не совсем ясно, что это 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?

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

1 Ответ

0 голосов
/ 23 января 2020

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

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

...