Logstash和Postgres:索引所有结果

时间:2018-09-07 10:21:29

标签: postgresql logstash

我使用logstash来索引Postgres db,尤其是具有千万行的表。

首先我尝试了这样的设置:

input {
  jdbc {
    dbc_connection_string => ...
    jdbc_user => ...
    jdbc_password => ...
    jdbc_validate_connection => true
    jdbc_driver_library => ...
    jdbc_driver_class => "org.postgresql.Driver"
    statement => "SELECT * FROM mytable WHERE last_update_date >= :sql_last_value ORDER BY mytable_id"
    jdbc_fetch_size => "50000"
    last_run_metadata_path => ...
    schedule => ...
    use_column_value => true
    tracking_column => "last_update_date"
    tracking_column_type => "timestamp"

几分钟后,它崩溃并显示OutOfMemoryError。所以我加了

    jdbc_paging_enabled => true
    jdbc_page_size => "50000"

但是我想我会错过一些数据:它将索引mytable_id

  • 从0到50000
  • 从50000到100000
  • ... 但是据我所知,在第二遍过程中,例如,如果更新了mytable_id 20000,则由于logstash将构建具有偏移量的Postgres查询,因此它可能还会移动后续运行的数据。此问题的最新状态是什么?

0 个答案:

没有答案