sql >> Databasteknik >  >> RDS >> Mysql

Hur integrerar man ElasticSearch med MySQL?

Från och med ES 5.x har de gett den här funktionen direkt med logstash plugin.

Detta kommer periodvis att importera data från databasen och skicka till ES-servern.

Man måste skapa en enkel importfil nedan (som också beskrivs här ) och använd logstash för att köra skriptet. Logstash stöder att köra det här skriptet enligt ett schema.

# 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

Du kan ladda ner mysql jar från maven här .

Om index inte finns i ES när det här skriptet körs, kommer de att skapas automatiskt. Precis som ett vanligt efterupprop till elasticsearch



  1. Nytt sätt att kopiera filer i SQL Server 2019

  2. Installation av SQL Server 2017

  3. PRIMARY KEY-definition i MySQL CREATE TABLE-satsen

  4. Hur man tar bort mellanslag från en sträng i MySQL