ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

データストアのデータをCSV出力してみる

こちらの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で分析すると言ったこともできます。アプリをより磨き上げるためにお役立てください!

ncmb-ruby-client | RubyGems.org | your community gem host

f:id:mbaasblog:20180927114437p:plain