Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Redashダッシュボード・クエリ作成の時短方法

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 Redashダッシュボード・クエリ作成の時短方法

Avatar for Kentaro Ueda

Kentaro Ueda

May 28, 2021
Tweet

More Decks by Kentaro Ueda

Other Decks in Programming

Transcript

  1. © DMM.com 自己紹介 1 • 2017年入社 Compass ID: KentaroUeda0138 •

    総合トップページの開発・KPI 改善に従事 • 上田 健太郎 Twitterハッシュタグ: #redashmeetup
  2. © DMM.com 5 • クエリパラメータ • フィルター • rollup関数 対策:

    Redash・SQLの機能を活用し、クエリの汎用性を高める ・クエリに変数を埋め込むための機能 ・文字列/日付/数値/プルダウンメニュー など、様々な形式に対応 Twitterハッシュタグ: #redashmeetup
  3. © DMM.com 6 • クエリパラメータ • フィルター • rollup関数 対策:

    Redash・SQLの機能を活用し、クエリの汎用性を高める ・クエリに変数を埋め込むための機能 ・文字列/日付/数値/プルダウンメニュー など、様々な形式に対応 ・URLの指定、like文との併用も可能 ・case式と併用することで、  条件式をパラメータ化することも可能 Twitterハッシュタグ: #redashmeetup
  4. © DMM.com 7 対策: Redash・SQLの機能を活用し、クエリの汎用性を高める • クエリパラメータ • フィルター •

    rollup関数 Twitterハッシュタグ: #redashmeetup ・集計結果をフィルターする機能 (=クエリの再実行が不要) ・テーブル出力だけでなく、グラフでも利用できる
  5. © DMM.com 8 対策: Redash・SQLの機能を活用し、クエリの汎用性を高める ・集計結果をフィルターする機能 (=クエリの再実行が不要) 出力値に番号を振っておくと、 ソートされて見やすくなる •

    クエリパラメータ • フィルター • rollup関数 ・テーブル出力だけでなく、グラフでも利用できる Twitterハッシュタグ: #redashmeetup
  6. © DMM.com ・AWS Athena (Presto) や Google BigQuery などに実装させている関数 ・group

    by に rollup(“カラム名”) を指定すると、当該カラム粒度の全体分を集計できる 対策: Redash・SQLの機能を活用し、クエリの汎用性を高める • クエリパラメータ • フィルター • rollup関数 9 Twitterハッシュタグ: #redashmeetup
  7. © DMM.com ダッシュボード作成/運用コストの増大要因② • 過去の資産を再利用できいていなかった 10 • テーブルのパーティションをwhere句に指定 • 過去の資産

    = 多くのクエリに頻出するテンプレ的なSQL処理 • 集計日の前日をwhere句に指定 • データマート化できていない便利な集計 Twitterハッシュタグ: #redashmeetup
  8. © DMM.com • クエリスニペット • Query Results 対策: Redashの機能を活用し、過去の資産を再利用する ・特定のキーワードに対してスニペットを登録できる

    ・集計の前日指定「__cur: substr(cast(date_add('day', -1, current_date) as varchar), 1, 10)」のように登録 スニペット名に「__」など付けておと 迷惑になりにくい 11 Twitterハッシュタグ: #redashmeetup
  9. © DMM.com ダッシュボード作成/運用コストの増大要因④ • 集計の一部をRedashで行い、残りを別ツール (スプレッドシート) に分けていた 15 • 例:

    KPIツリーの集計・可視化 • 可視化としては上出来だったものの、  更新・計算の再現が困難に Twitterハッシュタグ: #redashmeetup
  10. © DMM.com 16 <中略> ダッシュボード化のコツ (KPI ツリーの場合) ・ツリーの構成図は別に作っておく ・ダッシュボードの構成図を元に作成する ・ウィジェットは大粒度→小粒度の順に並べる

    対策: 集計をRedashで完結させる • KPIのようなツリー状のものも、ウィジェットの粒度・配置を工夫すれば、  可視化に問題が生じなかった • 更新・計算の再現コストを大幅に削減 Twitterハッシュタグ: #redashmeetup ・フィルターを活用する
  11. © DMM.com まとめ 17 • Redashダッシュボード・クエリ作成の時短方法をご紹介 • クエリの汎用性を高める (Redash・SQLの機能を活用) •

    ダッシュボードの構成図を書く • エンジニアは知っていても、非エンジニアは知らないことがある → 是非拡散してください • 過去のクエリ資産を再利用する (Redashの機能を活用) • 集計はできるだけRedashで完結させる Twitterハッシュタグ: #redashmeetup