Railsのデータを雑にelasticsearchで可視化する
とにかく簡単にRailsのデータをelasticsearchで可視化したかったので、雑にRubyスクリプトを作成した。
RailsのSQLiteのデータを、curlで単純にelasticsearchに登録するだけ。 モデルのIDでXDELETEしてから、XPUTするので、一応最新のデータに更新される。
ちゃんとやりたい時は、例えば、rest-client使う等適宜修正して使う。
実は自分の支出をelasticsearchで手軽に多面的に見たかった。で、いちいちjson投げるのめんどいのでRailsからデータ登録できるようにしたかっただけ。完全に自分用のプロトタイプなので凝る必要なし。
#coding: utf-8 require "active_record" # データベースへの接続 ActiveRecord::Base.establish_connection( adapter: 'sqlite3', database: 'development.sqlite3' ) # モデルを定義 class Item < ActiveRecord::Base end # モデルの全データ取得 item=Item.all item.each{|i| # モデルを元にjsonを作成 data="'{\"item_name\":\"#{i.item_name}\",\"@timestamp\":\"#{i.item_date.strftime("%Y-%m-%d")}\"}'" # elasticsearchのURL。IDはモデルのIDを使う。 url="http://localhost:9200/hoge/fuga/#{i.id}" # elasticsearchの既存データを削除 command="curl -XDELETE #{url}" `#{command}` # elasticsearchにモデルのデータを登録 command="curl -XPUT #{url} -d #{data}" `#{command} }