つかわれるプラットフォーム 〜デザイン編〜@DPM#2
by
takegue
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
つかわれるデータプラットフォーム 〜デザイン編〜 फ़ี %BUB1MBUGPSN.FFUVQ
Slide 2
Slide 2 text
͜ΕΛ͓͢͠Δਓ फ़ีʢ!UBLFHVF %BUB1MBUGPSN .FFUVQ 3FUUZιϑτΣΞΤϯδχΞ $PSF7BMVF σʔλΞʔΩςΫςΟϯά σʔλͷՁΛ࠷େԽ͢ΔΈઃܭͷ࣮ݱ ࣥච׆ಈ ʮ༏ઌֶशʹΑΔਪનจ͔Βͷݟग़͠நग़ʯ03ֶձ ʮͬͯΈΑ͏ʂ ػցֶशʢ4PUXBSF%FTJHOʣʯ ʮࢼֶͯ͠Ϳ ػցֶशೖʯ ʮσʔλج൫ͻͱΓ"EWFOU$BMFOEBSʯ /FX ଞʜ
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
分析上で発生する悲しみ %BUB1MBUGPSN .FFUVQ
Slide 6
Slide 6 text
分厚いjoin (わからない)
Slide 7
Slide 7 text
依存関係を壊したくなくて乱立するオレオレview
Slide 8
Slide 8 text
整合性が保てるか不安なダッシュボード群
Slide 9
Slide 9 text
%BUB1MBUGPSN .FFUVQ これらは設計(デザイン)の失敗が原因
Slide 10
Slide 10 text
分析のためのデザイン %BUB1MBUGPSN .FFUVQ 注意を払うべきデザインの3つの観点をさっくり紹介
Slide 11
Slide 11 text
42- 1ZUIPO 3 分析のためのデザイン: 42-WT1ZUIPOʁ 利用者を想定した言語(インタフェース)選びも選定基準のひとつ ● データアクセスのため目的特化 ● 汎用的なプログラムが書きづらい ● エンジンごとに命令セット変わる ● コードの保守・運用しづらい ● 汎用的なプログラム描きやすい ● ライブラリも充実... ● 機械学習等への接続も比較的容易 ● コードの保守・運用はしやすい
Slide 12
Slide 12 text
データをディメンションテーブルとファクトテーブルに分けて整理 分析のためのデザイン: εϊʔϑϨʔΫεΩʔϚ %BUB1MBUGPSN .FFUVQ ディメンジョンテーブル: テーブルは非正規化状態で保持 ファクトテーブル: ディメンションに対して集計
Slide 13
Slide 13 text
ԣ࣋ͪ ॎ࣋ͪ 分析のためのデザイン: ԣ࣋ͪ WTॎ࣋ͪ *% ଐੑ ଐੑ 1 John Hoge 2 Ben Fuga *% ଐੑ 1 属性1 John 1 属性2 Ben 2 属性1 Ben 2 属性2 Ben ● 型制約をつけやすい ● 補完がききやすい ● 記述が冗長になりやすい ● ピボットテーブル向き ● 制約の保持が厳しい
Slide 14
Slide 14 text
BigQuery上での実践: Rettyでの事例 %BUB1MBUGPSN .FFUVQ
Slide 15
Slide 15 text
データフロー 依存の方向性 データ 置き場
Slide 16
Slide 16 text
データフロー 依存の方向性 データ 置き場 ディメンション ファクト 原則 横持ち 各 Projectは 指標から選ぶ ビューで 依存関係の明示 単方向の依存 だいたいSQL
Slide 17
Slide 17 text
イベント層 %BUB1MBUGPSN .FFUVQ - イベントログ系のレコードテーブルを整形、構造化する。 - クロスプラットフォームである程度共通に使えるような構造化 (自前のログ基盤, Firebase, GoogleAnalytics ...) - 不要なカラムや前処理等も行う
Slide 18
Slide 18 text
エンティティ層 %BUB1MBUGPSN .FFUVQ ドメインにおける主要なエンティティについてまとめる - プライマリテーブル(core); - joinの手間を減らし、使いやすい形式に構造化 - ユニーク制約等を実現 - as-was分析のために各entittyでhistoryを構築 - ディメンジョンテーブル(dim__xxx): 分析カスタム定義のディメンジョン
Slide 19
Slide 19 text
指標層 %BUB1MBUGPSN .FFUVQ - ファクトテーブルの構築する - 特定の指標の最小粒度(grain)の構築 - 同じデータセット内では、必ず同じ指標を持つ 指標に着目したグルーピング - 指標のバージョニングの実現(自動生成)
Slide 20
Slide 20 text
%BUB1MBUGPSN .FFUVQ Q. 誰のためのデザイン?
Slide 21
Slide 21 text
%BUB1MBUGPSN .FFUVQ 分析者 ステークホルダ 意思決定者 データ基盤 開発者 アプリケーション 開発者 Q. 誰のためのデザイン?
Slide 22
Slide 22 text
%BUB1MBUGPSN .FFUVQ 分析者 ステークホルダ 意思決定者 データ基盤 開発者 アプリケーション 開発者 転送基盤 分析基盤 レポーティング 基盤 ログ基盤 ヒトとヒトのつなぎめに価値を作る: デザインの問題 Q. 誰のためのデザイン?
Slide 23
Slide 23 text
☺ %BUB1MBUGPSN .FFUVQ つかいやすい基盤でみんなを幸せになろう!
Slide 24
Slide 24 text
%BUB1MBUGPSN .FFUVQ