Logstashのリレーショナル・データベース(mysqlまたはoracle)データのElasticSearchへの入力
1901 ワード
mysqlやoracleのデータをesにインポートしたい場合もありますが、いくつかの方法があります.ここでは、Logstashのjdbc-inputプラグインを利用して実現できる簡単な方法を紹介します.
公式ドキュメントリンクの表示:https://www.elastic.co/guide/en/logstash/2.1/plugins-inputs-jdbc.html
例えばmysqlのあるテーブルをESにインポートしたい場合、Logstashのconfは以下のように設定できます.
上記のスクリプトはテーブルをcharts.mr_history_analyのデータはESにインポートされ、インデックス名はlogstash-jdbc-mr-history
以下の点に注意してください.
1、mysql-connector-java-5.1.33.jarはmysqlの接続パッケージで、自分である経路に置いてjdbc_を使う必要がありますdriver_library指向でいいです.
2、last_run_metadata_pathパラメータは、前回の実行結果を記録し、ブレークポイント実行に使用します.
3、scheduleはcrontabのスケジューリングのように、例では1分ごとに実行されます.
4、statementは実行する文で、条件を加えることができる.しかし、Logstashのconfスクリプトは起動初期化であり、動的パラメータは受け入れられないため、起動時に文が固定されていることを理解する必要があります.
5、outputにdocument_があるid:プライマリ・キー・カラム名を入力して、リファクタリングに使用できます.
公式ドキュメントリンクの表示:https://www.elastic.co/guide/en/logstash/2.1/plugins-inputs-jdbc.html
例えばmysqlのあるテーブルをESにインポートしたい場合、Logstashのconfは以下のように設定できます.
input {
#this config:output must be es,because the data maybe twice or more ,es can duplicate #removal
jdbc {
jdbc_driver_library => "../lib/mysql-connector-java-5.1.33.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://10.130.3.211:3306/charts"
jdbc_user => "dbcharts"
jdbc_password=> "Abcd1234"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
last_run_metadata_path => "/diskb/logstashlog/.logstash_jdbc_last_run"
# statement_filepath => "jdbc.sql"
# parameters => { "favorite_artist" => "Beethoven" }
schedule => "* * * * *"
statement => "SELECT * from mr_history_analy"
}
}
output {
elasticsearch{
hosts => [ "10.130.2.200:9200","10.130.2.201:9200"]
flush_size=>50000
workers => 5
document_id => "%{jobid}"
index=> "logstash-jdbc-mr-history"
}
}
上記のスクリプトはテーブルをcharts.mr_history_analyのデータはESにインポートされ、インデックス名はlogstash-jdbc-mr-history
以下の点に注意してください.
1、mysql-connector-java-5.1.33.jarはmysqlの接続パッケージで、自分である経路に置いてjdbc_を使う必要がありますdriver_library指向でいいです.
2、last_run_metadata_pathパラメータは、前回の実行結果を記録し、ブレークポイント実行に使用します.
3、scheduleはcrontabのスケジューリングのように、例では1分ごとに実行されます.
4、statementは実行する文で、条件を加えることができる.しかし、Logstashのconfスクリプトは起動初期化であり、動的パラメータは受け入れられないため、起動時に文が固定されていることを理解する必要があります.
5、outputにdocument_があるid:プライマリ・キー・カラム名を入力して、リファクタリングに使用できます.