つかわれるプラットフォーム 〜デザイン編〜@DPM#2

6fe6b19f7204487ab25ceb3b3a70204e?s=47 takegue
December 02, 2019

つかわれるプラットフォーム 〜デザイン編〜@DPM#2

6fe6b19f7204487ab25ceb3b3a70204e?s=128

takegue

December 02, 2019
Tweet

Transcript

  1. つかわれるデータプラットフォーム 〜デザイン編〜 ஛໺ फ़ี %BUB1MBUGPSN.FFUVQ

  2. ͜ΕΛ͓࿩͢͠Δਓ ஛໺ फ़ีʢ!UBLFHVF  %BUB1MBUGPSN .FFUVQ 3FUUZιϑτ΢ΣΞΤϯδχΞ $PSF7BMVF σʔλΞʔΩςΫςΟϯά σʔλͷՁ஋Λ࠷େԽ͢Δ࢓૊Έઃܭͷ࣮ݱ

    ࣥච׆ಈ ʮ༏ઌ౓ֶशʹΑΔਪનจ͔Βͷݟग़͠நग़ʯ03ֶձ ʮ΍ͬͯΈΑ͏ʂ ػցֶशʢ4PUXBSF%FTJHOʣʯ ʮࢼֶͯ͠Ϳ ػցֶशೖ໳ʯ ʮσʔλج൫ͻͱΓ"EWFOU$BMFOEBSʯ /FX  ଞʜ
  3. None
  4. None
  5. 分析上で発生する悲しみ %BUB1MBUGPSN .FFUVQ

  6. 分厚いjoin (わからない)

  7. 依存関係を壊したくなくて乱立するオレオレview

  8. 整合性が保てるか不安なダッシュボード群

  9. %BUB1MBUGPSN .FFUVQ これらは設計(デザイン)の失敗が原因

  10. 分析のためのデザイン %BUB1MBUGPSN .FFUVQ 注意を払うべきデザインの3つの観点をさっくり紹介

  11. 42- 1ZUIPO 3 分析のためのデザイン: 42-WT1ZUIPOʁ 利用者を想定した言語(インタフェース)選びも選定基準のひとつ • データアクセスのため目的特化 • 汎用的なプログラムが書きづらい

    • エンジンごとに命令セット変わる • コードの保守・運用しづらい • 汎用的なプログラム描きやすい • ライブラリも充実... • 機械学習等への接続も比較的容易 • コードの保守・運用はしやすい
  12. データをディメンションテーブルとファクトテーブルに分けて整理 分析のためのデザイン: εϊʔϑϨʔΫεΩʔϚ %BUB1MBUGPSN .FFUVQ ディメンジョンテーブル: テーブルは非正規化状態で保持 ファクトテーブル: ディメンションに対して集計

  13. ԣ࣋ͪ ॎ࣋ͪ 分析のためのデザイン: ԣ࣋ͪ WTॎ࣋ͪ *% ଐੑ ଐੑ 1 John

    Hoge 2 Ben Fuga *% ଐੑ ஋ 1 属性1 John 1 属性2 Ben 2 属性1 Ben 2 属性2 Ben • 型制約をつけやすい • 補完がききやすい • 記述が冗長になりやすい • ピボットテーブル向き • 制約の保持が厳しい
  14. BigQuery上での実践: Rettyでの事例 %BUB1MBUGPSN .FFUVQ

  15. データフロー 依存の方向性 データ 置き場

  16. データフロー 依存の方向性 データ 置き場 ディメンション ファクト 原則 横持ち 各 Projectは

    指標から選ぶ ビューで 依存関係の明示 単方向の依存 だいたいSQL
  17. イベント層 %BUB1MBUGPSN .FFUVQ - イベントログ系のレコードテーブルを整形、構造化する。 - クロスプラットフォームである程度共通に使えるような構造化 (自前のログ基盤, Firebase, GoogleAnalytics

    ...) - 不要なカラムや前処理等も行う
  18. エンティティ層 %BUB1MBUGPSN .FFUVQ ドメインにおける主要なエンティティについてまとめる - プライマリテーブル(core); - joinの手間を減らし、使いやすい形式に構造化 - ユニーク制約等を実現

    - as-was分析のために各entittyでhistoryを構築 - ディメンジョンテーブル(dim__xxx): 分析カスタム定義のディメンジョン
  19. 指標層 %BUB1MBUGPSN .FFUVQ - ファクトテーブルの構築する - 特定の指標の最小粒度(grain)の構築 - 同じデータセット内では、必ず同じ指標を持つ 指標に着目したグルーピング

    - 指標のバージョニングの実現(自動生成)
  20. %BUB1MBUGPSN .FFUVQ Q. 誰のためのデザイン?

  21. %BUB1MBUGPSN .FFUVQ 分析者 ステークホルダ 意思決定者 データ基盤 開発者 アプリケーション 開発者 Q.

    誰のためのデザイン?
  22. %BUB1MBUGPSN .FFUVQ 分析者 ステークホルダ 意思決定者 データ基盤 開発者 アプリケーション 開発者 転送基盤

    分析基盤 レポーティング 基盤 ログ基盤 ヒトとヒトのつなぎめに価値を作る: デザインの問題 Q. 誰のためのデザイン?
  23. ☺ %BUB1MBUGPSN .FFUVQ つかいやすい基盤でみんなを幸せになろう!

  24. %BUB1MBUGPSN .FFUVQ