Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
つかわれるプラットフォーム 〜デザイン編〜@DPM#2
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
takegue
December 02, 2019
Technology
2
12k
つかわれるプラットフォーム 〜デザイン編〜@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
890
カルチャーとエンジニアリングをつなぐ データプラットフォーム
takegue
4
6.5k
toC企業でのデータ活用 (PyData.Okinawa + PythonBeginners沖縄 合同勉強会 2019)
takegue
4
1.1k
Rettyにおけるデータ活用について
takegue
0
920
Sparse Overcomplete Word Vector Representations
takegue
0
250
Aligning Sentences from Standard Wikipedia to Simple Wikipedia
takegue
0
240
High-Order Low-Rank Tensors for Semantic Role Labeling
takegue
0
130
Dependency-based empty category detection via phrase structure trees
takegue
0
96
A simple pattern-matching algorithm for recovering empty nodes and their antecedents
takegue
0
140
Other Decks in Technology
See All in Technology
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
170
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
690
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
670
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
プレビュー版のDevOpsエージェントを現段階で触ってみた
ad_motsu
1
110
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
150
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
480
22nd ACRi Webinar - ChipTip Technology Eric-san's slide
nao_sumikawa
0
100
GitHub Copilot CLI を使いやすくしよう
tsubakimoto_s
0
110
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
530
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Evolving SEO for Evolving Search Engines
ryanjones
0
130
The Language of Interfaces
destraynor
162
26k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Un-Boring Meetings
codingconduct
0
200
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
79
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
330
Visualization
eitanlees
150
17k
RailsConf 2023
tenderlove
30
1.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
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