TreasureData Command Line Interfaceのインストール


はじめに

TreasureDataのコマンドラインインターフェース(以降CLI)のインストール方法をまとめておこうと思う。
TreasureData ToolBeltとも呼ばれるけど、どちらが正しいかは分かっていない。。。

Rubygemsで一発でインストールできるけど、Rubyのバージョンが1.9以上じゃないと動かないのでその辺も含めて記録しておく。

以下環境情報。

  • CentOS: 6.5
  • あるクラウド事業者のテンプレートで起動直後の状態

以下前提条件

  • TreasureDataのアカウントを持っている。

Rbenv + Ruby 環境の構築

RbenvはRubyの複数バージョンをインストールして、rbenvコマンドで自由に切り替えることができるので便利。
ここではRbenv環境にrubyをインストールする手順を記載しています。

この辺は既存の記事がもう紹介してくれてるけど、ここでも記載しておく。

まずはsshなりでサーバにログインして、rubyのバージョンを確認する。

confirm_ruby
$ ruby --version
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
$

rubyのversionが1.9以上なら本章の以降の手順は必要ない。
この章が大部分を占めているけど。。。

以降で必要になるパッケージをインストールする。

install
$ sudo yum install gcc make openssl openssl-devel

上記のパッケージが入っているならば上記の手順は不要。
次にrbenv環境構築をサーバにダウンロード。

rbenv
$ cd /usr/local/
$ git clone git://github.com/sstephenson/rbenv.git rbenv
$ mkdir -p rbenv/shims rbenv/versions
$ groupadd rbenv
$ chgrp -R rbenv rbenv/
$ chmod -R g+rwxXs rbenv
$ git clone git://github.com/sstephenson/ruby-build.git rbenv/ruby-build
$ cd rbenv/ruby-build
$ sudo ./install.sh

次にログイン時に自動でPathが設定されるように以下のファイルを作成。

/etc/profile.d/rbenv.sh
export RBENV_ROOT="/usr/local/rbenv"
export PATH="/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"

アクセス権限の変更。

chmod
$ chmod 755 /etc/profile.d/rbenv.sh
$ . /etc/profile.d/rbenv.sh # 設定反映
$ rbenv install --list
...
  2.1.0
  2.1.1
  2.1.2
  2.1.3
  2.2.0-dev
  2.2.0-preview1
...

最新の安定版のrubyのversionは2.1.3らしいので、2.1.3をインストールする。

ruby_install
$ rbenv install -v 2.1.3

結構時間がかかります、しばしお待ちを。
インストールが終わったら以下のコマンドでrubyのversionを2.1.3に変更します。

change_ruby_version
$ rbenv versions
* system (set by /usr/local/rbenv/version)
  2.1.3
$ rbenv global 2.1.3
$ rbenv versions
  system
* 2.1.3 (set by /usr/local/rbenv/version)
$ ruby --version
ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]
$

これでRubyの最新化ができました。

TreasureData CLIのインストール

Rubyのパッケージ管理ツールRubyGemsは既にインストール済みなので、以下のコマンドでCLIツールをインストールする。

cli_install
$ gem install td

これも結構時間がかかる。
/usr/local/rbenv/shims/tdにインストールされるはずだけど、たまに反映されていないのでそのときはログアウト、ログインしてください。

td_version
$ td --version
0.11.4
$

これでCLIツールがインストールされました。

簡単に使ってみる

ログインしてみる。
今回は??版TreasureDataにログインする。

td_login
$ export TD_API_SERVER=https://ybi.jp-east.idcfcloud.com
$ td account -f
Enter your Treasure Data credentials.
Email: ${email_address}
Password (typing will be hidden): 
Authenticated successfully.
Use 'td db:create <db_name>' to create a database.
$

EmailとPasswordにTreasureDataのアカウント情報を入力する。

DB, Talbeの作成。

create_db
$ td db:create ${db_name}
$ td table:create ${db_name} ${table_name}

データアップロード。

data_upload
$ td import:auto --format tsv --auto-create ${db_name}.${table_name} --parallel 8 --prepare-parallel 8 --column-header -o /ext4/td_out/ --time-column 'time' --time-format "%Y-%m-%d %H:%M:%S" ${import_data}.tsv

以下アップロードファイル内容。
一行目がカラム名で以降がデータ行。

${import_data}.tsv
host    path    method  referer code    agent   time
48.45.67.130    /category/computers GET -   200 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1    2013-05-14 16:53:22
124.192.166.98  /search/?c=Giftcards    POST    /category/sports    200 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)  2013-05-14 16:53:22.010000
176.183.137.115 /category/finance   GET -   200 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)    2013-05-14 16:53:22.020000
192.183.92.55   /item/software/4777 GET -   200 Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 2013-05-14 16:53:22.030000
48.66.40.214    /category/networking    GET -   200 Mozilla/5.0 (Windows NT 6.0; rv:10.0.1) Gecko/20100101 Firefox/10.0.1   2013-05-14 16:53:22.040000
144.132.188.212 /item/electronics/2649  GET /item/electronics/1996  200 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 2013-05-14 16:53:22.050000
36.171.84.59    /category/finance   GET -   200 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11 2013-05-14 16:53:22.060000
204.204.116.114 /item/toys/3282 GET -   200 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1    2013-05-14 16:53:22.070000
100.27.141.84   /item/software/2012 GET /category/cameras?from=0    200 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1    2013-05-14 16:53:22.080000

おしまい。