データマネジメントチームの日下部 佑起です。
本記事では、Treasure Data CDPの操作をコマンドで行えるTD-Toolbeltの使い所についていくつかご紹介したいと思います。
TD-Toolbeltについて
TD-Toolbeltについては、以下の記事で紹介されておりますので、こちらをご参照ください。
- TD Toolbeltチュートリアル
- TD ToolbeltチュートリアルTips
→TD-Toolbeltのセットアップからquery実行までのチュートリアル
→複数アカウントでのTD-Toolbeltの切替方法
TD-Toolbeltの使い所
その1:Project単位でのローカルへのダウンロード
すでに出来ているWFを編集する際に、ブラウザからTDコンソールで編集することが多いかと思いますが、ローカルにダウンロードしお好きなエディターで編集することも可能です。
まずは、 td workflow workflowsと打つことで、現在ログインしている環境のProjectとその配下に存在するWorkflowの一覧が表示されます。td workflowは、tdコマンドのサブコマンド(td workflow
> td workflow workflows Project名1 Workflow名1 Workflow名2 Workflow名3 Workflow名4 Project名2 Workflow名1 Workflow名2 ・ ・ ・
ダウンロードしたいProjectを見つけましたら、以下のコマンドによりダウンロードをします。ダウンロードされるディレクトリは、デフォルトではコマンドを実行した場所のディレクトリになります。必要に応じてCDコマンドでディレクトリを移動してください。
> td wf download Project名 Project名1/workflow名1.dig Project名1/workflow名2.dig Project名1/workflow名3.dig Project名1/workflow名4.dig Project名1/SQL名1.sql Project名1/SQL名2.sql Project名1/SQL名3.sql Extracted project 'Project名' revision 'リビジョン名' to Project名.
また、td wf downloadのオプションは以下となっております。デフォルトでは最新のリビジョンをダウンロードしますが、過去のリビジョンを使用してダウンロードすることも可能です。
> td wf download Usage: td workflow downloadOptions: -r, --revision REVISION specific revision name instead of the latest revision -o, --output DIR extract files in this output directory (default: same with project name) -e, --endpoint HOST[:PORT] HTTP endpoint (default: http://127.0.0.1:65432) -L, --log PATH output log messages to a file (default: -) -l, --log-level LEVEL log level (error, warn, info, debug or trace) -X KEY=VALUE add a performance system config -c, --config PATH.properties Configuration file (default: /Users/yuki.kusakabe/.config/digdag/config) --version show client version
ダウンロードを実行すると、指定のディレクトリにプロジェクトに含まれるすべてのファイルがダウンロードされますので、お好きなエディターで開き編集をします。
その2:Project単位でのTDへのアップロード
ローカルでの編集を終えたら編集したファイルをプロジェクトごとTDコンソールへアップロードします。プロジェクトをアップロードする際は、プロジェクトのディレクトリに移動してからプッシュコマンドを実行します。
> cd Project名 > td wf push Project名 Creating /ディレクトリ/Project名/.digdag/tmp/archive-1111.tar.gz... Archiving workflow名.dig Workflows: workflow名.dig Uploaded: id: 999999 name: Project名 revision: revision名 archive type: s3 project created at: YYYY-MM-DDTHH:MM:SSZ revision updated at: YYYY-MM-DDTHH:MM:SSZ
これでブラウザでTDコンソールを開き、アップロードしたWorkflowを見るとプッシュした日付で新しいリビジョンが作成されていることを確認します。この際に気をつける点としては、複数人で同一のプロジェクトを編集している場合、ローカルで修正したタイミングで、別の人が修正をし、それに気づかずプッシュをすると競合してしまい別の人の修正内容が消えてしまうため、コミュニケーションを取りながら行う必要があります。また、TDコンソール上で直接修正をする場合は、保存するときに他の人が修正をしていると以下のようなウィンドウが表示され、競合していることがわかります。
今回は、Workflowのダウンロードとアップロードについて説明をいたしました。ブラウザのTDコンソール画面も編集機能は日々向上しつつあり、できることも多くなってきていますが、慣れ親しんだローカルでのエディターのほうが作業効率が高くなる場合も往々にしてあるかと思います。是非ご活用いただければと思います。
次回は、Workflow操作で過去分のリランをしたい場合についてTD-Toolbeltでどう実行するのかについて説明をする予定です。