FlyData Herokuを利用することで、HerokuのログをAmazon Redshiftへアップロードすることができます。HerokuアプリケーションからJSONフォーマットのデータをアプリケーションログへ出力すると、FlyData Herokuはそれらを抽出し、Redshiftクラスタへアップロードします。

FlyData gemを利用することで、RubyのオブジェクトからFlyData用のJSONを生成し、Herokuのアプリケーションログへと出力できます。FlyData Heroku用のFlyData gemをインストールするには、FlyData Herokuの設定を参照ください。

FlyData Herokuでは、Redshift側に存在しないテーブルを指定してデータを出力した場合、自動でテーブルを作成します。

参考例

例1:連想配列(hash)データを転送する

Amazon Redshiftの`user_activities`テーブルに、hashデータが転送されます。

require 'flydata'

FlyData.send_to('user_activities', {:user_id => 293298, :action => 'signin' })

例2:配列データを転送する

3つのJSONレコードがAmazon Redshiftの`user_activities`テーブルへと転送されます。

activity_log = [ {:user_id => 293298, :action => 'signin' },
               {:user_id => 293298, :action => 'purchase', :item_id => 83 },
               {:user_id => 382990, :action => 'signup' }
    ]

FlyData.send_to('user_activities', activity_log)

例3:ActiveRecordオブジェクトを転送する

FlyData Herokuは`user`オブジェクトから値を抽出し、JSONデータを生成します。その後Redshiftクラスタへデータを転送します。

user = User.find(293298)
user.send_to_flydata

例4:putsを利用したログ出力

putsにて出力されたJSONデータもFlyDataは転送することができます。

require 'json'

puts({"items_bought"=>[
    {"id"=>19, "user_id"=>2, "item"=>"orange", "quantity"=>6},
    {"id"=>19, "user_id"=>2, "item"=>"banana", "quantity"=>12}]}.to_json)

Redshiftクラスタのデータを確認する方法については、Amazon Redshiftへの接続を参照ください。

Redshiftへのデータ移行を自動化しませんか?

FlyDataを活用してリアルタイムでのビッグデータ分析を実現しましょう!