はじめに
TreasureData(以降TDとする)を利用する機会があり、TDに保存されているジョブに使用されているクエリを定期的に更新したいという要望があったためtdtoolbeltを用いトライしてみた記録になります。
TD Toolbelt
TD Toolbeltを使用すると、コマンドラインインターフェイスを使用してTreasure Data機能にアクセスできます。TD Toolbelt WindowsおよびMacオペレーティングシステムでのみ使用できます。(引用:公式サイト)
使ってみた
今回はテスト用にローカル環境から更新してみることにし、実行環境はDocker環境-ubuntuで用意した
1,rubyのインストール
# git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '/root/.rbenv'...
# git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/root/.rbenv/plugins/ruby-build'...
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' > ~/.bashrc
root@7bb5a4d5c672:/usr/src# echo 'eval "$(rbenv init -)"' > ~/.bashrc
root@7bb5a4d5c672:/usr/src# source ~/.bashrc
# rbenv install -l
2.6.8
2.7.4
3.0.2
jruby-9.2.19.0
Downloading ruby-2.7.4.tar.bz2...
# rbenv global 2.7.4
# rbenv version
2.7.4 (set by /root/.rbenv/version)
2,tdコマンドをインストール
# gem install td
Fetching fluent-logger-0.9.0.gem
Fetching hirb-0.7.3.gem
# which td
/root/.rbenv/shims/td
# td --version
0.16.9
3,ApiKeyなどの登録
# $ td apikey:set XXXXXXXXXXXXXXXXXXXXXXXXX #apikey登録
# less ~/.td/td.conf #KEYはここに
# td
usage: td [options] COMMAND [args]
options:
-c, --config PATH path to the configuration file (default: ~/.td/td.conf)
-k, --apikey KEY use this API key instead of reading the config file
-e, --endpoint API_SERVER specify the URL for API server to use (default: https://api.treasuredata.com).
The URL must contain a scheme (http:// or https:// prefix) to be valid.
Valid IPv4 addresses are accepted as well in place of the host name.
--import-endpoint API_IMPORT_SERVER
ここまででTDコマンドの実行準備完了です。
あとは定期的に下記コマンドを実行するようにプログラムを組むだけです
td sched:update <job_name> -q <query>
おわりに
あまり触れることのないTDですが、コマンドラインからの実行も簡単ですし、コマンドの種類も充実しているので、目的の遂行はスムーズに果たせたと思います