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