синхронизировать mysql сasticsearch с помощью logstash - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть документ продукта с полем вложенных тегов, logstash каждый раз, когда обновляются записи продукта из БД, но проблема, когда связанные с продуктом теги обновляются отдельно, как logstash обнаруживает, что дочерние записи обновляются, а затем обновляет документ продукта, возможно и как можнодостичь этого?

это файл конфигурации logstash

input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.47-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/aurora_cms?useSSL=false&allowPublicKeyRetrieval=true"
    jdbc_user => "root"
    jdbc_password => "root"
    statement => "select * from product where updated_date > :sql_last_value"
    schedule=>"*/10 * * * * *"
  }
}

filter {
    jdbc_streaming {
          jdbc_driver_library => "mysql-connector-java-5.1.47-bin.jar"
          jdbc_driver_class => "com.mysql.jdbc.Driver"
          jdbc_connection_string => "jdbc:mysql://localhost:3306/aurora_cms?useSSL=false&allowPublicKeyRetrieval=true"
          jdbc_user => "root"
          jdbc_password => "root" 
          statement => "select name
                        from tag
                        where product_id= :id"
          parameters => { id => "product_id"}
          target => "tags"
    }
}
output {
    elasticsearch { 
      hosts => ["localhost:9200"]
      document_id => "%{product_id}"
      index => "products"
      document_type => "products"
    }
}
...