sql >> Database teknologi >  >> RDS >> Mysql

Hvordan integrerer man ElasticSearch med MySQL?

Fra ES 5.x har de givet denne funktion ud af æsken med logstash plugin.

Dette vil periodisk importere data fra databasen og sende til ES-serveren.

Man skal oprette en simpel importfil nedenfor (som også er beskrevet her ) og brug logstash til at køre scriptet. Logstash understøtter at køre dette script efter en tidsplan.

# 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 downloade mysql jar fra maven her .

Hvis indekser ikke eksisterer i ES, når dette script udføres, vil de blive oprettet automatisk. Ligesom et normalt postopkald til elasticsearch



  1. Tilbagekomsten af ​​XFS på Linux

  2. Oracle PL/SQL:UTL_FILE.FCOPY Eksempel

  3. SQL Server trunkerer lydløst varchar'er i lagrede procedurer

  4. Sådan opretter du PL/SQL-lagrede procedurer uden parametre i Oracle-databasen