Pada ES 5.x , mereka telah memberikan fitur ini di luar kotak dengan simpanan log pengaya.
Ini akan secara berkala mengimpor data dari database dan mendorong ke server ES.
Kita harus membuat file impor sederhana yang diberikan di bawah ini (yang juga dijelaskan di sini ) dan gunakan logstash untuk menjalankan skrip. Logstash mendukung menjalankan skrip ini sesuai jadwal.
# file: contacts-index-logstash.conf
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
jdbc_user => "user"
jdbc_password => "pswd"
schedule => "* * * * *"
jdbc_validate_connection => true
jdbc_driver_library => "/path/to/latest/mysql-connector-java-jar"
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
statement => "SELECT * from contacts where updatedAt > :sql_last_value"
}
}
output {
elasticsearch {
protocol => http
index => "contacts"
document_type => "contact"
document_id => "%{id}"
host => "ES_NODE_HOST"
}
}
# "* * * * *" -> run every minute
# sql_last_value is a built in parameter whose value is set to Thursday, 1 January 1970,
# or 0 if use_column_value is true and tracking_column is set
Anda dapat mengunduh toples mysql dari maven di sini .
Jika indeks tidak ada di ES saat skrip ini dijalankan, mereka akan dibuat secara otomatis. Sama seperti panggilan pos biasa ke elasticsearch