2016-05-13 8 views
0

Ich habe eine Tabelle von 20 GB Daten mit 50 Millionen Zeilen. Sie müssen mit dem Plugin logstash jdbc in ElasticSearch migrieren. Ich habe alle grundlegende Implementierung ausprobiert, benötige jedoch Hilfe bei der Migration von Daten im Batch, d. H. Nur 10.000 Zeilen gleichzeitig. Ich bin mir nicht sicher, wie und wo ich diese Anzahl angeben und wie ich sie aktualisieren soll, wenn ich das nächste Mal logstash starte. Bitte helfen Sie mir, dieses Problem zu lösenLogstash JDBC-Eingabe-Plugin: Migrate Daten von MySQL in Batch-Anzahl

Dies ist, was ich habe:

input { 
    jdbc { 
     jdbc_driver_library => "mysql-connector-java-5.1.12-bin.jar" 
     jdbc_driver_class => "com.mysql.jdbc.Driver" 
     jdbc_connection_string => "jdbc:mysql://localhost/db" 
     jdbc_validate_connection => true 
     jdbc_user => "root" 
     jdbc_password => "root" 
     clean_run => true 
     record_last_run => true 
     use_column_value => true 
     jdbc_paging_enabled => true 
     jdbc_page_size => 5 
     tracking_column => id 
     statement => "select * from employee" 
    } 
} 

Vielen Dank im Voraus.

+1

Hilft das? https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html#_dealing_with_large_result_sets – Val

+0

Danke Val, kannst du mir bitte ein paar Beispiele geben, wie man es implementiert. – Chitra

+0

Es gibt einen ausgezeichneten Blog-Beitrag, der ein Beispiel von A bis Z bietet: https://www.elastic.co/blog/logstash-jdbc-input-plugin – Val

Antwort

1

Sie müssen jdbc_paging_enabled auf True setzen, damit die Übertragung funktioniert.

Sie müssen aber auch sicherstellen, dass clean_run auf false gesetzt ist, sonst funktioniert die Paginierung nicht.

+0

vielen dank für ihre führung, ich könnte erreichen, was ich wollte. – Chitra

+0

Super, froh, dass es geholfen hat! – Val

+1

Sie sollten diese Antwort akzeptieren, wenn sie Ihnen geholfen hat. – Val