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 に慣れている場合は、CLI を使用して td を gem としてインストールおよび管理できます。TD Toolbelt とその依存関係をインストールするには、次のコマンドを実行します:
gem install tdrbenv や rvm などの Ruby 環境マネージャーを使用している場合、TD Toolbelt の異なるバージョンが各プロジェクト、環境、または使用中の Ruby バージョン内に限定される可能性があり、td gem を複数回インストールする必要がある場合があります。詳細については、以下の「アップグレード、Ruby Gem」セクションを参照してください。
Windows マシンに Ruby がインストールされていることを確認してください。Ruby インストーラーは https://rubyinstaller.org/ からダウンロードできます。
Ruby をインストールした後、コマンドプロンプトを開いて TD Toolbelt gem をインストールします:
gem install tdHomebrew 経由、または rbenv や rvm などの Ruby バージョンマネージャー経由で Ruby をインストールできます。また、Mac OSX にプリインストールされているシステム Ruby を使用することもできます。
選択した Ruby バージョンをインストールした後、コマンドプロンプトを開いて TD Toolbelt gem をインストールします:
gem install td2023年のリブランディング以前、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 のバージョンも含まれます。
ターミナルを開き、td コマンドが使用可能であることを確認します。
td --versionTD 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 コマンドは、以下の他のインストール方法のプレースホルダーです。
TD Toolbelt を gem としてインストールした場合、定期的に新しいバージョンを確認する必要があります。100% の後方互換性を維持するよう努めているため、常に最新バージョンに更新することをお勧めします。gem コマンドを使用して更新するには、次のコマンドを実行します:
gem update tdrbenv や rvm などの 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 キーを使用してください。
td apikey:set YOUR_API_KEYAPI キーが正しく設定されていることを確認するには、次のコマンドを実行します。
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- GitHub ソース
- プロキシアクセス - プロキシ経由で Toolbelt を使用する方法
- API キー検索順序 - TD Toolbelt が API キーと API サーバーを検索する順序。同じマシン上の複数のプロジェクトで複数のキーを使用する場合に役立ちます。
- API リファレンス
- TD Toolbelt ウェブサイト - Toolbelt をダウンロードするための元のソース。常に最新の状態が保証されています。
- コマンドラインからのデータのクエリとインポート
- TD Toolbelt マニュアルページへのアクセス