Skip to content

TD Toolbelt クイックスタート

TD Toolbelt を使用すると、コマンドラインインターフェースから Treasure Data 製品のほとんどの機能にアクセスできます。以下の操作が可能です:

  • データベースとテーブルの作成
  • テーブルへのデータのインポートおよびエクスポート
  • テーブルスキーマの設定と変更
  • クエリの実行
  • ジョブステータスの監視
  • ジョブ結果の表示とダウンロード
  • スケジュールクエリの作成、その他多数

インストール

TD Toolbelt は、対象環境に最適な方法で配布されています:

  • Windows と Mac OSX は、Toolbelt と呼ばれるパッケージ化されたインストーラーとして配布されます。
  • Linux(Ubuntu、RedHat、CentOS)は、Fluentd Package(fluentd)パッケージの一部として配布されます。
  • Ruby の 'gem' モジュールは、次のコマンドを使用して任意のシステムにインストールできます:gem install td

Ruby に慣れていて、すでにシステムにインストールされている場合は、Ruby オプションを使用してください。

Ruby Gem

Ruby に慣れている場合は、CLI を使用して td を gem としてインストールおよび管理できます。TD Toolbelt とその依存関係をインストールするには、次のコマンドを実行します:

gem install td

rbenvrvm などの Ruby 環境マネージャーを使用している場合、TD Toolbelt の異なるバージョンが各プロジェクト、環境、または使用中の Ruby バージョン内に限定される可能性があり、td gem を複数回インストールする必要がある場合があります。詳細については、以下の「アップグレード、Ruby Gem」セクションを参照してください。

Windows

Windows マシンに Ruby がインストールされていることを確認してください。Ruby インストーラーは https://rubyinstaller.org/ からダウンロードできます。

Ruby をインストールした後、コマンドプロンプトを開いて TD Toolbelt gem をインストールします:

gem install td

Mac OSX

Homebrew 経由、または rbenvrvm などの Ruby バージョンマネージャー経由で Ruby をインストールできます。また、Mac OSX にプリインストールされているシステム Ruby を使用することもできます。

選択した Ruby バージョンをインストールした後、コマンドプロンプトを開いて TD Toolbelt gem をインストールします:

gem install td

Linux

Info

2023年のリブランディング以前、fluent-package は td-agent としてリリースされていました。Treasure Data は以前のバージョンの td-agent をサポートしていました。しかし、新しいバージョンの td-agent と fluent-package は現在 Fluentd コミュニティの下でサポートされています。そのため、fluent-package 自体は Treasure Data によってサポートおよび保守されていません。自己責任でご使用ください。Treasure Data はパッケージではなく、td コマンドのサポートを引き続き提供します。

TD Toolbelt は Linux 上で td-agent パッケージおよび fluent-package パッケージの一部として配布されています。

このパッケージには、Linux システム上で td-agent と td を CLI で実行するために必要なすべての依存関係が含まれています。これには、これらのツールが動作することが保証されている Ruby のバージョンも含まれます。

Red Hat

fluent-package 6 (LTS)
curl -fsSL https://fluentd.cdn.cncf.io/sh/install-redhat-fluent-package6-lts.sh | sh

Amazon Linux

fluent-package 6 (LTS)
curl -fsSL https://fluentd.cdn.cncf.io/sh/install-amazon2023-fluent-package6-lts.sh | sh

インストールの確認

ターミナルを開き、td コマンドが使用可能であることを確認します。

td --version

アップデート

Mac OSX または Windows

TD Toolbelt ウェブサイトから Mac OSX 用の TD Toolbelt インストーラーパッケージ(.pkg ファイル)または Windows 用の Toolbelt インストーラー実行ファイル(64ビットのみサポート)をダウンロードした場合、Toolbelt は自動的に更新されます。

CLI からコマンドが呼び出されるたびに、プログラムは新しいバージョンが存在するかどうかを確認し、バックグラウンドで更新されたバージョンをダウンロードしてインストールします。TD Toolbelt は1時間ごとに更新されたバージョンをチェックします。ユーザーは次のコマンドでいつでも更新をトリガーできます:

td update

自動更新機能は v0.10.77 以降で利用可能です。それ以前のバージョンを実行している場合(td --version コマンドでバージョンを確認)、Treasure Data Toolbelt から最新のパッケージをインストールして、できるだけ早くアップグレードしてください。

td update コマンドは、以下の他のインストール方法のプレースホルダーです。

Ruby Gem

TD Toolbelt を gem としてインストールした場合、定期的に新しいバージョンを確認する必要があります。100% の後方互換性を維持するよう努めているため、常に最新バージョンに更新することをお勧めします。gem コマンドを使用して更新するには、次のコマンドを実行します:

gem update td

rbenvrvm などの Ruby 環境マネージャーを使用している場合、TD Toolbelt の異なるバージョンが各プロジェクト、環境、または Ruby バージョン内に限定される可能性があります。

また、gem install がカスタマイズされた GEM_HOME 環境変数で呼び出された場合、または bundler の bundle install--path オプションで呼び出された場合、インストールされた gem はプロジェクトにローカル(通常はプロジェクトのフォルダー構造内にインストール)であり、システム全体でグローバルにインストールされて利用可能ではありません。

使用中の td gem のバージョンを再確認するには、次のコマンドを実行します:

gem list | grep -E '^td '
td (0.11.2, 0.10.99, 0.10.97)

状況に応じて、gem をラッパーに置き換える必要がある場合があります。例: /usr/bin/ruby/toolbelt/bin/gem または /usr/lib/fluent/ruby/bin/fluent-gem

基本的な使い方

td コマンドには、td help <command> で使用できる複数のヘルプサブメニューがあります。

例:

td help db
td help table
td help job

API キーの設定

最初に行うことは、API キーを設定することです。マスター API キーを使用してください。

td apikey:set YOUR_API_KEY

API キーが正しく設定されていることを確認するには、次のコマンドを実行します。

td apikey

データベースの一覧表示

アクセス権のあるアカウント上のすべてのデータベースを一覧表示するには、次のコマンドを実行します。

td db:list
+------------------------------------+--------+
| Name                               | Count  |
+------------------------------------+--------+
| database_1                         | 10     |
| database_2                         | 0      |
| database_3                         | 1000   |
+------------------------------------+--------+
3 rows in set

データベース内のテーブルの一覧表示

データベースの一覧が取得できたので、データベース名で簡単にデータベース内のすべてのテーブルを検索できます。

td table:list database_1
+---------------+--------------+------+-------+--------+---------------------------+---------------------------+---------------------------------------------+
| Database      | Table        | Type | Count | Size   | Last import               | Last log timestamp        | Schema                                      |
+---------------+--------------+------+-------+--------+---------------------------+---------------------------+---------------------------------------------+
| database_1    | table_1      | log  | 1     | 0.0 GB | YYYY-MM-DD HH:MM:SS +0000 | YYYY-MM-DD HH:MM:SS +0000 | param1:string, param2:string                |
| database_1    | table_2      | log  | 11    | 0.0 GB | YYYY-MM-DD HH:MM:SS +0000 | YYYY-MM-DD HH:MM:SS +0000 | param1:string, param2:string, param3:string |
+---------------+--------------+------+-------+--------+---------------------------+---------------------------+---------------------------------------------+
2 rows in set

クエリの実行

次に、データベース database_1 のテーブル table_1 内のすべてのデータを見てみましょう。SQL クエリコマンドを発行してこれを行います。

td query -d database_1 -w "SELECT * from table_1"
Job 1224749766 is queued.
Use 'td job:show 1224749766' to show the status.
  Hive history file=/mnt/hive/tmp/12345/hive_job_log_dff88b37-a800-4df6-a2a3-26e53e83e047_1845878157.txt
  Job is running in resource pool: hadoop2 with priority: default
  **
  ** WARNING: time index filtering is not set on database_name.table_name!
  ** This query could be very slow as a result.
  ** If you used 'unix_timestamp' please modify your query to use TD_SCHEDULED_TIME instead
  **   or rewrite the condition using TD_TIME_RANGE
  ** https://docs.treasuredata.com/products/customer-data-platform/data-workbench/queries/hive/performance_tuning
  **
  OK
  MapReduce time taken: 0.651 seconds
  Fetching results...
  Total CPU Time: 0
  Total Records: 11
  Time taken: 2.368 seconds
  Debug log = debug_1224749766_1638717494786.gz
Status      : success
Result      :
WARNING: the job result is being downloaded...  182 B /  182 B : ================= 100 =================
+--------+--------+--------+-----------------------------------------------------------------------------+------------+
| param1 | param2 | param3 | v                                                                           | time       |
+--------+--------+--------+-----------------------------------------------------------------------------+------------+
| value1 | value2 | null   | {"param1":"value1","param2":"value2","time":"1623230494"}                   | 1623230494 |
| value1 | value2 | null   | {"param1":"value1","param2":"value2","time":"1623229900"}                   | 1623229900 |
| value1 | value2 | null   | {"param1":"value1","param2":"value2","time":"1623229819"}                   | 1623229819 |
+--------+--------+--------+-----------------------------------------------------------------------------+------------+
3 rows in set

クエリの結果はコマンドラインに表示されます。td job:show JOB_ID を実行するか、ウェブコンソールで表示して結果を確認することもできます。

ジョブの管理

次のコマンドを実行して、最近のすべてのジョブを表示できます。

td job:list
| JobID      | Status  | Start                     | Elapsed     | CPUTime           | ResultSize | Priority | Result | Type | Database      | Query                        | Duration |
+------------+---------+---------------------------+-------------+-------------------+------------+----------+--------+------+---------------+------------------------------+----------+
+------------+---------+---------------------------+-------------+-------------------+------------+----------+--------+------+---------------+------------------------------+----------+
| 0123456789 | success | YYYY-MM-DD HH:MM:SS +0000 |         12s |                   | 182 B      | NORMAL   |        | hive | database_name | select * from table_1 ... | 00:00:12 |
+------------+---------+---------------------------+-------------+-------------------+------------+----------+--------+------+---------------+------------------------------+----------+
1 rows in set

さらに、予想以上に時間がかかっているジョブがある場合は、次のコマンドを実行して簡単に終了できます。

td job:kill JOB_ID

参考情報