Мое требование - получать обновленные / новые записи из таблицы. Я использовал sql_last_value, чтобы получить последние записи. Я хочу запустить logstash в нескольких случаях, чтобы избежать сбоев ОС / оборудования и получать постоянные обновления. Но sql_last_value обновляется в каждом экземпляре отдельно, что вызывает дублирование данных или один и тот же запрос, выполняемый несколько раз с одной и той же отметкой времени. Кто-нибудь пытался прочитать sql_last_value из централизованного расположения для нескольких экземпляров, чтобы избежать избыточных запросов к БД?
Я использовал следующий вход JDBC:
input {
jdbc {
jdbc_connection_string => ""
jdbc_user => ""
jdbc_password => ""
# The path to downloaded jdbc driver
jdbc_driver_library => "/app/logstash/jdbc/ojdbc6.jar"
jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
# The path to the file containing the query
statement => "SELECT * FROM TEST1 WHERE modifyts > :sql_last_value"
schedule => "*/5 * * * *"
use_column_value => false
#tracking_column => "MODIFYTS"
lowercase_column_names => false
last_run_metadata_path => "/centralized-location/last-run/logstash_jdbc_last_run_test1_log"
record_last_run => true
sql_log_level => "debug"
#tracking_column_type => "timestamp"
jdbc_default_timezone => "America/Los_Angeles"
id => "test1"
}
}
Любые предложения?