データマネジメントチームの渡部 真子です。
Treasure Data CDPのコンソール上でQueryやWorkflowを作成する時に、ボタンをひとつひとつマウスで押下する回数が多く面倒・・・と思ったことはありませんか?実はTreasure Data CDPにもショートカットが用意されています。この記事は知っておくと便利なTreasure Dataコンソールのショートカット7選をご紹介します。
できる動作 | Windows/Lunux | Mac | 使えるコンソール | |
1 | QueryをRunする | Ctrl + Enter | Command (⌘) + Enter | Queries |
2 | コメントアウトする | Ctrl + / | Command (⌘) + / | QueriesWorkflow |
3 | Queryを保存する | Ctrl + S | Command (⌘) + S | Queries |
4 | Run結果を表示/非表示する | Ctrl + B | Command (⌘) + B | Queries |
5 | 検索する | Ctrl + F | Command (⌘) + F | QueriesWorkflow |
6 | 置換する | Ctrl + H | Command (⌘) + Option + F | QueriesWorkflow |
7 | 選択した行を1行上下に動かす | Alt + ↑ or ↓ | Option + ▲ or ▼ | QueriesWorkflow |
QueryをRunする
Queriesで書いたSQLを動かすときに、コンソール右上の「Run」ボタンをクリックする動作です。最もよく行う動作なので、ぜひ覚えておきましょう。
試しに以下のサンプルコードをコンソールに貼り付けて、ショートカットで実行してみましょう。
WITH tbl AS ( SELECT a FROM ( VALUES 1,2,3,4,5,6,NULL ) AS t(a) ) SELECT a, IF (a%2=0,'even', 'odd') AS number_type FROM tbl
結果
コメントアウトする
Queries 上なら「– 」、Workflow上なら「# 」を行の冒頭に入れてコメントアウト表記にしてくれます。
先ほどのサンプルコードの上にコメントを入力し、ショートカットを利用してみましょう。
サンプルコード
一時テーブルtbl に1,2,3,4,5,6,NULLを入れ、number_typeというカラムに偶数ならeven、それ以外ならoddをそれぞれ返す
WITH tbl AS ( SELECT a FROM ( VALUES 1,2,3,4,5,6,NULL ) AS t(a) ) SELECT a, IF (a%2=0,'even', 'odd') AS number_type FROM tbl
Queryを保存する
Queriesで作成したSQLを保存するときに、コンソール右上の「Save」ボタンをクリックする動作と同じです。これもよく使うので、ぜひ覚えておきましょう。
Run結果の表示/非表示を切り替える
Queriesで長いSQLを記載する際に画面を広く使いたいときに、Table PreviewやQuery Resultなどの「Run」した結果を表示している部分を非表示にします。
検索する
Queries や Workflow のコンソール上に記載のある特定の文字列や数字を検索できます。コンソール右上の「虫メガネ」マークをクリックする動作と同じです。
例えば、以下のようなサンプルコードで、id1を検索したり特定の年月を検索したりするときに便利です。
サンプルコード
SELECT member_id,month,sales FROM( VALUES ('id1','2020-04',1000 ) ,('id2','2020-04',5000) ,('id3','2020-04',3000) ,('id1','2020-05',2000) ,('id2','2020-05',2000) ,('id3','2020-05',4000) ,('id1','2020-06',6000) ,('id2','2020-06',10000) ,('id3','2020-06',3000) ) AS t(member_id,month,sales)
置換する
Queries・Workflowのコンソール上に記載のある特定の文字列や数字を置換できます。長いdigファイルの中の特定のdatabase名を変換したいときなどに利用すると便利です。
例えば、こちらのサンプルコードの場合は、WHERE句で記載したため、エラーが出てしまいます。WHERE句をHAVING句へ置換してみましょう。
サンプルコード
_export: td: database: blog +sales_average: td>: query: | WITH tbl AS ( SELECT member_id,month,sales FROM( VALUES ('id1','2020-04',1000) ,('id2','2020-04',5000) ,('id3','2020-04',3000) ,('id1','2020-05',2000) ,('id2','2020-05',2000) ,('id3','2020-05',4000) ,('id1','2020-06',6000) ,('id2','2020-06',10000) ,('id3','2020-06',3000) ) AS t(member_id,month,sales) ) SELECT member_id,AVG(sales) AS avg_sales FROM tbl WHERE 5000 <AVG(sales) GROUP BY member_id ORDER BY member_id
選択した行の記述を1行上下に動かす
QueriesやWorkflowのコンソール上の特定の行を並び替えたい時に利用できます。
先ほどWHERE句をHAVING句に置換しましたので、HAVING句をGROUP BY句と入れ替えてみましょう。Runした際にエラーとならず、結果を抽出できます。
サンプルコード
_export: td: database: blog +sales_average: td>: query: | WITH tbl AS ( SELECT member_id,month,sales FROM( VALUES ('id1','2020-04',1000) ,('id2','2020-04',5000) ,('id3','2020-04',3000) ,('id1','2020-05',2000) ,('id2','2020-05',2000) ,('id3','2020-05',4000) ,('id1','2020-06',6000) ,('id2','2020-06',10000) ,('id3','2020-06',3000) ) AS t(member_id,month,sales) ) SELECT member_id,AVG(sales) AS avg_sales FROM tbl GROUP BY member_id HAVING 5000<AVG(sales) ORDER BY member_id
まとめ
今回は意外と知られていないけれど、使うととても便利なショートカットキー7つをご紹介しました。他にも便利なショートカットはたくさんあるので、知りたい方はこちらのProduct Documentをご参照ください。