用elasticsearch将Rails的数据粗略可视化
由于想要以最简单的方式使用elasticsearch来可视化Rails的数据,所以我随便编写了一个Ruby脚本。
只需使用curl将Rails的SQLite数据简单地注册到elasticsearch中。
由于使用模型的ID进行XDELETE然后XPUT,所以确保数据被更新为最新的。
当我们想要认真做某件事时,例如,可以根据需要来修正和使用rest-client等工具。
实际上,我希望能够通过elasticsearch方便地多方面地查看我的支出。因此,我只是希望从Rails中能够方便地注册数据,而不必每次都发送JSON。这完全是为了自己的原型,不需要太过复杂。
#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}
}