2017-08-03 20 views
2

私のMySQLデータベースからlogstashを使用してelasticsearchにデータをインポートしたいと思います。私はすでにカスタムクエリ結果をインポートすることができますが、私はlogstashによって作成されているインデックスのマッピング/設定を定義することができます。また、1対多の関係でデータをインポートする方法もわかりません。logstashを使用してmysqlからelasticsearchにデータをインポート

これは、これまでのところ、私のlogstash.confです:

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}" 
    } 
} 

注:私はelasticsearchするだけでデータをインポートするためにlogstash使用したいです。これはオンラインショップのため、フィールド上にいくつかのアナライザを使用する必要があります

答えて

0

これは可能かどうかわからないLogStashのESプラグインのドキュメントを調べました。

ただし、インデックスマッピングを設定してからLogStashを実行することができます。あなたはcURLのでインデックスマッピングを置くことによってそれを行うことができ、または多分LogStash

と、このHTTPリクエストを実行するための方法がありますhttps://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.htmlhttps://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html

+0

は、私はすでにマニュアルを読み、同じ結果に来ている参照してください。もしそうなら、私はカールでインデックスマッピングを配置する方法を知っていますが、ネストされたフィールドはどうですか?あなたは何か考えていますか?そして、あなたは フィルタ{ のmutate { 改名=> { "columnToNest" => "[レベル1] [レベル2]"} } } ''のようなものを使用することができ – RoyRobsen

+0

動作しないシンプルな "内部ジョイン" – aclokay

関連する問題