re:dashのQuery Snippetsについて

re:dash Advent Calendar 2016 2日目の記事です。

qiita.com

Query Snippetsとは

0.12で追加されたre:dashの新機能で、よくあるSQLを文字通りスニペットとして登録することができ、クエリエディター上でSQLを書く際に、特定のキーワードに反応してスニペットを保管してくれます。

今年のre:dash Advent Calendar 1日目の記事でも少し触れられていました。

blog.redash.io

qiita.com

スニペットを登録する

0.12ではSettingsにメニューが追加されていますので、試しにスニペットを登録してみます。

f:id:ariarijp:20161202150141p:plain

Triggerにはどんな文字列が入力されたときにスニペットで補完するかを指定できるので、ここでは__cnt としています。アンダースコア2つを付けたのは、スニペットだとわかるようにするためですが、どんな文字列でもよいと思います。

Descriptionは必須ではないのですが、説明を書いておいたほうがよいでしょう。

Snippetに補完したいSQLを書きます。

ここで ${1:table} という文字列を使用していますが、これについては後述します。

一通り書き終わったら保存しましょう。

f:id:ariarijp:20161202150155p:plain

スニペットを使用する

スニペットを登録したら、クエリエディターで使用してみます。

f:id:ariarijp:20161202150209g:plain

クエリエディター上で __ と入力すると __cnt が補完され、決定すると __cnt でトリガーされるスニペットがエディター上に展開されます。

先程、 ${1:table} と入力した箇所はプレースホルダーになりますので、その箇所をテーブル名で置き換えてクエリーを実行しました。

プレースホルダーは複数記述することができ、エディター上ではTABキーで移動しながら入力できます。

テーブル名やカラム名の補完も相まって、すばやくSQLを書くことができますね。

まとめ

スニペットを使うことで作業の効率化はもとより、エンジニアでなくてもある程度お決まりのSQLが書けるようになるかもしれません。

また、似たようなクエリーを無邪気にForkしていくと、あっという間にクエリーが増えていくので、使い回しの効くものをスニペットにしておくというような運用もよさそうです。

とはいえ、実は現在プロダクションで使用しているバージョンが0.10なので、アップデートから検討しなければいけないというのが、個人的な悩み事です。

re:dash Advent Calendar 2016 について

まだまだ枠が空いているようです。

今年はre:dashが話題にあがることも多かったですし、実際に使われているかたも増えているような印象なので、小ネタでも参加してみてはいかがでしょうか?