はじめに
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 : ichiro.sample@example.com
td user:create
ユーザー Jiro Sampleを作成する。
% td user:create "Jiro Sample" -e jiro.sample@example.com
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 | a@example.com |
| b | b@example.com |
+-----------------------------------------+-----------------------------------------------+
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
参考