синхронизировать данные с es и настроить структуру индекса es - PullRequest
0 голосов
/ 26 октября 2018

у меня две таблицы: customer,customer_order у клиента есть столбцы customer_name, sex, customerid.и я хочу синхронизировать эти две таблицы, чтобы упростить поиск customerOrder индексировать структуру customerOrder как

{
  orderid:x,
  ordercreatetime,
  customerinfo:{
    customername:xx,
    sex:x
    customerid:xx
  }
}

Мой вопрос заключается в том, как сделать две таблицы данных для синхронизации и интеграции в обычную структуру индекса es, такую ​​как: customerOrderи когда customer_name изменилось в таблице customer, я хочу изменить значение поля customerNerder всего индекса customerOrder.спасибо всем за ваше предложение!

это logstash.conf

input {
  jdbc {
    jdbc_driver_library => "/opt/logstash-6.3.0/mssql-jdbc-7.0.0.jre8.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_connection_string => "jdbc:sqlserver://xxxxx;databaseName=xxxx;"
    jdbc_user => "xx"
    jdbc_password => "xxx"
    statement => "select  * from customer_order"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "5000"
    schedule => "* * * * *"
    use_column_value => true
    tracking_column => "orderid"
    tracking_column_type => "numeric"

  }
  jdbc {
    jdbc_driver_library => "/opt/logstash-6.3.0/mssql-jdbc-7.0.0.jre8.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_connection_string => "jdbc:sqlserver://xxxxx;databaseName=xxxx;"
    jdbc_user => "xx"
    jdbc_password => "xxx"
    statement => "select  * from customer"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "5000"
    schedule => "* * * * *"
    use_column_value => true
    tracking_column => "customerid"
    tracking_column_type => "numeric"

  }
}
filter {

}
output {

  elasticsearch {
    hosts => ["http://xxxxxx"]
    index => "customerOrder"
    document_id => "%{orderid}"
    user => "xx"
    password => "xxx"
  }
  stdout { codec => rubydebug }
}
...