# TD Toolbelt クイックスタート TD Toolbelt を使用すると、コマンドラインインターフェースから Treasure Data 製品のほとんどの機能にアクセスできます。以下の操作が可能です: + データベースとテーブルの作成 + テーブルへのデータのインポートおよびエクスポート + テーブルスキーマの設定と変更 + クエリの実行 + ジョブステータスの監視 + ジョブ結果の表示とダウンロード + スケジュールクエリの作成、その他多数 ## インストール OSX Version 10.8+ Windows 64-bit only Linux All versions Ruby `gem install td` 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 とその依存関係をインストールするには、次のコマンドを実行します: ```shell gem install td ``` `rbenv` や `rvm` などの Ruby 環境マネージャーを使用している場合、TD Toolbelt の異なるバージョンが各プロジェクト、環境、または使用中の Ruby バージョン内に限定される可能性があり、`td` gem を複数回インストールする必要がある場合があります。詳細については、以下の「アップグレード、Ruby Gem」セクションを参照してください。 ### Windows Windows マシンに Ruby がインストールされていることを確認してください。Ruby インストーラーは https://rubyinstaller.org/ からダウンロードできます。 Ruby をインストールした後、コマンドプロンプトを開いて TD Toolbelt gem をインストールします: ```shell gem install td ``` ### Mac OSX [Homebrew](https://formulae.brew.sh/formula/ruby) 経由、または `rbenv` や `rvm` などの Ruby バージョンマネージャー経由で Ruby をインストールできます。また、Mac OSX にプリインストールされているシステム Ruby を使用することもできます。 選択した Ruby バージョンをインストールした後、コマンドプロンプトを開いて TD Toolbelt gem をインストールします: ```shell 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 のバージョンも含まれます。 RPM Package (Red Hat Linux/Amazon Linux) #### Red Hat ```bash fluent-package 6 (LTS) curl -fsSL https://fluentd.cdn.cncf.io/sh/install-redhat-fluent-package6-lts.sh | sh ``` #### Amazon Linux ```bash fluent-package 6 (LTS) curl -fsSL https://fluentd.cdn.cncf.io/sh/install-amazon2023-fluent-package6-lts.sh | sh ``` DEB Package (Debian/Ubuntu) #### Ubuntu Noble ```bash fluent-package 6 (LTS) curl -fsSL https://fluentd.cdn.cncf.io/sh/install-ubuntu-noble-fluent-package6-lts.sh | sh ``` #### Ubuntu Jammy ```bash fluent-package 6 (LTS) curl -fsSL https://fluentd.cdn.cncf.io/sh/install-ubuntu-jammy-fluent-package6-lts.sh | sh ``` #### Debian Trixie ```bash fluent-package 6 (LTS) curl -fsSL https://fluentd.cdn.cncf.io/sh/install-debian-trixie-fluent-package6-lts.sh | sh ``` #### Debian Bookworm ```bash fluent-package 6 (LTS) curl -fsSL https://fluentd.cdn.cncf.io/sh/install-debian-bookworm-fluent-package6-lts.sh | sh ``` ## インストールの確認 ターミナルを開き、`td` コマンドが使用可能であることを確認します。 ```shell td --version ``` ## アップデート ### Mac OSX または Windows TD Toolbelt ウェブサイトから Mac OSX 用の TD Toolbelt インストーラーパッケージ(.pkg ファイル)または Windows 用の Toolbelt インストーラー実行ファイル(64ビットのみサポート)をダウンロードした場合、Toolbelt は自動的に更新されます。 CLI からコマンドが呼び出されるたびに、プログラムは新しいバージョンが存在するかどうかを確認し、バックグラウンドで更新されたバージョンをダウンロードしてインストールします。TD Toolbelt は1時間ごとに更新されたバージョンをチェックします。ユーザーは次のコマンドでいつでも更新をトリガーできます: ```shell td update ``` 自動更新機能は v0.10.77 以降で利用可能です。それ以前のバージョンを実行している場合(`td --version` コマンドでバージョンを確認)、Treasure Data Toolbelt から最新のパッケージをインストールして、できるだけ早くアップグレードしてください。 `td update` コマンドは、以下の他のインストール方法のプレースホルダーです。 ### Ruby Gem TD Toolbelt を gem としてインストールした場合、定期的に新しいバージョンを確認する必要があります。100% の後方互換性を維持するよう努めているため、常に最新バージョンに更新することをお勧めします。gem コマンドを使用して更新するには、次のコマンドを実行します: ```shell gem update td ``` `rbenv` や `rvm` などの Ruby 環境マネージャーを使用している場合、TD Toolbelt の異なるバージョンが各プロジェクト、環境、または Ruby バージョン内に限定される可能性があります。 また、`gem install` がカスタマイズされた `GEM_HOME` 環境変数で呼び出された場合、または bundler の `bundle install` が `--path` オプションで呼び出された場合、インストールされた gem はプロジェクトにローカル(通常はプロジェクトのフォルダー構造内にインストール)であり、システム全体でグローバルにインストールされて利用可能ではありません。 使用中の td gem のバージョンを再確認するには、次のコマンドを実行します: ```shell 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 ` で使用できる複数のヘルプサブメニューがあります。 例: ```shell td help db td help table td help job ``` ### API キーの設定 最初に行うことは、API キーを設定することです。**マスター** API キーを使用してください。 ```shell td apikey:set YOUR_API_KEY ``` API キーが正しく設定されていることを確認するには、次のコマンドを実行します。 ```shell td apikey ``` ### データベースの一覧表示 アクセス権のあるアカウント上のすべてのデータベースを一覧表示するには、次のコマンドを実行します。 ```bash td db:list ``` ```bash +------------------------------------+--------+ | Name | Count | +------------------------------------+--------+ | database_1 | 10 | | database_2 | 0 | | database_3 | 1000 | +------------------------------------+--------+ 3 rows in set ``` ### データベース内のテーブルの一覧表示 データベースの一覧が取得できたので、データベース名で簡単にデータベース内のすべてのテーブルを検索できます。 ```bash td table:list database_1 ``` ```bash +---------------+--------------+------+-------+--------+---------------------------+---------------------------+---------------------------------------------+ | 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 クエリコマンドを発行してこれを行います。 ```bash td query -d database_1 -w "SELECT * from table_1" ``` ```bash 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` を実行するか、ウェブコンソールで表示して結果を確認することもできます。 ### ジョブの管理 次のコマンドを実行して、最近のすべてのジョブを表示できます。 ```bash td job:list ``` ```bash | 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 ``` さらに、予想以上に時間がかかっているジョブがある場合は、次のコマンドを実行して簡単に終了できます。 ```bash td job:kill JOB_ID ``` # 参考情報 - [GitHub ソース](https://github.com/treasure-data/td) - [プロキシアクセス](/ja/tools/cli-and-sdks/proxy-access) - プロキシ経由で Toolbelt を使用する方法 - [API キー検索順序](/ja/tools/cli-and-sdks/search-order) - TD Toolbelt が API キーと API サーバーを検索する順序。同じマシン上の複数のプロジェクトで複数のキーを使用する場合に役立ちます。 - [API リファレンス](/ja/tools/cli-and-sdks/api) - [TD Toolbelt ウェブサイト](https://toolbelt.treasuredata.com/) - Toolbelt をダウンロードするための元のソース。常に最新の状態が保証されています。 - [コマンドラインからのデータのクエリとインポート](/ja/tools/cli-and-sdks/querying-and-importing-data-to-treasure-data-from-the-command-line) - [TD Toolbelt マニュアルページへのアクセス](/ja/tools/cli-and-sdks/accessing-the-td-toolbelt-man-pages)