Slide 1

Slide 1 text

REDASH JOURNEY istyleのBI基盤の歴史、向き合ってきた課題
 Can we change the BI? リダッシュ・ジャーニー
 山本 泰毅


Slide 2

Slide 2 text

contents
 第1部 istyleのBIツールの歴史・・・・・・・・・・・・・・・・・・・・・・・・05
 第2部 istyleのデータソースの歴史・・・・・・・・・・・・・・・・・・・・09
 第3部 小ネタ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・16
 第4部 今後の展望・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・21


Slide 3

Slide 3 text

プロローグ
 これは株式会社istyleで働く社員の「やーすー」が20年続くwebサービ スの分析基盤の運用の中で、BIツールやデータソースに関する知見 をまとめたスライドである。
 
 登場人物紹介
 やーすー(@YASU11552288):
 株式会社 istyleには新卒入社で4年目。主にGCP運用、BigQuery, Digdag, Embulk, Redashといった技術を利用して分析基盤の運用を 行なっています。


Slide 4

Slide 4 text

会社・サービス紹介
 コスメ・美容の総合サイト「@cosme」
 国内外3万以上のブランド、30万点以上ものコスメの商品データベースと、クチコミ検索機 能や新商品情報などを備えた日本最大のコスメ・美容の総合サイト。 1999年のオープン以来、会員数・クチコミ件数・ページビュー数ともに伸び続け、累計ク チコミ数は1,500万件を突破しています。


Slide 5

Slide 5 text

第1部 istyleの BIツールの歴史

Slide 6

Slide 6 text

Redash採用の背景:内製BIツール保守コストの増大
 - 2017年まで内製BIツールでデータ抽出をカバー
 - 対応データソース
 - SQL Server, BigQuery(legacy)
 - 新規サービスはほぼMySQLであったり、今後データ ソースの種別が増えるたびに改修コストが増える
 - グラフ描画機能なし
 → Redashの採用
 - 改修コスト、接続DBの対応数、IAMなどの観点で採用
 - シンプルなダッシュボードとしての機能が良い
 - 英語メニューが懸念として上がった
 現在のRedash
 - 登録クエリ数:1867, 直近半年の利用者数:163人
 
 第
 1
 部
 
 BI ツ| ル の 歴 史

Slide 7

Slide 7 text

他BIツールの住み分け
 - 社内で利用されているBIツール
 - Redash
 - 定点観測のKPI、ダッシュボードツールとして利用
 - 営業からプロデューサーまで幅広く利用
 - Tableau Desktop & Tableau Server
 - GUIのテーブル結合や対応データソースの数が魅力
 - ↑コード管理できず保守や引き継ぎコスト高
 - Google Analytics 360
 - 約3億PV/月のためサンプリングが発生しやすい
 - BigQueryへデータをエクスポートし分析に利用
 - 注目しているBIツール
 - Google Data Studio (Data Portal)
 - Looker
 第
 1
 部
 
 BI ツ| ル の 歴 史

Slide 8

Slide 8 text

今後BI(ダッシュボード)ツール選定の際に考慮すること
 - 多種のIAM
 - 実行・作成・閲覧・管理者
 - 部署単位・データ単位(個人情報・売り上げなど)で分けられ るグループ管理
 - Redash運用アンチパターン - Speaker Deck 
 - バージョン管理
 - 修正を手軽に戻せる安心感
 - 複数人ユーザーが同時編集する可能性がある場合は特に
 - 集計・描画の機能と保守性のトレードオフ
 - 何でもできるツールは何でもできるようになるまでの教育コ ストが高い
 - BIツールはデータ取得(SQL)と
 集計・描画(GUI)で大きく構成されている
 - 集計・描画が多機能なほど便利だが、コード管理
 などできず保守コストが高くなる傾向にある
 → Redashはいい塩梅だと思います
 第
 1
 部
 
 BI ツ| ル の 歴 史

Slide 9

Slide 9 text

第2部 istyleの データソースの歴史

Slide 10

Slide 10 text

複雑化するクエリと異機種DBをまたがる要望の増加
 - 2017頃まで:分析DB1台(SQL Server)+各サービスの待機系を利 用
 - 分析用のクエリに耐えきれないことが増えてきた
 - 実行時間30分越えなど
 - analyst experienceが低い
 - 異機種DBとの連携はSQL Serverの
 OPEN QUERY関数を利用
 - SQL Server記法のSQLの中にMySQL記法が
 混じり可読性が低い
 - 保守しづらい
 → 既に利用していたBigQueryをデータウェアハウスとして
 利用することに
 第
 2
 部
 
 デ| タ ソ| ス の 歴 史

Slide 11

Slide 11 text

BigQuery上のデータウェアハウスについて
 - 分析用のためデータの同期は日次
 - Embulkでバッチ処理
 - テーブルエクスポートが10行程度で記述可
 - 様々なDB Plugin&その他がある
 - Embulk(エンバルク)プラグインのまとめ - Qiita 
 
 
 
 
 
 - BigQueryのコスト(SQLで計算可能)
 - 同期:約450テーブル/日
 - クエリ実行数:約3000クエリ/月 (DW以外のPJT含まず)
 第
 2
 部
 
 デ| タ ソ| ス の 歴 史

Slide 12

Slide 12 text

DW(バッチ)は作ったがリアルタイムが求められることも
 - 日次・月次のKPI管理などには使えるDWだが
 リアルタイムのデータが求められることもある
 - 分析ではなくオペレーション業務でデータが必要な場合
 → Prestoの導入
 - 分散型のSQLクエリエンジン (https://prestodb.io/)
 - インメモリでサクサク
 - 異なるDBを1SQLでJOINできる魅力
 - SQL SERVERの
 OPENQUERY関数の課題解消
 第
 2
 部
 
 デ| タ ソ| ス の 歴 史 クライアント (BIツール、アナリストなど) SQL etc.

Slide 13

Slide 13 text

Prestoの利用例
 1. DBへの接続情報をカタログと呼ばれる設定ファイルに記述
 
 
 
 
 2. クエリを実行
 第
 2
 部
 
 デ| タ ソ| ス の 歴 史

Slide 14

Slide 14 text

現在のRedash周辺のざっくりデータ分析基盤
 
 
 
 
 
 
 
 
 
 - アプリケーション要望を叶えるために
 別途ストリーミングに対応したHadoop基盤開発中
 - @cosmeにおけるビッグデータのこれまでとこれから 
 第
 2
 部
 
 デ| タ ソ| ス の 歴 史 BigQuery ユーザーの行動ログ クチコミや EC・実店舗 購買ログなど

Slide 15

Slide 15 text

現在のデータ分析基盤で出てきた課題
 - DW PJTに不要なデータセット乱立
 - GCPはプロジェクトという単位の下にデータセット(DB)、テーブル が存在する
 - プロジェクト毎にサービス単位でIAM管理可能
 - 種類:データ閲覧者、 データ編集者、データオーナー、ユーザー、ジョブユーザー、 管 理者、メタデータ閲覧者
 - tmpで格納したいテーブルなどもあるためDW PJTには基本的に データ編集者で付与していた
 → アナリストが自由に使えるBI PJTを作成(移行中)
   データセットの作成・tmpのテーブルは BI PJTで作成
 DW PJTは閲覧のみ可でクリーンなプロジェクト運用を目指す
 第
 2
 部
 
 デ| タ ソ| ス の 歴 史

Slide 16

Slide 16 text

第3部 小ネタ

Slide 17

Slide 17 text

Google Compute EngineにRedash配布Versionは何があるのか
 - GCEに構築する公式の手順はこちら
 
 
 
 
 
 
 - 2019年9月現在、公式の手順には Redash ver 5.0.2
 のイメージが例として出てきている
 - 調べると過去にはRedash ver 0.9.1もあったらしい
 - 他のversionのイメージも配布されているか知りたい!!
 第
 3
 部
 
 小 ネ タ

Slide 18

Slide 18 text

どう調べるか
 - 手順ではイメージのファイルをGoogle Cloud Storage(GCS)
 から呼び出している
 
 
 
 → gs://Redash-images/ のオブジェクトリストを取得すればいい
 → 権限エラーで失敗
 
 GCSの権限でstorage.objects.get はあるが
 storage.objects.listは与えられていない…
 →片っ端からgetしたらわかるんじゃないか 
 第
 3
 部
 
 小 ネ タ

Slide 19

Slide 19 text

tarファイルの名前を推測
 - Redash.5.0.2-b5486-build2.tar.gzの
 「Redash.5.0.2-b5486」部分はdocker hubで
 配布しているRedash imageのtag名から来ているみたい
 - https://hub.docker.com/r/Redash/Redash/tags 
 - docker hubはimageのtag一覧を取得できるAPIを提供しているので利 用する
 - https://registry.hub.docker.com/v2/repositories/Redash/Redash/tags 第
 3
 部
 
 小 ネ タ

Slide 20

Slide 20 text

結果…圧倒的敗北!
 
 
 
 
 
 
 - 取得したtagでGCSからイメージを取得できたのは公式手順にあるイ メージのみだった
 - 敗北の反省
 - 何も見えないわからないものに無闇に検索かけた時点で敗北
 - https://github.com/anntoque/look-Redash-images/blob/master/look-Redash-images.py 
 第
 3
 部
 
 小 ネ タ

Slide 21

Slide 21 text

第4部 今後の展望

Slide 22

Slide 22 text

非エンジニア部署の方へのSQL普及
 - BIチームのタスクは6割データ抽出依頼、4割改善
 - データ抽出タスクの効率化を目指してSQL講座の準備中
 - 一番の課題は分析しやすいビュー設計
 - 近年マイクロサービス化の影響で多くのDBが生まれ分析泣 かせになってきた
 サービス横断の分析
 - 各サービス共通の会員IDを保持しているため
 店舗、ECで購入した人がその後レビューしたかや
 どの商品と比較検討したかがわかる
 - もう少し発展した分析を行う時間を増やしていきたい
 WE ARE HIRING!!
 第
 4
 部
 
 今 後 の 展 望