TreasureData Command Line Interfaceのインストール


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

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

以下環境情報。

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

以下前提条件

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

## Rbenv + Ruby 環境の構築

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

この辺は[既存の記事](http://qiita.com/inouet/items/478f4228dbbcd442bfe8 既存の記事)がもう紹介してくれてるけど、ここでも記載しておく。

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

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

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

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

```yum:install
$ sudo yum install gcc make openssl openssl-devel
```

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

```env: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`が設定されるように以下のファイルを作成。

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

アクセス権限の変更。

```cmd: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をインストールする。

```cmd:ruby_install
$ rbenv install -v 2.1.3
```

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

```cmd: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ツールをインストールする。

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

```cmd:td_version
$ td --version
0.11.4
$
```

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

## 簡単に使ってみる

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

```cmd: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の作成。

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

データアップロード。

```cmd: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
```

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

```file:${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
```

おしまい。