ZEALS TECH BLOG

チャットボットによる会話広告『fanp』を開発する株式会社ZEALSのテックブログです。技術やエンジニア文化について情報を発信します。

Redash v3.0で使える便利機能まとめ

f:id:zeals-engineer:20190124182957p:plain

みなさんこんにちは、インターン生の久保田と申します!
エンジニアではないのですが、MySQLを使った会話データの分析業務を主に担当しています。

今回は、ZEALSで使っているBIツールの『Redash』の便利な機能についてお伝えしたいと思います!

Redashとは?

redash.io

Redashは、SQLの分析結果をわかりやすく可視化し共有するオープンソースBIツールです。

SQLでクエリを作成することで、データソースからデータ取得をします。
ZEALSでは、KPIなど自分が知りたい情報をすぐに可視化できるために使用していて、日々の事業改善に役立てています。

現在ZEALSではv3.0を使用しているので、v3.0で使用可能な機能をご紹介していきます。

Dashboard

書いたクエリをまとめることができます。
「あのクエリどこあったっけ?」とクエリを探す手間が省けたり、クエリの実行結果を比較することができます。

使い方

事業のKPIをまとめたり、施策ごとの数値をまとめたりする使い方ができます。
自動更新の設定をしておけば、好みのタイミングでの出力数値を毎日管理することもできます。

f:id:zeals-engineer:20190129135457p:plain

VISUALIZATION

クエリの実行結果を可視化・見える化してくれる機能です。
RedashのVISUALIZATIONはそこまで種類が多くないのですが、棒グラフや折れ線グラフなどの基本的なものは作成可能です。

できること

f:id:zeals-engineer:20190129135436p:plain

  • chartで棒グラフ、折れ線グラフを作ることができます。(複数の形を使うことも可能です[図を参照])
  • 円グラフで割合や比率を出すことが可能です
  • 箱ひげ図(Boxplot)や、ピボットテーブル(Pivot Table)などもあるが使い勝手はあまり良くないと感じました
    (Pivot Tableに関してはデータ量が多いと重くなってしまうので注意)

パラメータ機能

クエリ内に {{}} を含めると, クエリにパラメータ(変数)を指定することができます。

これを使うことによって、汎用的なクエリ文を作ることが可能です。
idが変わるたびにクエリを作らずに済み、Redashが整理されます。

使い方

f:id:zeals-engineer:20190129135409p:plain

上記の画像のように {{}} をつけると下にプレースフォルダの入力フォームが出現します。
プレースホルダーに値を入力して実行すると、入力した値がパラメータに反映されます。

{{}} の中身の文字を同じにすればすべて同じ変数と見なされます。
逆に、 {{}} の中身の文字を変えると違う変数として扱われます。

f:id:zeals-engineer:20190124212751p:plain

プレースフォルダ内の入力に関してはいくつかtypeがあります。
プレースフォルダの横の設定を押すと上記の画面が出ますので、参考にしてみてください。

・ Text:自由入力
・ Number:数字を選択できる
・ Dropdown List:これを選択すると自分で選択できる内容を決めることができる
・ Date, Date and Time, Date and Time(with seconds):日付を選択できる

Query Snippets

クエリエディター上でSQL文を書く際に、特定のキーワードに反応して入力をサポートするスニペットを保管してくれます。
これにより、よく使うSQL文を保管しいつでも呼び出すことができるので、作業の効率化が図れます。

f:id:zeals-engineer:20190129141706p:plain

使い方

Triggerを設定して、Snippetに使いたいものを入力します。
クエリ上でTriggerを入力するとスニペットに変換することができます。
画像のように設定すると default という入力が、下のsnippetに入力されてる文章に変換されます。

Queryフィルタ

WHERE句で絞り込んだ結果を、さらに絞りたい場合に使います。

使い方

f:id:zeals-engineer:20190129160511p:plain

SELECT句にas '< columnName >::filter'のように別名をつけると、検索結果のフィルタリングができます。
さらに、filter の部分を multi-filter とすると、複数のフィルタリング条件の選択が可能になります。

その他

  • クエリ結果への HTML 埋め込み機能 → 実行結果に色をつけたり、リンク集をつけることができます
  • Slack通知機能 → SlackにRedashの実行結果を通知させることができます
  • query_< query ID > でRedashの他のクエリのIDを指定することで、他のクエリの実行結果をテーブルのように参照できます

などなど、様々な使い方ができます。

まとめ

ZEALSではビジネスサイドのメンバーが会話のパフォーマンスを確認するため等に使っているツールなので、VISUALIZATIONを使って結果を見やすく出力すると喜んでもらえます。

ここまで解説したとおりRedashは便利なんですが、好き放題にクエリを作成してしまうと、カラム名が人によって異なったり似たようなクエリが量産される可能性があります。
命名規則を決めたりするなど、社内にRedashの責任者を置くことで、しっかり管理することが大切だと思います!