つかわれるプラットフォーム 〜デザイン編〜@DPM#2
by
takegue
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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