データマネジメントチームの渡部 真子です。
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」ボタンをクリックする動作です。最もよく行う動作なので、ぜひ覚えておきましょう。

Queryを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

QueryをRunするショートカット
結果
コメントアウトする
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」ボタンをクリックする動作と同じです。これもよく使うので、ぜひ覚えておきましょう。
Queryを保存する
Queryを保存するショートカット
Run結果の表示/非表示を切り替える
Queriesで長いSQLを記載する際に画面を広く使いたいときに、Table PreviewやQuery Resultなどの「Run」した結果を表示している部分を非表示にします。

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
選択した行の記述を1行上下に動かすショートカット
まとめ
今回は意外と知られていないけれど、使うととても便利なショートカットキー7つをご紹介しました。他にも便利なショートカットはたくさんあるので、知りたい方はこちらのProduct Documentをご参照ください。
