Redashでドリルダウンを試す
1.概要
以下を参考にドリルダウンを試す
2.データソースの準備
2-1.APIを有効化する
※以下画面で「有効にする」を押下
2-2.サービスアカウントを作成し、JSONファイルをダ
ウンロード
2-3.スプレッドシートを共有
サービスアカウントのメールの欄にあるアドレスを指定して「共有」
(補足)スプレッドシートは以下の3シート
・categories
・menus
・receipts
※一部のみのスクショ(30件中24件まで)
2-4.RedashのDataSourceを作成
・JSONは先ほどダウンロードしたファイル
2-5.クエリ実行
・スプシID | n ( n = sheet番号)
3.各シートの内容を結合する
3-1.DataSourceにQuery Resultsを追加する
3-2.各クエリ結果を結合
・クエリ
(例)URLでクエリIDを確認し、”http://xx.xxx.xxx.xxx:5000/queries/6/source”の場合、テーブル名は”query_6”
SELECT menus.id,
categories."primary" AS primary_category,
categories.secondary AS secondary_category,
menus.title,
menus.price,
receipts.purchase_date,
receipts.purchaser,
receipts.region
FROM query_6 AS menus
INNER JOIN query_5 AS categories ON menus.category_id = categories.id
INNER JOIN query_7 AS receipts ON menus.id = receipts.menu_id
・結果
4.ドリルダウン用のクエリを作成
(参考)パラメータ
・渡すとき " p_xxxxx=' aaaaaa' "
・受けるとき " {{ xxxxx }}
4-1.primary_category
・クエリ
SELECT primary_category,
COUNT(*) AS cnt,
'<a href="http://35.243.114.140:5000//queries/10?p_primary_category=' || primary_category || '" target = "_blank">ドリルダウンする</a>' AS drill_down
FROM query_8
GROUP BY primary_category
・結果
4-2.secondary_category
・クエリ
※条件「'{{primary_category}}' = 'xxx'」をORで含めることにより、'xxx'を入力したときはすべてのレコードでTRUE('xxx' = 'xxx'なので)となり、フィルターをかけていないのと同義となる。
SELECT secondary_category,
COUNT(*) AS cnt,
'<a href="http://35.243.114.140:5000//queries/11?p_primary_category=' || primary_category || '&p_secondary_category=' || secondary_category || '" target = "_blank">ドリルダウンする</a>' AS drill_down
FROM query_8
WHERE '{{primary_category}}' = 'xxx'
OR primary_category = '{{primary_category}}'
GROUP BY primary_category,
secondary_category
・結果
4-3.title
・クエリ
SELECT title,
COUNT(*) AS cnt
FROM query_8
WHERE ('{{primary_category}}' = 'xxx'
OR primary_category = '{{primary_category}}')
AND ('{{secondary_category}}' = 'xxx'
OR secondary_category = '{{secondary_category}}')
GROUP BY primary_category,
secondary_category,
title
・結果
5.ダッシュボード
・上記「4-3.title」のクエリをダッシュボードとして、カテゴリを変更することでマルチフィルターの同じことができる。