notebook

都内でWEB系エンジニアやってます。

embulkでmysqlからelasticsearchに送ってグラフ化

以前embulkでCSVからelasticsearchへというのをやってみました

サービスのデータからグラフ作成したいとかそういった場合に、MySQLからデータ取ってきてelasticsearch+kibanaですぐ確認できるよねっていうことを思いついたためやってみた

embulkのインストール

  • 下記参照

embulkでelasticsearchへ過去ログを入れ込む

pluginのインストール

embulk gem install embulk-input-mysql

設定

  • config.yml
in:
  type: mysql
  host: localhost
  user: user
  password: ""
  database: service
  query: |
    SELECT
      date,
      SUM(c),
      SUM(a)
    FROM report
    GROUP BY
      date

exec: {}
out:
  type: elasticsearch
  nodes:
  - {host: 192.168.20.20, port: 9300}
  cluster_name: dev
  index: report
  index_type: production

「query」でjoin普通にクエリ書けるので複雑なSQLでも特に問題ない模様

今回はサービスの売り上げとかそこらへんの長期的推移を見れたらなってところで、やってみました。

グループ化を細かくしたりしたら簡単な分析とかはできそう

cronで定期的にデータ入れるようにしておけばすぐ見れるし、便利に使えそうなので、しばらく入れてみようかなと思います

わざわざデータからグラフを描画するところをコード書いたりしなくていいのがお手軽でいいですね

f:id:swfz:20150707032120p:plain