Treasure Dataにデータをインポートするプログラム(Rails編)

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

今回はこちらを参考にRailsアプリケーションからTreasure Dataへデータをインポートするプログラムを作成してみましょう。内容は5月に紹介しましたTreasure Dataのデータを利用するプログラム(Ruby編)の復習にもなりますのでぜひチャレンジしてみてください。

環境

CentOS release 6.4 (Final)

事前準備

Railsアプリケーションを新規作成

$ rails new sample1
$ cd sample1
$ echo "gem 'execjs'" >> Gemfile
$ echo "gem 'therubyracer'" >> Gemfile
$ rails server (起動)

起動確認

ブラウザでhttps://localhost:3000/にアクセスして、下記のような画面が出たら成功です。確認したら、Ctrl+Cでいったん終了させてください。

A

Treasure Dataの設定

APIキーの取得

$ td apikey:show

/etc/td-agent/td-agent.confを修正

# Treasure Data Input and Output
<source>
  type forward
  port 24224
</source>
<match td.*.*>
  type tdlog
  apikey YOUR_API_KEY
  auto_create_table
  buffer_type file
  buffer_path /var/log/td-agent/buffer/td
  use_ssl true
  flush_interval 30s
</match>

td-agentを再起動し、tdの設定をRailsアプリケーションに設定し、scaffoldでコードを自動生成する。

$ sudo /etc/init.d/td-agent start
$ cd ~/sample1/
$ echo "gem 'td', '~> 0.10.6'">>Gemfile
$ bundle install
$ rails generate scaffold person name:string
$ rake db:migrate RAILS_ENV=development
$ rails s

app/controllers/people_controller.rb にログ送信部分の書き込み(赤字の部分を追加してください。)

  # POST /people
  # POST /people.json
  def create
    @person = Person.new(person_params)
    send_td(@person.name)
    respond_to do |format|
    ・・・・
  end
 
  private
  # Treasure Dataへデータを送信
 def send_td(name)
      time = Time.now
      TD.event.post('people',{:name=>name,:time=>time})
  end

実行

以下の手順で確認します。

  1. https://localhost:3000/peopleにアクセスする
  2. New Personをクリック
  3. Nameに何か入力して、Create Personをクリック
  4. 1分ほど待つ
  5. 端末で確認

B

C

D

E

F

Ruby,Java,JDBC,RailsとTreasure Dataへのデータ送信方法を紹介してきましたが、これからもさまざまな言語やアプリケーションからのデータ送信方法を紹介していきますのでお楽しみに。

アバター画像
About Kai 36 Articles
マーケティング業務を担当。セミナー、勉強会の企画運営、情報発信を行う。API事業を中心に、リード獲得、ナーチャリングに注力。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる