Treasure Data - Support Engineering Team blog

トレジャーデータのサポートエンジニアリングチームのブログです。

td-toolbeltチュートリアル ちょっとした便利な使い方

こんにちは、Treasure Data サポートの大村です。

今回はすこし横道?にそれて、複数アカウントでのtd-toolbeltの便利な使い方についてご紹介していきたいと思います。 Treasure Dataの環境をずっと同じユーザで使用つづける場合はtd accountコマンドでユーザID(メールアドレス)とパスワードを 登録するだけで特に問題はないかと思います。

しかし、複数アカウントを使い分ける場合、毎回、td accountとしてユーザを切り替えるのは非常に手間のかかる作業となってしまいます。そこで、apikeyや設定ファイルをコマンド起動時に指定することで簡単に切り替える方法をご紹介したいと思います。

  1. apikeyによる切り替え
  2. 設定ファイルによる切り替え

それぞれ、長所と短所がありますので使い分けてもらえるとよいかと思います。

apikeyによる切り替え

こちらは非常に簡単です。-kオプションによりapikeyを記述すればいいだけです。 例えば2ユーザが存在し、それぞれのapikeyが存在したとします。

ユーザID apikey
userA@example.com 123456/xxxxxxxxxxxxxx
userB@example.com 123456/yyyyyyyyyyyyyy

以下のようにクエリを発行するコマンドを実行すると上のコマンドの場合はuserAの権限で実行されます。 下のコマンドの場合はuserBの権限で実行されることになります。

> td -k 123456/xxxxxxxxxxxxxx query -w -d sample_datasets "select symbol, high, low from nasdaq limit 3"
   :
   :
3 rows in set

> td -k 123456/yyyyyyyyyyyyyy query -w -d sample_datasets "select symbol, high, low from nasdaq limit 3"
   :
   :
3 rows in set

このようにapikeyを変更することで実行ユーザを変更することができます。 また、エンドポイントの切り替えもコマンド実行時に可能です。-eオプションを使用することで対象TD環境のリージョンを変更できますので、usリージョン以外でユーザの切り替えを行うときは設定が必要になります。(td-toolbeltはデフォルトでusリージョンにアクセスします。)

> td -k 654321/zzzzzz -e https://api.treasuredata.co.jp query -w -d sample_datasets "select symbol, high, low from nasdaq limit 3"
   :
   :
3 rows in set

こちらの方法はアドホックにユーザを切り替えたいという時に便利なやり方になっています。

設定ファイルによる切り換え

apikeyによるユーザの切り替えはアドホックに1度だけというような場合には便利ですが、常時切り替えが必要な環境では毎回毎回、apikeyやendpointを指定するのは少々手間がかかります。 そこで設定ファイルにこれら情報を保存し、設定ファイルを指定してユーザを切り替えるオプション(-c)が存在します。 これを使用すればapikeyやendpointをだらだらと記述することなしにユーザを切り替えることができます。使用方法としては以下のような形になります。

> td -c xxxx.conf query ....
> td -c yyyy.conf query ....

ファイル名は拡張子も含めて自由につけて大丈夫です。このようにすることでより簡単にユーザの切り替えが可能になっています。 設定ファイルのフォーマットは以下のようになっています。

[account]
  user = userA@exapmple.com
  apikey = 123456/xxxxxxxxxxxxxx
  endpoint = https://api.treasuredata.com

ユーザID(メールアドレス)、apikey、endpointを上記のように指定し、ファイルとして保存しておくだけです。 どこに保存しても構わないのですが、デフォルトのtd.conf(td accountコマンドで設定した内容)が存在する場所に保存しておくとよいかもしれません。 私の場合、Macを使っているので~/.tdディレクトリ以下にtd.conf.usやtd.conf.tokyo...というような形で保存しておき、tdコマンド実行時に以下のようにして実行しています。

> td -c ~/.td/td.conf.tokyo query ....

まとめ

td-toolbeltで実行ユーザを変更する方法についてご紹介しました。こちらを使用することで複数のtd環境にログインする必要がある方は非常に簡単に切り替えることが可能になると思いますので、是非、活用してみてください。