2017-08-03 4 views
2

Ich möchte Daten aus meiner MySQL-Datenbank zu Elasticsearch mit Logstash importieren. Ich bin bereits in der Lage, ein benutzerdefiniertes Abfrageergebnis zu importieren, aber ich vermisse den Punkt, wo ich die Zuordnung/Einstellungen des Indexes definieren kann, der von logstash erstellt wird. Außerdem habe ich keine Ahnung, wie man Daten mit einer zu vielen Beziehungen importiert.Importieren von Daten von Mysql zu Elasticsearch mit Logstash

Das ist mein logstash.conf ist so weit:

input { 
jdbc { 
    jdbc_connection_string => "jdbc:mysql://localhost:3306/shop" 
    jdbc_user => "root" 
    jdbc_password => "" 
    jdbc_driver_library => "C:\Users\curUser\Desktop\mysql-connector-java-5.1.42\mysql-connector-java-5.1.42-bin.jar" 
    jdbc_driver_class => "com.mysql.jdbc.Driver" 

    statement => "SELECT * FROM variants var" 
    } 
} 

output { 
elasticsearch { 
    hosts => "localhost:9200" 
    index => "search" 
    document_type => "variants" 
    document_id => "%{id}" 
    } 
} 

Hinweis: Ich möchte logstash verwenden nur Daten zu importieren, um Elasticsearch. Dies ist für einen Online-Shop, also muss ich einige Analysatoren auf den Feldern verwenden

Antwort

0

Ich habe die Dokumentation des ES-Plugins für LogStash durchgesehen - nicht sicher, ob dies möglich ist.

Sie können jedoch die Indexzuordnung vor dem Ausführen von LogStash festlegen. Sie können, indem Sie die Indexabbildung mit cURL so zu tun, oder vielleicht ist es eine Möglichkeit, diese HTTP-Anforderung mit LogStash

Siehe https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html und https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html

+0

ich bereits der Dokumentation gelesen habe, auszuführen und kam zu dem gleichen Ergebnis. Wenn ja, weiß ich, wie man das Index-Mapping mit curl einsetzt, aber was ist mit den verschachtelten Feldern? Hast du irgendeine Idee? Simple "innere join" – RoyRobsen

+0

nicht funktioniert, dann Sie so etwas wie ' Filter { mutieren { Umbenennungs => { "columnToNest"=> "[ebenen1] [Level2]"}} } ' verwenden könnte – aclokay

Verwandte Themen