Redash運用に付きまとう課題とその解決方法
by
orkShinnosuke
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Copyright © 2018 eureka, Inc. All rights reserved. Redash運用に付きまとう課題と その解決方法 #redashmeetup
Slide 2
Slide 2 text
Copyright © 2018 eureka, Inc. All rights reserved. 2 ● 大久保 晋之介 ● 株式会社エウレカ BIチーム所属 ○ 社内屈指のRedashヘビーユーザー。 気がついたら運用を任されることに ● 好きなツール ○ Redash, Tableau, Jira ● Redashのversion ○ 3.0.0+b3134 自己紹介
Slide 3
Slide 3 text
Copyright © 2018 eureka, Inc. All rights reserved. 3 ● 従業員数 ○ 130名 (平均年齢28.5歳) ● 事業内容 ○ 自社サービス企画・開発・運営 ■ Pairs ■ Couples 株式会社エウレカ
Slide 4
Slide 4 text
Copyright © 2018 eureka, Inc. All rights reserved. 4 ● 最も選ばれている恋愛サポートアプリ ● 展開国 ○ 日本 ○ 台湾 ○ 韓国 ● プラットフォーム ○ PC, SP, iOS, Android ● 累計会員数700万人突破 Pairsについて 会員数の推移
Slide 5
Slide 5 text
Copyright © 2018 eureka, Inc. All rights reserved. 5 ● Redashの導入背景 ● Redashの使い方 / 運用上の課題 / 解決方法 ○ クエリ増殖期: 1年2ヶ月 (2015/10~) ○ API多用期: 1年1ヶ月 (2017/01~) ○ Tableau併用期: 4ヶ月目 (2018/03~) 目次
Slide 6
Slide 6 text
Copyright © 2018 eureka, Inc. All rights reserved. 6 ● Redashの導入背景 ● Redashの使い方 / 運用上の課題 / 解決方法 ○ クエリ増殖期: 1年2ヶ月 (2015/10~) ○ API多用期: 1年1ヶ月 (2017/01~) ○ Tableau併用期: 4ヶ月目 (2018/03~) 目次
Slide 7
Slide 7 text
Copyright © 2018 eureka, Inc. All rights reserved. 7 ● Pairs管理画面の代わりを探していた ○ Pairsフルスクラッチのタイミングに、それまでの管理画面に変わるものを検討 ■ 管理画面 → 売上やDAU等のサービス指標を確認していた ○ 管理画面を作り込む工数の確保が難しかった Redashの導入背景 (2015/10頃)
Slide 8
Slide 8 text
Copyright © 2018 eureka, Inc. All rights reserved. 8 Redashの導入背景 (2015/10頃) ● Redashに白羽の矢が立った理由 ○ 様々なデータソース (MySQL, BigQuery...etc)につなげる ○ 簡単にクエリ / グラフ / ダッシュボードの作成が可能 ○ SQLの保存でノウハウのストックが可能 ○ SQLの定期実行が可能 ○ APIが備わっている ○ CSVで結果をDLできる ○ 無償(OSS版)
Slide 9
Slide 9 text
Copyright © 2018 eureka, Inc. All rights reserved. 9 ● Redashの導入背景 ● Redashの使い方 / 運用上の課題 / 解決方法 ○ クエリ増殖期: 1年2ヶ月 (2015/10~) ○ API多用期: 1年1ヶ月 (2017/01~) ○ Tableau併用期: 4ヶ月目 (2018/03~) 目次
Slide 10
Slide 10 text
Copyright © 2018 eureka, Inc. All rights reserved. 10 ● グラフ/ダッシュボード作成 ○ 管理画面で確認していた指標 (売上 / 登録者数...etc) のダッシュボード化 ○ 施策の効果測定時にグラフ作成 Redashの主な使い方 (クエリ増殖期: 15/10~16/12) ● APIを使ってデータをSlackへ ○ Pairsの特に重要な指標 (売上etc) はAPIで取得したデータを Slackに流す ※Redashは希望者全員が使用可 社内の希望者全員がクエリ /グラフ等の作成/編集可能としていた オーソドックスな使い方が主流 ● クエリの保存/フォーク ○ 効果測定等で使ったクエリを保存。似たような分析実施の際はフォーク
Slide 11
Slide 11 text
Copyright © 2018 eureka, Inc. All rights reserved. 11 ● 課題1: 不正確 / 不要なクエリの乱立 ○ 正しくないクエリによる誤った意思決定の誘発 ○ 検索が困難に ● 解決方法1-1: Redashアカウント作成と権限変更フローの確立 ○ スキルに応じた権限に変更 ● 解決方法1-2: クエリに命名ルールを定める ○ 公式 / 非公式クエリに分けるため命名ルールを制定。非公式クエリはアーカイブ ■ [公式]サービス+国名: 粒度+内容(グルーピング) ● BIチームのLGTMがあれば[公式]マーク ● 例: [公式]Pairs日本: Daily売上(男女*デバイス) Redashの課題/解決方法 (クエリ増殖期: 15/10~16/12)
Slide 12
Slide 12 text
Copyright © 2018 eureka, Inc. All rights reserved. 12 ● 解決方法1-2: クエリに命名ルールを定める ○ 命名ルールは暫くは運用に乗った。が 途中から廃れた。厳密に運用するならメタデータを使 い、自動的に命名をチェックする仕組みと併用した方がよい ○ 公式/非公式クエリに分けるだけなら、最近の versionで対応するならPublish/Unpublishを使 い分けるのはあり ■ ※Unpublishクエリはdashboard等から参照できない Redashの課題/解決方法 (クエリ増殖期: 15/10~16/12)
Slide 13
Slide 13 text
Copyright © 2018 eureka, Inc. All rights reserved. 13 Redashの課題/解決方法 (クエリ増殖期: 15/10~16/12) ● 課題2: 使いづらいグラフ / ダッシュボードの乱立 ○ グラフ毎に違う配色によるミスリードが発生 ● 解決方法2-1: 配色ルールを制定 ○ 例:male/female, pc/sp/ios/android ○ 制定した結果グラフ / ダッシュボードの見やすさが改善 ○ こちらのルールは守られている (メリットの大きさ故? )
Slide 14
Slide 14 text
Copyright © 2018 eureka, Inc. All rights reserved. 14 Redashの課題/解決方法 (クエリ増殖期: 15/10~16/12) ● 課題3: BigQuery課金額の上昇 ○ 多くのエンジニア、ディレクターに開放したことでたまに怪しいクエリが ... ● 解決方法3-1: Scanned Data Limit (MB)を指定 ○ RedashのDataSource設定画面でScanするDataの上限を決められる ● 解決方法3-2: 課金額の可視化と定期的なチェック ○ GCPの費用という枠組みで、これは社内の SREチームが主にやってくれている ● 解決方法3-3: BigQueryデータソースに対するクエリ実行時のルール制定 ○ 例: “SELECT *”の禁止 ● 解決方法3-4: 課金が発生する旨の可視化
Slide 15
Slide 15 text
Copyright © 2018 eureka, Inc. All rights reserved. 15 運用を通しての学び (クエリ増殖期: 15/10~16/12) ● 権限整備は真っ先に対応するのが吉 ● 運用ルールは監視し続ける人(または仕組み)がいないと廃れる ● BigQuery使いすぎ問題を防ぐには制約と可視化が大事 ● 守るメリットが大きいルールほど守られやすい ● 運用の辛みを解消してくれる機能(Publish機能など)が続々リリースされてい るので、辛みを感じたらversion upすれば解消しないか確認
Slide 16
Slide 16 text
Copyright © 2018 eureka, Inc. All rights reserved. 16 ● Redashの導入背景 ● Redashの使い方 / 運用上の課題 / 解決方法 ○ クエリ増殖期: 1年2ヶ月 (2015/10~) ○ API多用期: 1年1ヶ月 (2017/01~) ○ Tableau併用期: 4ヶ月目 (2018/03~) 目次
Slide 17
Slide 17 text
Copyright © 2018 eureka, Inc. All rights reserved. 17 ● VisualizeはGoogle Spreadsheetへアウトソーシング ○ RedashでのVisualizeに限界を感じる ■ グラフをコピーしづらい etc ○ 有意差を判定するためにも Spreadsheetの方が都合がよかった Redashの主な使い方 (API多用期: 17/01~18/02) ● 定期実行クエリの多用 ○ 定期実行したクエリの実行結果を APIで取得して対応する分析が増加 事業成長に伴い、使い方のバリエーションが増える ● データ欠損検知でアラートを使用 ○ データ件数等をチェックし、異常値であれば Slackにアラートを流す
Slide 18
Slide 18 text
Copyright © 2018 eureka, Inc. All rights reserved. 18 ● 課題1: キューにクエリが詰まる ○ 定期実行クエリが増えた結果、クエリが詰まる事例が増えた ○ 前提としてこの場合の原因は色々考えられる。原因によって解決方法は変わる Redashの課題/解決方法 (API多用期: 17/01~18/02) 引用: 一歩踏み込むRedash https://speakerdeck.com/ariarijp/bu-ta-miip-mu-redash
Slide 19
Slide 19 text
Copyright © 2018 eureka, Inc. All rights reserved. 19 ● 解決方法1-1: 重い定期実行クエリを停止 ○ メタデータを使い実行に時間がかかっているクエリを検知 & 必要に応じて停止 原因: クエリが重い ● 解決方法1-2: クエリをチューニング ○ MySQLクエリをBQクエリに置き換えて数十分レベルで軽量化した事例も ● 解決方法1-3: 遅いクエリをタイムアウトさせる ○ REDASH_ADHOC_QUERY_TIME_LIMITを使う。定期実行クエリには効かない ● 解決方法1-4: クエリが詰る前のログを確認し実行者に注意喚起 ○ アナログだが地味に効果あり
Slide 20
Slide 20 text
Copyright © 2018 eureka, Inc. All rights reserved. 20 ● 解決方法1-5: キューの数を増やす ○ supervisord.confの設定で増やせる ● 解決方法1-6: クエリの定期実行時間が重ならないように可視化 ○ 同時実行数を減らすことで、キューがつまらないようにする ● 解決方法1-7: 後回しで良いクエリは”キャンセル” ○ v3.0の話ですがキャンセルボタンがうまく効かない .. 原因: クエリの同時実行数に対しキュー数が少ない
Slide 21
Slide 21 text
Copyright © 2018 eureka, Inc. All rights reserved. 21 ● 解決方法1-8: サーバー性能アップ ○ 要件に合わせてRedashサーバーをスケールアップ or スケールアウト 原因: クエリの実行結果が大きい
Slide 22
Slide 22 text
Copyright © 2018 eureka, Inc. All rights reserved. 22 運用を通しての学び (API多用期: 17/01~18/02) ● クエリがキューに詰まる件に関しては特効薬がない ● キューの数を増やす、サーバーをスケールアップするなどで一時的には負荷 が減ることはあるが、クエリが増えればまた同じ問題にぶつかる ● 重い定期実行クエリの停止、クエリが詰る前のログを確認し実行者に注意喚 起など、地道な改善作業を続けていくことが大事
Slide 23
Slide 23 text
Copyright © 2018 eureka, Inc. All rights reserved. 23 ● Redashの導入背景 ● Redashの使い方 / 運用上の課題 / 解決方法 ○ クエリ増殖期: 1年2ヶ月 (2015/10~) ○ API多用期: 1年1ヶ月 (2017/01~) ○ Tableau併用期: 4ヶ月目 (2018/03~) 目次
Slide 24
Slide 24 text
Copyright © 2018 eureka, Inc. All rights reserved. 24 ● Tableau導入の背景 ○ 膨大な量のデータ (数百~千万レコード) をVisualizeしたいという依頼の増加 ○ 主要KPI(売上やPairs内アクションetc)を様々な切り口から深掘りをしたいという依頼の増加 ■ 切り口が多岐に渡るので、 1個1個クエリをRedashで作っているとキリがない ○ →膨大なデータを扱えかつ Pivot機能とVisualize機能が充実したTableauで対応 Redashの主な使い方 (Tableau併用期: 18/03~現在) 多様化する分析ニーズに対応するためRedashとTableauを併用
Slide 25
Slide 25 text
Copyright © 2018 eureka, Inc. All rights reserved. 25 ● RedashとTableauの棲み分け ○ Tableau: 主要KPIを様々な切り口から見て深掘りする分析で使用 ○ Redash: Tableauに用意されている切り口でカバーできないアドホックな分析や、即時性が求め られる分析で使用(Tableauにデータを上げる前にはデータの中間集計・整形が必要 ) Redashの主な使い方 (Tableau併用期: 18/03~現在) 多様化する分析ニーズに対応するためRedashとTableauを併用
Slide 26
Slide 26 text
Copyright © 2018 eureka, Inc. All rights reserved. 26 RedashとTableau併用の結果(Tableau併用期: 18/03~現在) ● 併用してからまだ日が浅いけど... ● 分析依頼の増加に比べてRedashで 作られたクエリは増えていない ● うまくTableauで分析依頼の増加を受 け止めることができている
Slide 27
Slide 27 text
Copyright © 2018 eureka, Inc. All rights reserved. 27 運用を通しての学び (Tableau併用期: 18/03~現在) ● BIツールを使い分けることで、分析ニーズの多様化に対応できる ● 様々な切り口から見て深掘りする分析ではTableauは良い ● とはいえRedashも欠かせないので、引き続き併用していきたい
Slide 28
Slide 28 text
Copyright © 2018 eureka, Inc. All rights reserved. 28 参考文献 ● re:dash + BigQueryでクエリのコスト上限が指定できるようになった ○ http://ryotarai.hatenablog.com/entry/2015/12/17/104600 ● Redashの長期運用を見据えてクエリの名前付けについて考える ○ http://ariarijp.hatenablog.com/entry/redash-advent-calendar-day-24 ● 一歩踏み込む Redash ○ https://speakerdeck.com/ariarijp/bu-ta-miip-mu-redash ● Changing the Number of Workers ○ https://redash.io/help/open-source/admin-guide/maintenance
Slide 29
Slide 29 text
Copyright © 2018 eureka, Inc. All rights reserved.