TD Toolbelt リファレンス(非公式)


はじめに

Treasure Data(以降、TD)のcliであるtd toolbeltの使い方をまとめました。

お断り

間違いとか表記揺れとか嘘とか見つけたら都度修正します、サーセン。

td

全般的に使用できるオプション。

オプション 説明
-c or --config 設定ファイルへのパスを設定する。設定していない場合、~/.td/td.conf
-k or --apikey 設定ファイルを読まずに、-kオプションのAPIキーを使う。
-e or --endpoint 使用するAPIサーバーのURLを設定する。https://が含まれていないと無効。設定していない場合、USリージョンがデフォルトになる。
-h or --help ヘルプを出力する
--version td toolbeltのバージョンを出力する。
--insecure SSL証明書をverifyせずに実行する。

-h

tdコマンドのhelpを出力する。

% td -h

td -k -e

tdコマンドで東京リージョンとapikeyを設定して、TDコマンドを実行する。

% td -k XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -e https://api.treasuredata.co.jp user:list

td account

コマンド 説明 オプション
account アカウントを設定する。 -f, --force 現在のアカウント設定を上書きする。

td account

configファイルのパスを設定して、account設定する。

% td -c ~/.td/td_tokyo.conf account

configファイルのパスを設定して、APIサーバを設定する。現在のアカウント設定に上書きする。

td -c ~/.td/td_tokyo.conf -e https://api.treasuredata.co.jp account -f

td update

コマンド 説明
update td toolbeltをアップデートする。

td status

コマンド 説明
status ScheduleとJobの状況を出力する。

td apikey

コマンド 説明
apikey apikeyを出力する。
apikey:set apikeyをconfigファイルに設定する。

td apikey

apikeyを出力する。

% td apikey

Google SSOを使用している場合のtdコマンド設定についてのリンク

td server

コマンド 説明
server serverのステータスを出力する。

td help

コマンド 説明
help helpを出力する。

td db

コマンド 説明 オプション
db:list データベース内のテーブルのリストを出力する。 -f [tsv, csv, json or table] 出力形式を設定する。(tsv, csv, json, table[default])
db:show <database_name> データベースの情報を説明する。 -f [tsv, csv, json or table] 出力形式を設定する。(tsv, csv, json, table[default])
db:create <database_name> データベースを作成する。
db:delete <database_name> データベースを削除する。 -f, -force データベースに存在するテーブルも削除する。

td db:create

TDのデータベースを作成する。

% td db:create database

td db:delete

TDのデータベースをテーブル含めて削除する。

% td db:delete database -f

td export

エクスポート速度は速いが、フォーマットがtsvかjsonlのみで、tsvにヘッダーを付けられない。TDと同一リージョンのS3へのエクスポート固定など制約がある。

コマンド 説明 オプション
export:result <job_id> <URL or JSON> URLまたはJSONを設定して、クエリ結果をエクスポートする。 -w, --wait ジョブが完了するまで待つ。
-P, --priority PRIORITY 優先度を設定する。
-R, --retry COUNT 自動リトライ回数を設定する。
export:table <db> <table> バルクエクスポート。table:exportと同じ。テーブルデータをS3バケットにエクスポートする。ヘッダーは付与されない。 -w, --wait ジョブが完了するまで待つ。
-f, --from TIME 設定したTIMEよりも新しい、またはTIMEと同じデータを対象とする。
-t, --to TIME 設定したTIMEよりも古いデータを対象とする。
-b, --s3-bucket NAME 宛先S3バケット名を設定する。(必須)
-p, --prefix S3上のファイルのPATHパスプレフィックスを設定する。
-k, --aws-key-id KEY_ID AWSアクセスキーID設定する。(必須)
-s, --aws-secret-key SECRET_KEY AWS Secretアクセスキー設定する。(必須)
-F, --file-format FILE_FORMAT エクスポートするファイル形式を設定する。(tsv.gz,jsonl.gz) json.gz,line-json.gz 形式は使用可能だが非推奨。
-O, --pool-name NAME リソースプールの名前を設定する。
-e, --encryption ENCRYPT_METHOD ENCRYPT_METHODを使ってサーバー側で暗号化しエクスポートする。

export:result

redshiftへのエクスポート例。実行済みのクエリのJob Idをセットする必要がある。

% td export:result 999999999 'redshift://<user>:<password>@redshift-0.aaaaaaaa.us-east-1.redshift.amazonaws.com/database_name/table_name?schema=schema_name'

export:table

s3://bucket/sample/export_tableに、jsonl.gz形式でファイルをエクスポートする例。
S3 bucket名には、"s3://"は不要。-pオプションには、フォルダの設定が可能。ファイル名は設定できない。AWS access key関係は、S3書き込み、出力権限があるユーザーのkeyを設定する。

% td export:table database table --s3-bucket bucket -p sample/export_table -k <AWS Access key ID> -s <AWS Secret access key>
Export job 999999999 is queued.
Use 'td job:show 999999999' to show the status.

td table

td table:importは、大量のデータをインポートする場合は、処理が遅いらしいので非推奨。

コマンド 説明 オプション
table:list [db] テーブルのリストを出力する。 -n, --num_threads VAL 並列でリストを取得するスレッドの数を設定する。
--show-bytes テーブルの推定サイズをバイト数で出力する。
-f, --format 出力結果のフォーマットを設定する。(tsv, csv, json, table[デフォルト])
table:show <db> <table> テーブルの情報を説明する。 -v 詳細な属性を出力する。
table:create <db> <table> テーブルを作成する。 -T, --type TYPE テーブルの種類(ログ)を設定する。
--expire-days DAYS テーブルの有効期限(日)を設定する。
--include-v BOOLEAN include_vフラグを設定する。
table:delete <db> <table> テーブルを削除する。 -f, --force プロンプト無し(聞かずに強制する。)
table:import <db> <table> <files...> ファイルを解析してテーブルにインポートする。 --format FORMAT ファイルフォーマット (デフォルト: apache)
--apache --format apacheと同じ、apacheの共通ログフォーマット形式を設定する。
--syslog --format syslogと同じ、syslog形式を設定する。
--msgpack --format msgpackと同じ、msgpack形式を設定する。
--json --format json と同じ、json形式を設定する。
table:export <db> <table> バルクエクスポート。export:tableと同じ。テーブルデータをS3バケットにエクスポートする。tsv.gzの場合、ヘッダーは付与されない。 -w, --wait ジョブが完了するまで待つ。
-f, --from TIME 設定したTIMEよりも新しい、またはTIMEと同じデータを対象とする。
-t, --to TIME 設定したTIMEよりも古いデータを対象とする。
-b, --s3-bucket NAME 宛先S3バケット名を設定する。(必須)
-p, --prefix S3上のファイルのPATHパスプレフィックスを設定する。
-k, --aws-key-id KEY_ID AWSアクセスキーIDを設定する。(必須)
-s, --aws-secret-key SECRET_KEY AWS Secretアクセスキーを設定する。(必須)
-F, --file-format FILE_FORMAT エクスポートするファイル形式を設定する。(tsv.gz,jsonl.gz) json.gz,line-json.gz 形式は使用可能だが非推奨。
-O, --pool-name NAME リソースプールの名前を設定する。
-e, --encryption ENCRYPT_METHOD ENCRYPT_METHODを使ってサーバー側で暗号化しエクスポートする。
table:swap <db> <table1> <table2> 2つのテーブルの名前を入れ替える。
table:rename <db> <from_table> <dest_table> 既存のテーブルの名前を変更する。 --overwrite テーブルが存在した場合、既存のテーブルを上書きする。
table:tail <db> <table> 最近インポートされたログを取得する。 -n, --count COUNT 取得するログの数を設定する。
-P, --pretty 整形したjson形式で出力する。
table:partial_delete <db> <table> 設定された時間範囲内にテーブルからログを削除する。 -f, --from TIME 削除するログの開始時刻をUNIXTIME(1時間単位)で設定する。
-t, --to TIME 削除するログの終了時刻をUNIXTIME(1時間単位)で設定する。
-w, --wait ジョブが終了するのを待つ。
-O, --pool-name NAME リソースプール名を設定する。
table:expire <db> <table> <expire_days> 設定された日数後にテーブルのデータを期限切れにする。有効期限を無効にするには、<expire_days>に0を設定する。
table:update <db> <table> テーブルオプションを更新する。 --expire-days DAYS テーブルの有効期限を設定する。
--include-v BOOLEAN include_vフラグを設定する。
--detect-schema BOOLEAN スキーマ検出フラグを設定する。

table:import

msgpack.gz形式のファイルをテーブルにインポートする。

% td table:import database table out/sample_csv_0.msgpack.gz --format msgpack --time-key time
importing out/sample_csv_0.msgpack.gz...
  uploading 117 bytes...
  imported 4 entries from out/sample_csv_0.msgpack.gz.
done.

table:export

s3://bucket/sample/table_exportに、tsv.gz形式でファイルをエクスポートする。

% td table:export database table --s3-bucket bucket -p sample/table_export -F tsv.gz -k <AWS Access key ID> -s <AWS Secret access key>
Export job 999999999 is queued.
Use 'td job:show 999999999' to show the status.

td bulk_import

TDはもうサポートしていないらしい(アップデートはない)。Embulkの使用を推奨。

コマンド 説明 オプション
bulk_import:list 一括インポートセッションを一覧出力する。 -f, --format 出力結果のフォーマット (tsv, csv, json, table[デフォルト])
bulk_import:show <session_name> アップロードされたパーツのリストを出力する
bulk_import:create <session_name> <db> <table> テーブルへの新しい一括インポートセッションを作成する。
bulk_import:prepare_parts <files...> ファイルをパーツファイル形式に変換する。 -f, --format NAME ソースファイルのフォーマット を設定。[csv, tsv, msgpack, json]
-h, --columns NAME,NAME,… カラム名 (1行目にカラム名がある場合は、--column-header を使用する。)
-H, --column-header 1行目に列名を含む。
-d, --delimiter カラム間のデリミタを設定。
--null REGEX nullを自動型変換する値設定。
--true REGEX trueを自動型変換する値設定。
--false REGEX falseを自動型変換する値設定。
-S, --all-string 自動型変換を無効。
-t, --time-column NAME timeのカラム名
-T, --time-format FORMAT timeカラムのフォーマット。
--time-value TIMEカラムに設定する値を設定。
-e, --encoding NAME テキストエンコーディング。
-C, --compress NAME 圧縮形式名 [plain, gzip] (デフォルト: 自動検出)。
-s, --split-size SIZE_IN_KB パーツのサイズ (デフォルト: 16384)。
-o, --output DIR 出力フォルダを設定。
bulk_import:upload_part <session_name> <id> <path/msgpack.gz> ファイルを一括インポートセッションにアップロードまたは再アップロードする。
bulk_import:upload_parts <session_name> <files...> 一括インポートセッションへのファイルのアップロードまたは再アップロード
bulk_import:delete_parts <session_name> <ids...> 一括インポートセッションからアップロードされたファイルを削除する。
bulk_import:perform <session_name> アップロードされたファイルの検証と変換を開始する。 -w, --wait ジョブの終了を待つ。
-f, --force 強制的に実行を開始する。
-O, --pool-name NAME リソースプール名を設定する。
bulk_import:error_records <session_name> 検証に合格しなかったレコードを出力する。
bulk_import:commit <session_name> 実行された一括インポートセッションのコミットを開始する。 -w, --wait コミットの終了を待つ。
bulk_import:delete <session_name> 一括インポートセッションを削除する。
bulk_import:freeze <session_name> 一括インポートセッションへの後続のアップロードを拒否する。
bulk_import:unfreeze <session_name> 凍結された一括インポートセッションの凍結を解除する。

例 td bulk_importの流れ

td bulk_importコマンドを使ったバルクインポートの手順です。

td bulk_import:create

バルクインポートのセッションを作成する。

% td bulk_import:create sample_session database table
Bulk import session 'sample_session' is created.

td bulk_import:prepare_parts

対象のファイルをmsgpack形式に変換する。

% td bulk_import:prepare_parts sample.csv --format csv --column-header --time-value `date +%s`  -o bulk_sample_msgpack/

Processing sample.csv...
  Preparing part "bulk_sample_0"...
  sample: 2021-05-14 04:47:01 UTC {"name":"John","id":110,"memo":"hogaotuaaaa","time":1620967621}
  sample.csv: 4 entries.

td bulk_import:upload_parts

変換したmsgpack形式のファイルをTDにアップロードする。

% td bulk_import:upload_parts sample_session bulk_sample_msgpack/bulk_sample_0.msgpack.gz
Uploading 'bulk_sample_msgpack/bulk_sample_0.msgpack.gz' -> 'bulk_sample_0'... (121 bytes)
done.

bulk_import:perform

バルクインポートを実行する。

% td bulk_import:perform sample_session
Job XXXXXXXXXX is queued.
Use 'td job:show [-w] XXXXXXXXXX' to show the status.

bulk_import:commit

インポートデータをコミットしてテーブルに反映する。

% td bulk_import:commit sample_session
Bulk import session 'sample_session' started to commit.

td import

TDはもうサポートしていないらしい(アップデートはない)。Embulkの使用を推奨。

コマンド 説明 オプション
import:list セッションを一覧出力する。 -f, --format 出力結果のフォーマット (tsv, csv, json, table[デフォルト])
import:show <session_name> アップロードファイルのリストを出力する。
import:create <session_name> <db> <table> インポートセッションを作成する。
import:jar_version jarバージョンを出力する。
import:jar_update jarバージョンを更新する。
import:prepare <files...> データを分割して msgpack 形式へ圧縮する。 -f, --format FORMAT ソースファイルのフォーマット([csv, tsv, json, msgpack, apache, regex, mysql]; default=csv)
-C, --compress TYPE 圧縮タイプ([gzip, none, auto]; default=auto detect)
-T, --time-format FORMAT 日時のtimeフォーマットを設定する。
-e, --encoding TYPE エンコーディングタイプ [UTF-8など]を設定する。
-o, --output DIR 出力フォルダ。(デフォルト:'out')
-s, --split-size SIZE_IN_KB パーツのサイズ (デフォルト: 16384)
-t, --time-column NAME timeカラムの名前を設定。データにタイムカラムがない場合にこのオプションで生成可能。
--time-value TIME,HOURS timeカラムの値を設定。
--primary-key NAME:TYPE アイテムテーブルで宣言されている主キーの名前とタイプのペア。
--prepare-parallel NUM 並行処理数。 (デフォルト: 2; 最大 96)
--only-columns NAME,NAME,… カラムのみを出力する。
--exclude-columns NAME,NAME,… 除外する列を設定する。
--error-records-handling MODE エラーレコードハンドリングモード [skip, abort]; default=skip
--invalid-columns-handling MODE 無効なカラムを処理するモード [autofix, warn]; default=warn
--error-records-output DIR エラーレコードを設定したフォルダに書き込む。
--columns NAME,NAME,… カラム名を設定する。(1 行目にカラム名がある場合は、--column-header を使用する。)
--column-types TYPE,TYPE,… 列のタイプ。 [string, int, long, double]
--column-type NAME:TYPE カラム名とタイプ [string, int, long, double]. カラム名とタイプは「age:int」のように設定可能。
-S, --all-string 自動型変換を無効。
--empty-as-null-if-numeric カラムが数値型の場合、空の文字列値をNULL値として解釈する。
≪CSV/TSV特有のオプション≫
--column-header 1行目にカラム名を含む。
--delimiter CHAR デリミタを設定。default=","
--escape CHAR エスケープ文字を設定。default=<br>--newline TYPE:改行コードを設定。 [CRLF, LF, CR]; default=CRLF
--quote CHAR クォートを設定。([DOUBLE, SINGLE, NONE]; csvフォーマットの場合、デフォルト=DOUBLE tsvフォーマットの場合、デフォルト=NONE)
≪MySQL固有のオプション≫
--db-url URL JDBC接続URLを設定。
--db-user NAME MySQLアカウントのユーザー名。
--db-password PASSWORD MySQLアカウントのパスワード。
≪REGEX 固有のオプション≫
--regex-pattern PATTERN 行を解析するパターン。ソースファイルのフォーマットとして 'regex' を使用する場合、このオプションは必須。
import:upload <session_name> <files...> prepareで分割圧縮したファイルのアップロードを行う。 --retry-count NUM リトライ回数を設定(デフォルト:10)。
--auto-create DATABASE.TABLE 設定されたデータベース名とテーブル名のバルクインポートセッションを作成する。このオプションを使用する場合は、第1引数にセッション名を設定不要。
--auto-perform バルクインポートジョブを自動的に実行する。
--auto-commit バルクインポートジョブを自動的にコミットする。
--Auto-delete バルクインポートセッションを自動的に削除する。
--parallel NUM アップロード並列数 (デフォルト: 2、最大 8)
-f, --format FORMAT ソースファイルのフォーマット。([csv, tsv, json, msgpack, apache, regex, mysql]; default=csv)
-C, --compress TYPE 圧縮タイプ([gzip, none, auto]; default=auto detect)
-T, --time-format FORMAT timeカラムの名前を設定。
-e, --encoding TYPE エンコーディングタイプ [UTF-8など]を設定。
-o, --output DIR 出力フォルダ。(デフォルト:'out')
-s, --split-size SIZE_IN_KB パーツのサイズ (デフォルト: 16384)
-t, --time-column NAME timeカラムの名前を設定。
--time-value TIME,HOURS timeカラムの値を設定。データにタイムカラムがない場合にこのオプションで生成可能。
--primary-key NAME:TYPE アイテムテーブルで宣言されている主キーの名前とタイプのペア。
--prepare-parallel NUM 並行処理数。(デフォルト: 2; 最大 96)
--only-columns NAME,NAME,… 設定したカラムのみを出力する。
--exclude-columns NAME,NAME,… 除外する列を設定する。
--error-records-handling MODE エラーレコードハンドリングモード([skip, abort]; default=skip)
--invalid-columns-handling MODE 無効なカラムを処理するモード([autofix, warn]; default=warn)
--error-records-output DIR エラーレコードを設定したフォルダに書き込む。
--columns NAME,NAME,… カラム名 (1行目にカラム名がある場合は、--column-header を使用する。)
--column-types TYPE,TYPE,… カラムの種類([string, int, long, double])。
--column-type NAME:TYPE カラム名とタイプ [string, int, long, double]. カラム名とタイプは「age:int」のように設定可能。
-S, --all-string 自動型変換を無効にする。
--empty-as-null-if-numeric カラムが数値型の場合、空の文字列値をNULL値として解釈する。
≪CSV/TSV特有のオプション≫
--column-header 1行目にカラム名を含む。
--delimiter CHAR デリミタを設定。default=","
--escape CHAR エスケープ文字を設定。default=<br>--newline TYPE:改行コードを設定。 [CRLF, LF, CR]; default=CRLF
--quote CHAR クォートを設定。([DOUBLE, SINGLE, NONE]; csvフォーマットの場合、デフォルト=DOUBLE tsvフォーマットの場合、デフォルト=NONE)
≪MySQL固有のオプション≫
--db-url URL JDBC接続URLを設定。
--db-user NAME MySQLアカウントのユーザー名。
--db-password PASSWORD MySQLアカウントのパスワード。
≪REGEX 固有のオプション≫
--regex-pattern PATTERN 行を解析するパターン。ソースファイルのフォーマットとして 'regex' を使用する場合、このオプションは必須。
import:auto <session_name> <files...> td import:create,td import:prepare,td import:upload,td import:perform,td import:commitを自動で実行する。 --retry-count NUM リトライ回数を設定(デフォルト:10)。
--auto-create DATABASE.TABLE 設定されたデータベース名とテーブル名のバルクインポートセッションを作成する。このオプションを使用する場合は、第1引数にセッション名を設定不要。
--parallel NUM アップロード並列数 (デフォルト: 2、最大 8)
-f, --format FORMAT ソースファイルのフォーマット([csv, tsv, json, msgpack, apache, regex, mysql]; default=csv)。
-C, --compress TYPE 圧縮タイプ([gzip, none, auto]; default=auto detect)
-T, --time-format FORMAT timeカラムの名前を設定。
-e, --encoding TYPE エンコーディングタイプ [UTF-8など]を設定。
-o, --output DIR 出力フォルダ。(デフォルト:'out')
-s, --split-size SIZE_IN_KB パーツのサイズ (デフォルト: 16384)
-t, --time-column NAME timeカラムの名前を設定。
--time-value TIME,HOURS timeカラムの値を設定。データにタイムカラムがない場合にこのオプションで生成可能。
--primary-key NAME:TYPE アイテムテーブルで宣言されている主キーの名前とタイプのペア。
--prepare-parallel NUM 並行処理数。(デフォルト: 2; 最大 96)
--only-columns NAME,NAME,… 設定したカラムのみを出力する。
--exclude-columns NAME,NAME,… 除外する列を設定する。
--error-records-handling MODE エラーレコードハンドリングモード([skip, abort]; default=skip)
--invalid-columns-handling MODE 無効なカラムを処理するモード([autofix, warn]; default=warn)
--error-records-output DIR エラーレコードを設定したフォルダに書き込む。
--columns NAME,NAME,… カラム名 (1行目にカラム名がある場合は、--column-header を使用する。)
--column-types TYPE,TYPE,… カラムの種類([string, int, long, double])。
--column-type NAME:TYPE カラム名とタイプ [string, int, long, double]. カラム名とタイプは「age:int」のように設定可能。
-S, --all-string 自動型変換を無効にする。
--empty-as-null-if-numeric カラムが数値型の場合、空の文字列値をNULL値として解釈する。
≪CSV/TSV特有のオプション≫
--column-header 1行目にカラム名を含む。
--delimiter CHAR デリミタを設定。default=","
--escape CHAR エスケープ文字を設定。default=<br>--newline TYPE:改行コードを設定。 [CRLF, LF, CR]; default=CRLF
--quote CHAR クォートを設定。([DOUBLE, SINGLE, NONE]; csvフォーマットの場合、デフォルト=DOUBLE tsvフォーマットの場合、デフォルト=NONE)
≪MySQL固有のオプション≫
--db-url URL JDBC接続URLを設定。
--db-user NAME MySQLアカウントのユーザー名。
--db-password PASSWORD MySQLアカウントのパスワード。
≪REGEX 固有のオプション≫
--regex-pattern PATTERN 行を解析するパターン。ソースファイルのフォーマットとして 'regex' を使用する場合、このオプションは必須。
import:perform <session_name> アップロードされたファイルの検証と変換を行う。 -w, --wait ジョブの終了を待つ。
-f, --force 強制的に実行を開始する。
-O, --pool-name NAME 強制的に実行を開始する。
import:error_records <session_name> 検証に失敗したレコードを出力する。 リソースプール名を設定する。
import:commit <session_name> セッションをコミットしてテーブルに全てのデータを反映する。 -w, --wait コミットの終了を待つ。
import:delete <session_name> 一括インポートセッションを削除する。
import:freeze <session_name> 一括インポートセッションのそれ以降のデータアップロードを一時停止する/一括インポートセッションへの後続のアップロードを拒否する。
import:unfreeze <session_name> 一括インポートセッションのフリーズを解除する。
import:config <files...> guess用のseed.ymlを作成する。 -o, --out FILE_NAME connector:guess の出力ファイル名
-f, --format FORMAT ソースファイルのフォーマット([csv, tsv, mysql]; default=csv)
--db-url URL データベース接続URLを設定する。
--db-user NAME データベースのユーザー名を設定する。
--db-password データベースのパスワードを設定する。

例 td importの流れ

td importコマンドを使ったテーブルインポートの手順。

td import:create

インポートのセッションを作成する。

% td import:create sample_session database table
Bulk import session 'sample_session' is created.

td import:prepare

対象データをmsgpack形式に変換する。

% td import:prepare sample.csv --format csv --columns name,id,memo --column-types string,long,string --time-value `date +%s`,10

Preparing sources
  Output dir : out
  Source     : sample.csv (99 bytes)

Converting 'sample.csv'...
cannot get sample row

Prepare status:
  Elapsed time: 2 sec.
  Source     : sample.csv
    Status          : SUCCESS
    Read lines      : 5
    Valid rows      : 4
    Invalid rows    : 1
    Converted Files : out/sample_csv_0.msgpack.gz (117 bytes)


Next steps:
  => execute following 'td import:upload' command. if the bulk import session is not created yet, please create it with 'td import:create <session> <database> <table>' command.

td import:upload

変換したmsgpack形式ファイルをTDにアップロードする。

% td import:upload session out/sample_csv_0.msgpack.gz

Uploading prepared sources
  Session    : session
  Source     : out/sample_csv_0.msgpack.gz (117 bytes)

Uploading out/sample_csv_0.msgpack.gz (117 bytes)...

Upload status:
  Elapsed time: 3 sec.
  Source  : out/sample_csv_0.msgpack.gz
    Status          : SUCCESS
    Part name       : sample_csv_0_msgpack_gz
    Size            : 117
    Retry count     : 0


Next Steps:
  => execute 'td import:perform session'.

td import:perform

インポートを実行する。

% td import:perform session
Job XXXXXXXXXX is queued.
Use 'td job:show [-w] XXXXXXXXXX' to show the status.

td import:commit

インポートデータをテーブルにコミットする。

% td import:commit session
Bulk import session 'session' started to commit.

td import:config

S3バケットに保存されているcsvファイルからguessで使用するseed.ymlを作成する。

td import:config "s3://<AWS Access key ID>:<AWS Secret access key>@/bucket_name/sample.csv" -o ~/data/seed.yml

td result

AuthenticationのDestination(export)を作成する。

コマンド 説明 オプション
result:list exportで使用できるDataConnectorのAuthenticationの一覧を出力する。 -f, --format 出力結果のフォーマットを設定する。(tsv, csv, json, table[デフォルト])
result:show <name> AuthenticationのResultのURLを出力する。
result:create <name> <URL> Authentication(Destination)を作成する。 -u, --user NAME Authenticationのユーザー名を設定する。
-p, --password Authenticationのパスワードを入力する。
result:delete <name> Authentication(Destination)を削除する。

td result:create

Authentication(Destination)を作成する。

% td result:create result_s3 "s3://<AWS Access key ID>:<AWS Secret access key>@"    #最後に@が必要

td status (td s)

コマンド 説明 オプション
status スケジュール状況、ジョブの状況、テーブル、Resultの状況を出力する。

td schema

テーブルのスキーマのコマンド。

コマンド 説明 オプション
schema:show <db> <table> テーブルのスキーマを出力する。
schema:set <db> <table> [columns...] テーブルに新しいスキーマを設定する。既存のスキーマがある場合は、上書きするため注意。
schema:add <db> <table> <columns...> テーブルに新しいスキーマを追加する。
schema:remove <db> <table> <columns...> テーブルからスキーマを削除する。

td schema:set

% td schema:set database table user:string size:int
Schema is updated on database.table table.

td sched

Saved Queryのコマンド。

コマンド 説明 オプション
sched:list Saved Queryを一覧出力する。(スケジュールされていないQueryも含む) -f, --format 出力結果のフォーマットを設定する。(tsv, csv, json, table[デフォルト])
sched:create <name> <cron> [sql] Saved Queryを作成する。 -d, --database DB_NAME データベースを設定する。(必須)
-t, --timezone タイムゾーンのTZ名を設定する。"Asia/Tokyo","America/Los_Angeles"など。"PST"や"PDT"などは設定不可。
-D, --delay SECONDS スケジュールの遅延時間を設定する。
-r, --result RESULT_URL 結果をURLに書き込む。(result:create参照)
-u, --user NAME 結果のURLのユーザー名を設定する。
-p, --password 結果のURLのパスワードを聞く。
-P, --priority PRIORITY 優先度を設定する。
-q, --query PATH クエリ記述ファイルを使用する。
-R, --retry COUNT リトライ回数を設定する。
-T, --type TYPE タイプ(presto,hive)を設定する。デフォルトはhive。
--engine-version ENGINE_VERSION クエリエンジンのバージョンを名前で設定する。
sched:delete <name> Saved Queryを削除する。
sched:update <name> Saved Queryを更新する。 -n, --newname NAME スケジュール名を変更する。
-s, -schedule CRON スケジュールを変更する。
-q, --query SQL クエリを変更する。
-d, --database DB_NAME データベースを変更する。
-r, --result RESULT_URL 結果対象を変更する。(result:create参照)
-t, --timezone タイムゾーンのTZ名を設定する。"Asia/Tokyo","America/Los_Angeles"など。"PST"や"PDT"などは設定不可。
-D, --delay SECONDS スケジュールの遅延時間を変更する。
-P, --priority PRIORITY 優先度を設定する。
-R, --retry COUNT リトライ回数を設定する。
-T, --type TYPE タイプ(presto,hive)を設定する。
--engine-version ENGINE_VERSION クエリエンジンのバージョンを名前で設定する。
sched:history <name> [max] Saved QueryのRun Historyを出力する。 -p, --page PAGE ページをスキップする。
-s, --skip N N個のスケジュールをスキップする。
-f, --format 結果出力のフォーマットを設定する。(tsv, csv, json, table[デフォルト])
sched:run <name> <time> Saved Queryを実行する。 -n, --num N 実行するジョブの数を設定する。
-f, --format 結果出力のフォーマットを設定する。(tsv, csv, json, table[デフォルト])
sched:result <name> Saved Queryの最後に実行されたジョブのステータスと結果を出力する。 -v, --verbose ログの出力。
-w, --wait ジョブの終了を待つ。
-G, --vertical 結果を出力するためにverticalテーブルを使用する。
-o, --output PATH ファイルに結果を書き込む。
-l, --limit ROWS ファイルに出力しないときに出力する結果の行数を制限する。
-c, --column-header テーブルにスキーマがある場合、カラムのヘッダーを出力する。テーブルのスキーマが利用可能な場合、カラムのヘッダを出力する。
-x, --exclude ジョブの結果を自動的に取得しない。
--null STRING csvまたはtsvでのNullStringを設定する。
-f, --format ファイルに書き込むフォーマットを設定する。(tsv, csv, json, msgpack, msgpack.gz)
--last N 最後からN個前の結果を出力する。(デフォルト: 1)

td sched:create

毎時0分にスケジュールでクエリ実行するS3バケットへエクスポートの設定。presto設定、優先度0、ディレイ0秒、リトライ1回

% td sched:create saved_query1 "0 * * * *" -d ue_database "select * from sample" -r "s3://<AWS Access key ID>:<AWS Secret access key>@/bucket_name/sample.csv" -T presto -P 0 -D 0 -R 1

td sched:result

saved_query1の結果を出力する。

% td sched:result saved_query1
JobID       : XXXXXXXXX
Status      : success
Type        : presto
Database    : database1
Priority    : NORMAL
Retry limit : 0
Output      :
Query       : SELECT * FROM sample
Result size : 87 B
Result      :
+------+-----+---------------+------------+
| name | id  | memo          | time       |
+------+-----+---------------+------------+
| John | 110 | hogaotuaaaa   | 1616042454 |
| Ben  | 111 | hogaotuadfara | 1616042454 |
| Jane | 112 | hogaotuacarf  | 1616042454 |
| Bob  | 113 | hogaotuacava  | 1616042454 |
+------+-----+---------------+------------+
4 rows in set
Use '-v' option to show detailed messages.

td query

クエリのコマンド。

コマンド 説明 オプション
td query [sql] TDでクエリーを実行する。 -d, --database データベース名を設定する。
-w, --wait[=SECONDS] ジョブの終了を待つ。
-G, --vertical テーブルの形で結果を出力する。
-o, --output 結果出力ファイルを出力する。
-f, --format ファイル出力形式を設定する。(tsv, csv, json, msgpack, and msgpack.gz)
-r, --result Result ExportのURLを設定する。
-u, --user Result Export URLのユーザー名を設定する。
-p, --password URLのパスワードを聞くようにする。
-P, --priority 優先度を設定する。
-R, --retry リトライ回数を設定する。
-q, --query クエリファイルを設定する。
-T, --type hiveかprestoを設定する。
-l, --limit 結果行数を制限する。
-c, --column-header ヘッダーを出力する。
-x, --exclude ジョブの結果を自動的に取得しない。
-O, --pool-name リソースプール名を設定する。
--domain-key オプションのユーザー提供の一意のIDを設定する。このIDをリクエストに含めて、冪等性を確保できる。

ローカル環境にクエリ結果をcsv出力する。presto使用パターン。

% td query -d database1 -w  "select * from sample" -f csv -o ~/data/sample.csv -c -T presto

S3バケットにクエリ結果をcsv出力する。

% td query -d database1  "select * from sample" -f csv -T presto -r "s3://<AWS Access key ID>:<AWS Secret access key>@/bucket_name/sample.csv" 

td job

ジョブのコマンド。

コマンド 説明 オプション
job:show <job_id> ジョブのステータスと結果を出力する。 -v, --verbose 詳細ログを出力する。
-w, --wait ジョブの終了を待つ。
-G, --vertical テーブルを使用して結果を出力する。
-o, --output PATH 結果をファイルに出力する。
-l, --limit ROWS 出力結果の行数を制限する。
-c, --column-header テーブルにスキーマがある場合、カラムのヘッダーを出力する。
-x, --exclude ジョブの結果を自動的に取得しない。
--null STRING CSVまたはTSVでのNullStringを設定する。
-f, --format ファイルに書き込む結果のフォーマットを設定する。 (tsv, csv, json, msgpack, msgpack.gz)
job:status <job_id> ジョブのステータスのみ出力する。
job:list [max] ジョブの一覧を出力する。 -p, --page PAGE ページをスキップする。
-s, --skip N N個のジョブをスキップする。
-R, --running 実行中のジョブのみを出力する。
-S, --success 成功したジョブのみを出力する。
-E, --error 失敗したジョブのみを出力する。
--slow [SECONDS] 処理が遅いクエリを出力する。(デフォルトの閾値: 3600 秒)
-f, --format 結果のフォーマット。 結果のフォーマットを設定する。 (tsv, csv, json, table[デフォルト])
job:kill <job_id> ジョブをkillする。

td job:list

Jobの最新のみ出力する。

% td job:list 1

td job:show

Jobの詳細ログを出力する。

% td job:show 999999999 -v 

td password

自分のパスワードのコマンド。

コマンド 説明 オプション
password:change (自分の)パスワードを変更する。

% td password:change

td apikey

自分のapikeyのコマンド。

コマンド 説明 オプション
apikey:show (自分の)API Keyを出力する。これはconfigファイルに設定されているapikey。
apikey:set <apikey> (自分の)API Keyをtd cliにセットする。

td apikey:show

自分のapikeyを出力する。

% td apikey:show

td server

TDのサーバのコマンド。

コマンド 説明 オプション
server:status Treasure Dataのステータスを出力する。
server:endpoint <api_endpoint> Treasure DataのAPI Serverのエンドポイントを設定する。

td server:endpoint

Treasure DataのAPI Serverのエンドポイントを設定する。エンドポイントの情報はSites and Endpointsを参照。
ここではUSリージョンのエンドポイントを設定する例とする。リンク先の情報には記載がないが、"https://"を記述する必要がある。(記述しない場合はエラーとなる。)

% td server:endpoint https://api.treasuredata.com

td sample

サンプルデータを作成するコマンド。

コマンド 説明 オプション
sample:apache <path.json> apacheログのサンプルを出力する。

カレントフォルダーにsample.jsonという名前で、サンプルを作成する。

% td sample:apache sample.json

td connector

TDコンソール画面での名称sourceのコマンド。

コマンド 説明 オプション
connector:guess seed.ymlを設定し、guessを実行することでload.yml(コネクタ構成ファイル)を生成する。KeyがURLエンコードされていると、エラーになるので注意。 -o, --out FILE_NAME connector:previewの出力ファイル名を設定する。
-g, --guess NAME,NAME,... ユーザーが使用したい推測のリストを設定する。
connector:preview コネクタ実行のプレビューを出力する。 -f, --format ファイル出力形式。(tsv, csv, json, msgpack, table デフォルトはtable)
connector:issue --database <database> --table <table> source(コネクタ)を保存せずに実行する。 --database DB_NAME インポート先のデータベース名を設定する。
--table TABLE_NAME インポート先のテーブル名を設定する。
--time-column COLUMN_NAME timeカラムを設定する。
-w, --wait ジョブの終了を待つ。
--auto-create-table テーブルが存在しない場合、作成する。
connector:list TDコンソールのsourceのリストを出力する。 -f, --format ファイル出力形式。(tsv, csv, json, msgpack, table デフォルトはtable)
connector:create <connector_UniqueId> <cron> <database> <table> <config> source(コネクタ)を作成する。ここで設定するUniqueIdはsourceのUniqueId。TDコンソール画面の名前とは一致しない。デフォルトでIncrementalにチェックがつく。 --time-column COLUMN_NAME timeカラム名を設定する。
-t, --timezone タイムゾーンのTZ名を設定する。"Asia/Tokyo","America/Los_Angeles"など。"PST"や"PDT"などは設定不可。
-D, --delay SECONDS スケジュールの遅延時間を設定する。
connector:show <connector_name> source(コネクタ)の情報を出力する。
connector:update <connector_name> [config] source(コネクタ)の情報を更新する。 -n, --newname NAME コネクタ名(source)を変更する。
-d, --database DB_NAME データベースを変更する。
-t, --table TABLE_NAME テーブルを変更する。
-s, -schedule [CRON] スケジュールを変更する。何も設定しない場合、スケジュールは削除となる。
-t, --timezone タイムゾーンのTZ名を設定する。"Asia/Tokyo","America/Los_Angeles"など。"PST"や"PDT"などは設定不可。
-T, --time-column COLUMN_NAME timeカラムを変更する。
-c, --config CONFIG_FILE コネクタのconfigファイルを更新する。
--config-diff CONFIG_DIFF_FILE config_diffファイルコネクタの設定を更新する。
connector:delete <connector_name> source(コネクタ)を削除する。
connector:history <connector_name> source(コネクタ)の実行履歴を出力する。レコード数も確認できる。 -f, --format ファイル出力形式を設定する。(tsv, csv, json, msgpack, table[デフォルト])
connector:run <connector_name> [time] 設定された時間オプションのセッションでコネクタを実行する。 -w, --wait ジョブの終了を待つ。

td connector:create

毎時0分にload.ymlに記載されたload処理を行う。インポート先は、database1.table1を設定。

% td connector:create connector1 "0 * * * *" database1 table1 load.yml

毎日(daily)load.ymlに記載されたload処理を行う。

% td connector:create connector1 @daily database1 table1 load.yml

td connector:issue

Sourceを実行する。

% td connector:issue load.yml

td connector:run

connector1を今すぐ実行する。

% td connector:run connector1

Config Diffの変更手順 (S3 connectorの場合)

Config Diffを確認する。

% td connector:show connector1
Name     : connector1
Cron     :
Timezone : Asia/Tokyo
Delay    : 0
Database : database
Table    : sample
Config
---
in:
  auth_method: basic
  access_key_id: "***"
  secret_access_key: "***"
  bucket: bucket
  path_prefix: folder/sample
  use_modified_time: false
  incremental: true
...省略
Config Diff
---
in:
  last_path: folder/sample20210710.csv

更新するConfig Diffファイルを作成する。(この例では1日分ファイルを戻す)
config_diff.ymlの中身はこんな感じ。

in:
  last_path: folder/sample20210709.csv

Config Diffファイルを指定して、td connector:updateで更新する。

% td connector:update connector1 --config-diff config_diff.yml
...省略
Config Diff
---
in:
  last_path: folder/sample20210709.csv
out: {}
exec: {}
filters: []

td workflow (td wf)

Workflowのコマンド。

Local-mode commands:

ローカル環境でWorkflowの実行を試せる。

コマンド 説明 オプション
init ローカルにプロジェクトフォルダとdigファイル(sample)を作成する。 -t, --type EXAMPLE_TYPE サンプルプロジェクトのタイプ (echo/sh/ruby/python/td/postgresql. デフォルト: echo)
-L, --log PATH ログメッセージを設定したファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(error, warn, info, debug, trace)
-X KEY=VALUE パフォーマンスシステムconfigを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/user_name/.config/digdag/config)
--version クライアントのバージョンを出力する。
r[un] ローカルモードでWorkflowを実行する。 --project DIR このディレクトリをプロジェクトディレクトリとして使用する。(デフォルト:カレントディレクトリ)
-a, --rerun .digdag/status に保存されているステータスファイルを無視して、すべてのタスクを再実行する。
-s, --start +NAME ステータスファイルが.digdag/statusに保存されていても、このタスクとその次のタスクを実行する。
-g, --goal +NAME このタスクとその子タスクのステータス・ファイルが.digdag/statusに保存されていても実行する。
-e, --end +NAME このタスクとそれに続くタスクをスキップする。
-o, --save DIR ステータス・ファイルの読み書きにこのディレクトリを使用する。(デフォルト: .digdag/status)
--no-save .digdag/statusにステータスファイルを保存しない。
-p, --param KEY=VALUE -p, --param KEY=VALUE パラメータを上書きする。(多くのパラメータを設定するには複数回使用する)
-P, --params-file PATH.yml YAMLファイルからパラメータを読み込む。
-d, --dry-run ドライランモードではタスクを実行しない。
-E, --show-params タスクを実行する前にタスクパラメーターを出力する。
-session <daily/hourly/schedule/last"yyyy-MM-dd[HH : mm : ss]> session_timeをこの時間に設定する。(デフォルト: last, .digdag/statusに保存されている最新のセッションタイムを再利用する。)
--max-task-threads 実行中のタスク実行スレッドの最大数を制限する。
-O, --task-log DIR タスクログをこのパスに格納する。
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-L, --log-level LEVEL ログレベルを設定する。(error, warn, info, debug, trace)
-X KEY=VALUE パフォーマンスシステムconfigを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/user_name/.config/digdag/config)
--version クライアントのバージョンを出力する。
c[heck] ローカルのWorkflowの定義をチェックする。 --project DIR このディレクトリをプロジェクトディレクトリとして使用する。(デフォルト:カレントディレクトリ)
-p, --param KEY=VALUE パラメータを上書きする。(多くのパラメータを設定するには複数回使用する)
-P, --params-file PATH.yml YAMLファイルからパラメータを読み込む。
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(error, warn, info, debug, trace)
-X KEY=VALUE パフォーマンスシステムconfigを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/***/.config/digdag/config)
--version クライアントのバージョンを出力する。
sched[uler] スケジューラーサーバを実行する。 --project DIR このディレクトリをプロジェクトディレクトリとして使用する。(デフォルト:カレントディレクトリ)
-n, --port PORT ウェブインターフェイスとAPIクライアントをリッスンするポート番号を設定する。(デフォルト:65432)
-b, --bind ADDRESS HTTPクライアントをリッスンするIPアドレスを設定する。 (デフォルト: 127.0.0.1)
-o, --database DIR このデータベースにステータスを保存する。
-O, --task-log タスクログを保存するパスを設定する。
--max-task-threads タスク実行スレッドの最大数を制限する。
-p, --param KEY=VALUE パラメータを上書きする。(多くのパラメータを設定するには複数回使用する。)
-P, --params-file PATH.yml YAMLファイルからパラメータを読み込む。
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(error, warn, info, debug, trace)
-X KEY=VALUE パフォーマンスシステムconfigを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/***/.config/digdag/config)
--version クライアントのバージョンを出力する。
migrate (run/check) データベースを移行する。 -c, --config PATH.properties configファイルを設定する。(デフォルト: ~/.config/digdag/config)
-o, --database DIR データベースへのDIRパスを設定する。
selfupdate td workflowコマンドをアップデートする。 -L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。 (error, warn, info, debug, trace)
-X KEY=VALUE パフォーマンスシステムconfigを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/***/.config/digdag/config)
--version クライアントのバージョンを出力する。

Server-mode commands

ローカル環境でWorkflow(digdag)サーバを立ち上げる。

コマンド 説明 オプション
server ローカルでサーバを実行する。 -n, --port PORT WEBインターフェイスとAPIクライアントをリッスンするポート番号を設定する。(デフォルト:65432)
-b, --bind ADDRESS HTTPクライアントをリッスンするIPアドレスを設定する。(デフォルト:127.0.0.1)
--admin-port PORT 管理者用APIをバインドするポート番号を設定する。(デフォルト: 管理者用ポートなし)
--admin-bind ADDRESS 管理者用APIをバインドするIPアドレスを設定する。(デフォルト:--bindと同じアドレス)
-m, --memory メモリデータベースを使用する。
-o, --database DIR このデータベースにステータスを保存する。
-O, --task-log DIR タスクログをこのパスに格納する。
-A, --access-log DIR アクセスログを保存する。
--max-task-threads N タスク実行スレッドの最大数を N 個に制限する。
--disable-executor-loop ワークフローの実行ループを無効にする。
--disable-scheduler スケジューラーを無効にする。
--disable-local-agent ローカルタスクの実行を無効にする。
--enable-swagger swagger api を有効にする。CORSが有効になっているので、本番環境では使用しないでください。
-p, --param KEY=VALUE パラメータを上書きする。(複数のパラメータはこのオプションを複数回使用して設定する。)
-H, --header KEY=VALUE APIのHTTP レスポンスに含めるヘッダーを設定する。
-P, --params-file PATH.yml YAMLファイルからパラメータを読み込む。
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。

Client-mode commands:

コマンド 説明 オプション
push <project-name> 新しいリビジョンを作成してプロジェクトをアップロードする。 --project DIR このディレクトリをプロジェクトのディレクトリとして使用する。(デフォルト:カレントディレクトリ)
-r, --revision 自動生成されたUUIDの代わりに、特定のリビジョン名を設定する。
-schedule-from "yyyy-MM-dd HH:mm:ss Z" 現在の時刻ではなく、この時刻からスケジュールを開始する。
--copy-outgoing-symlinks シンボリックリンクを通常のファイルやディレクトリに変換する。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
download <project-name> アップロードされているリビジョンのワークフローをプルする。 -r, --revision 最新のリビジョンではなく、特定のリビジョン名を抽出する。
-o, --output DIR この出力ディレクトリにファイルを抽出する。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
start <project-name> <workflow_name> ワークフローの新しいセッションを開始する。 -session <hourly | daily | now | yyyy-MM-dd | "yyyy-MM-dd HH:mm:ss"> session_timeをこの時間に設定する。(必須)
--revision <name> 過去のリビジョンを使用する。
--retry NAME 新しいセッションへの再試行の名前を設定する。
-d, --dry-run セッションの試行をドライランする。
-p, --param KEY=VALUE セッションパラメータを追加する。(複数回使用して多くのパラメータを設定する。)
-P, --params-file PATH.yml YAMLファイルからセッションパラメータを読み込む。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
retry <attempt-id> セッションをリトライする。 --name <name> 自動生成されたUUIDの代わりに、この再試行のユニークな識別子を使用する。
--latest-revision 最新のリビジョンを使用する。
--keep-revision 同じリビジョンを使用する。
--revision <name> 特定のリビジョンを使用する。
--all すべてのタスクを再試行する。
--resume 失敗したタスクだけを再試行する。
--resume-from <+name> 特定のタスクから再試行する。
kill <attempt-id> セッションをkillする。 -e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
backfill <schedule-id>

backfill <project-name> <workflow_name>
スケジュールの過去のセッションを実行する。

Workflowのセッションを開始する。
-f, --from 'yyyy-MM-dd[ HH:mm:ss]' バックフィルを開始する。タイムスタンプ必須。
--name NAME 再試行の名前を設定する。
-d, --dry-run セッションの試行をドライランする。
--count N スケジュール時刻から実行するセッションの数を設定する。 (デフォルト: 次のスケジュール時刻までの全セッション)
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
reschedule <schedule-id>

reschedule <project-name> <workflow_name>
>スケジュールセッションを次のスケジュールにスキップする。

スケジュールセッションを次のスケジュールにスキップする。
-s, --skip N 今から設定された数のスケジュールをスキップする。
-t, --skip-to 'yyyy-MM-dd HH:mm:ss Z' | 'now' 設定された時刻までのスケジュールをスキップする。
-a, --run-at 'yyyy-MM-dd HH:mm:ss Z' 次の実行時間をこの時間に設定する。
-d, --dry-run 再スケジュールをドライランする。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
log <attempt-id> attemptのログを出力する。 -v, --verbose デバッグログを出力する。
-f, --follow atrtemptやタスクが終了するまで新しいログを出力する。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
projects [name] プロジェクトの"name","id","revision","archive type","project created at","revision updated at"を出力する。 -e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
workflows [project-name] [workflow_name] Workflowのdigファイルの内容を出力する。 -e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
schedules スケジュールされているWorkflowを出力する。 -e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
disable <schedule-id>

disable <project-name>

disable <project-name> <workflow_name>
設定したスケジュールIDを無効にする。

プロジェクトの全てのWorkflowのスケジュールを無効にする。

設定したWorkflowのスケジュールを無効にする。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
enable <schedule-id>

enable <project-name>

enable <project-name> <workflow_name>
設定したスケジュールIDを有効にする。

プロジェクトの全てのWorkflowのスケジュールを有効にする。

設定したWorkflowのスケジュールを有効にする。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
sessions

sessions <project-name>

sessions <project-name> <workflow_name>
Workflowのセッション情報を出力する。

プロジェクト内のすべてのWorkflowのセッション情報を出力する。

設定したWorkflowのセッション情報を出力する。
-i, --last-id ID このIDよりも古いセッションを出力する。
-s, --page-size ページサイズの数(デフォルトでは100まで)のセッションを出力する。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
session <session-id> 設定したセッション情報を出力する。 -i, --last-id ID このIDよりも古いセッションを出力する。
-s, --page-size ページサイズの数(デフォルトでは100まで)のセッションを出力する。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
attempts

attempts <session-id>
全セッションのattempt情報を出力する。

設定したセッションのattempt情報を出力する。
-i, --last-id ID このIDからのセッション試行回数を出力する。
-s, --page-size このページサイズの数(デフォルトでは100まで)のセッションの試行回数を出力する。
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
attempt <attempt-id> 設定したattempt情報を出力する。 -e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
tasks <attempt-id> attemptのタスク情報を出力する。 -e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
delete <project-name> プロジェクトを削除する。 --force 強制削除する。(削除するか確認しない。)
-e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。(デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。(デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
secrets --project <project-name> シークレットを作成する。 -e, --endpoint HOST[:PORT] HTTPエンドポイントを設定する。 (デフォルト: http://127.0.0.1:65432)
-L, --log PATH ログメッセージをファイルに出力する。 (デフォルト: -)
-l, --log-level LEVEL ログレベルを設定する。(エラー、警告、情報、デバッグ、トレース)
-X KEY=VALUE パフォーマンス システム コンフィグを追加する。
-c, --config PATH.properties 設定ファイルを出力する。(デフォルト:/Users/*****/.config/digdag/config)
--version クライアントのバージョンを出力する。
version td workflowコマンドのdigdag ClientとServerバージョンを出力する。

td wf start

スケジュール設定されているWorkflowを実行する。(TDコンソールではスケジュールされているWorkflowを実行できない。)

% td wf start project_name workfolw_name --session now

td wf retry

Workflowセッションを全てリトライする。attempt-idを設定する。

% td wf retry 999999999 --all

Workflowセッションの失敗したタスクをリトライする。

% td wf retry 999999999 --resume

Workflowセッションの失敗したタスク(task2)から最新リヴィジョンのWorkflowでリトライする。

% td wf retry 999999999 --resume-from +task2 --latest-revision

td wf secrets

S3のAccress-keyとSecret access-keyをs3.access_key_id、s3.secret_access_keyとしてsecret登録する。

% td wf secrets --project sample_project --set s3.access_key_id
s3.access_key_id: <access_keyを入力>
% td wf secrets --project sample_project --set s3.secret_access_key
s3.secret_access_key: <secret_access_keyを入力>

GCPのサービスアカウントのcredential jsonファイルをgcp.serviceaccount_keyというsecret名で登録する。ファイルのsecret登録は、TDコンソールでは現状できない。

% td wf secrets --project sample_project --set gcp.serviceaccount_key=@credential.json

td wf delete

TDのsample_projectを削除する。TDコンソールではprojectの削除ができない。

% td wf delete sample_project
オプション --log, --log-levelの設定

td wf start実行で、wf.logファイルにdebugレベルのログを出力する。

% td wf start project_name workflow_name --session now -L ./wf.log -l debug
--disable-cert-validation

TDの証明書の検証を行わず、Workflowを実行する。

% td wf start project_name workflow_name --session now --disable-cert-validation

td user

アカウントのユーザーに対するコマンド。(管理者用)

コマンド 説明 オプション
user:list ユーザーリストを出力する。 td usersでも可。 -f, --format FORMAT 出力形式を設定する。(tsv、csv、 json、table[Default])
user:show ユーザー情報を出力する。
user:create ユーザーを作成する。 -e, --email EMAIL ユーザーのmailアドレスを設定(必須)
user:delete ユーザーを削除する。
user:apikey:list ユーザーのapikeyリストを出力する。
同一、上位権限のAPIKeyは出力できない。
-f, --format FORMAT 出力形式を設定する。(tsv、csv、 json、table[Default])
user:apikey:add ユーザーにapikeyを追加する。
user:apikey:remove ユーザーからapikeyを削除する。
user:password:change ユーザーのパスワードを変更する。(管理者のみ)

td user:show

ユーザー Ichiro Sampleの情報を出力する。

% td user:show "Ichiro Sample"
Name  : Ichiro Sample
Email : [email protected]

td user:create

ユーザー Jiro Sampleを作成する。

% td user:create "Jiro Sample" -e [email protected]
Password (typing will be hidden):
Retype password:
User 'Jiro Sample' is created.
Use 'td user:apikeys Jiro Sample' to show the API key.

td user:list

ユーザーリストを出力する。

% td user:list
+-----------------------------------------+-----------------------------------------------+
| Name                                    | Email                                         |
+-----------------------------------------+-----------------------------------------------+
| a                                       | [email protected]                                 |
| b                                       | [email protected]                                 |
+-----------------------------------------+-----------------------------------------------+
2 rows in set

ユーザーのapikeyリストをCSV形式でファイル出力する。

% td user:list -f csv > user_list.csv

td user:apikey:list

ユーザーのapikeyリストを出力する。

% td user:apikey:list user_name
+------------------------------------------------+
| Key                                            |
+------------------------------------------------+
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX          |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX          |
+------------------------------------------------+
2 rows in set

参考