Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
つかわれるプラットフォーム 〜デザイン編〜@DPM#2
takegue
December 02, 2019
Technology
2
8.9k
つかわれるプラットフォーム 〜デザイン編〜@DPM#2
LTの発表資料です
https://data-platform-meetup.connpass.com/event/155073/
takegue
December 02, 2019
Tweet
Share
More Decks by takegue
See All by takegue
不自然言語の自然言語処理: コード補完を支える最新技術
takegue
1
710
カルチャーとエンジニアリングをつなぐ データプラットフォーム
takegue
4
5.2k
toC企業でのデータ活用 (PyData.Okinawa + PythonBeginners沖縄 合同勉強会 2019)
takegue
4
790
Rettyにおけるデータ活用について
takegue
0
720
Sparse Overcomplete Word Vector Representations
takegue
0
130
Aligning Sentences from Standard Wikipedia to Simple Wikipedia
takegue
0
180
High-Order Low-Rank Tensors for Semantic Role Labeling
takegue
0
67
Dependency-based empty category detection via phrase structure trees
takegue
0
38
A simple pattern-matching algorithm for recovering empty nodes and their antecedents
takegue
0
86
Other Decks in Technology
See All in Technology
ソフトバンクaPaaS領域への挑戦
sbtechnight
0
310
QuickSight 触ってみた
tomuro
0
370
第22回 MLOps 勉強会:みてねのMLOps事情
tonouchi510
0
180
VS Code Meetup #21 - もう一度知りたい基礎編 - ファイル操作、コーディングの基本編
74th
0
180
ジョブ管理システムをAWS Step Functionsに移行する時の勘所
non97
0
480
Power Automate for desktopで 配信環境を改善してみた話
akiika
0
230
MySQL v5.7 勉強会/study-mysql-ver-5-7
andpad
0
2k
Step-by-Step MLOps and Microsoft Products
shisyu_gaku
1
530
eBPF-based Container Networking
johnlin
2
1.1k
CloudWatchアラームによるサービス継続のための監視入門 / Introduction to Monitoring for Service Continuity with CloudWatch Alarms
inomasosan
1
410
Settlement simulation testing to ensure correct settlement processing
applepine1125
2
1k
疎ベクトル検索と密ベクトル検索: 第68回 Machine Learning 15minutes! Broadcast
keyakkie
1
250
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
11
1.6k
Six Lessons from altMBA
skipperchong
14
1.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
119
28k
Building a Scalable Design System with Sketch
lauravandoore
448
30k
Intergalactic Javascript Robots from Outer Space
tanoku
260
25k
Art, The Web, and Tiny UX
lynnandtonic
280
18k
Bash Introduction
62gerente
598
210k
Building Better People: How to give real-time feedback that sticks.
wjessup
344
17k
Designing with Data
zakiwarfel
91
4k
A Philosophy of Restraint
colly
192
15k
Unsuck your backbone
ammeep
659
55k
Adopting Sorbet at Scale
ufuk
63
7.6k
Transcript
つかわれるデータプラットフォーム 〜デザイン編〜 फ़ี %BUB1MBUGPSN.FFUVQ
͜ΕΛ͓͢͠Δਓ फ़ีʢ!UBLFHVF %BUB1MBUGPSN .FFUVQ 3FUUZιϑτΣΞΤϯδχΞ $PSF7BMVF σʔλΞʔΩςΫςΟϯά σʔλͷՁΛ࠷େԽ͢ΔΈઃܭͷ࣮ݱ
ࣥච׆ಈ ʮ༏ઌֶशʹΑΔਪનจ͔Βͷݟग़͠நग़ʯ03ֶձ ʮͬͯΈΑ͏ʂ ػցֶशʢ4PUXBSF%FTJHOʣʯ ʮࢼֶͯ͠Ϳ ػցֶशೖʯ ʮσʔλج൫ͻͱΓ"EWFOU$BMFOEBSʯ /FX ଞʜ
None
None
分析上で発生する悲しみ %BUB1MBUGPSN .FFUVQ
分厚いjoin (わからない)
依存関係を壊したくなくて乱立するオレオレview
整合性が保てるか不安なダッシュボード群
%BUB1MBUGPSN .FFUVQ これらは設計(デザイン)の失敗が原因
分析のためのデザイン %BUB1MBUGPSN .FFUVQ 注意を払うべきデザインの3つの観点をさっくり紹介
42- 1ZUIPO 3 分析のためのデザイン: 42-WT1ZUIPOʁ 利用者を想定した言語(インタフェース)選びも選定基準のひとつ • データアクセスのため目的特化 • 汎用的なプログラムが書きづらい
• エンジンごとに命令セット変わる • コードの保守・運用しづらい • 汎用的なプログラム描きやすい • ライブラリも充実... • 機械学習等への接続も比較的容易 • コードの保守・運用はしやすい
データをディメンションテーブルとファクトテーブルに分けて整理 分析のためのデザイン: εϊʔϑϨʔΫεΩʔϚ %BUB1MBUGPSN .FFUVQ ディメンジョンテーブル: テーブルは非正規化状態で保持 ファクトテーブル: ディメンションに対して集計
ԣ࣋ͪ ॎ࣋ͪ 分析のためのデザイン: ԣ࣋ͪ WTॎ࣋ͪ *% ଐੑ ଐੑ 1 John
Hoge 2 Ben Fuga *% ଐੑ 1 属性1 John 1 属性2 Ben 2 属性1 Ben 2 属性2 Ben • 型制約をつけやすい • 補完がききやすい • 記述が冗長になりやすい • ピボットテーブル向き • 制約の保持が厳しい
BigQuery上での実践: Rettyでの事例 %BUB1MBUGPSN .FFUVQ
データフロー 依存の方向性 データ 置き場
データフロー 依存の方向性 データ 置き場 ディメンション ファクト 原則 横持ち 各 Projectは
指標から選ぶ ビューで 依存関係の明示 単方向の依存 だいたいSQL
イベント層 %BUB1MBUGPSN .FFUVQ - イベントログ系のレコードテーブルを整形、構造化する。 - クロスプラットフォームである程度共通に使えるような構造化 (自前のログ基盤, Firebase, GoogleAnalytics
...) - 不要なカラムや前処理等も行う
エンティティ層 %BUB1MBUGPSN .FFUVQ ドメインにおける主要なエンティティについてまとめる - プライマリテーブル(core); - joinの手間を減らし、使いやすい形式に構造化 - ユニーク制約等を実現
- as-was分析のために各entittyでhistoryを構築 - ディメンジョンテーブル(dim__xxx): 分析カスタム定義のディメンジョン
指標層 %BUB1MBUGPSN .FFUVQ - ファクトテーブルの構築する - 特定の指標の最小粒度(grain)の構築 - 同じデータセット内では、必ず同じ指標を持つ 指標に着目したグルーピング
- 指標のバージョニングの実現(自動生成)
%BUB1MBUGPSN .FFUVQ Q. 誰のためのデザイン?
%BUB1MBUGPSN .FFUVQ 分析者 ステークホルダ 意思決定者 データ基盤 開発者 アプリケーション 開発者 Q.
誰のためのデザイン?
%BUB1MBUGPSN .FFUVQ 分析者 ステークホルダ 意思決定者 データ基盤 開発者 アプリケーション 開発者 転送基盤
分析基盤 レポーティング 基盤 ログ基盤 ヒトとヒトのつなぎめに価値を作る: デザインの問題 Q. 誰のためのデザイン?
☺ %BUB1MBUGPSN .FFUVQ つかいやすい基盤でみんなを幸せになろう!
%BUB1MBUGPSN .FFUVQ