こちらのRubyライブラリは非公式です。ご利用に際しては自己責任にてお願いします。
データストアはスキーマレスのデータベースで構造の変化に強いのが特徴です。スマートフォンアプリやWebアプリケーションの利用を通じて作られるデータをどんどん放り込んでおくことができます。
しかし日々の運用はそれで良いとしても、その蓄積されたデータを解析したいと思ったときに現状の管理画面ではそういった機能は提供していません。そこで一旦データをエクスポートした上で、分析するのが良さそうです。
そこで手前味噌のRubyライブラリを拡張してCSV出力に対応させてみました。
Rubyライブラリのインストール
インストールはRubygemsで行えます。
$ gem install ncmb-ruby-client
にて完了です。
テスト用スクリプト
実際の出力のためのコードは次のようになります。
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) $:.unshift(File.dirname(__FILE__)) require 'rubygems' require 'ncmb' require 'yaml' require 'csv' yaml = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'setting.yml')) NCMB.initialize application_key: yaml['application_key'], client_key: yaml['client_key'] @todo = NCMB::DataStore.new 'TestClass' @todos = @todo.limit(20).count(1).skip(0) csv_string = CSV.generate do |csv| csv << @todos.first.columns @todos.each_with_index do |todo, i| params = [] todo.columns.each do |name| params << todo.call(name) end csv << params end end puts csv_string
レスポンスを考えると一度に取得するのは1,000件程度で区切るのが良さそうです。データストアのクラス名は適宜置き換えてください。
$ ruby csv_output.rb > results.csv
出力される内容をresults.csvのようにして保存すると、次のようなファイルになります。
データストアのデータがエクスポートできれば、後はそれをGoogleのBigQueryに放り込んだり、Excelで分析すると言ったこともできます。アプリをより磨き上げるためにお役立てください!