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
Eurekaの DataPlatform開発状況と再現性の実現
Search
t-kurimura
February 06, 2020
Technology
3
4.4k
Eurekaの DataPlatform開発状況と再現性の実現
t-kurimura
February 06, 2020
Tweet
Share
More Decks by t-kurimura
See All by t-kurimura
アプリデータの分析を楽に効果的に!FirebaseAnalyticsとお友達になると良い3つの理由
t_kurimura
1
1.8k
Other Decks in Technology
See All in Technology
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.5k
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
2
3k
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.8k
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
110
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
590
ビジネスモデリング道場 目的と背景
masuda220
PRO
9
520
Developers Summit 2025 浅野卓也(13-B-7 LegalOn Technologies)
legalontechnologies
PRO
0
720
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
710
アジャイル開発とスクラム
araihara
0
170
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
250
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
130
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Mobile First: as difficult as doing things right
swwweet
223
9.3k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
GitHub's CSS Performance
jonrohan
1030
460k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Code Review Best Practice
trishagee
67
18k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Typedesign – Prime Four
hannesfritz
40
2.5k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Transcript
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
1
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
2 Slide Uploaded Ask on Twitter #前向きデータ整備人 で探してみてください 懇親会にもいるのでそちらでも
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
3 自己紹介 Takahisa Kurimura - Eureka Inc. - BI (Business intelligence) チーム所属 - Mobile apps/ Matching / SharingEconomy - Football (主にJリーグ) / Motorbike t-kurimura t_kurimura
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
4
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
5
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
6
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
7
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
8
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
9 Eurekaの DataPlatform開発状況と"再現性"の実現 第二回 データアーキテクト(データ整備人) を“前向き”に考える会 /2020.02.06
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
10 DataPlatform基盤の全体概要 データ基盤の全体構成図
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
11 Third Party tools DataPlatform基盤の全体概要 その他Adhocな分析 BigQuery
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
12 Third Party tools DataPlatform基盤の全体概要 Data Platform その他Adhocな分析 BigQuery CloudComposer Airflow
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
13 DataPlatform基盤の全体概要 Apache Airflow を基に構築された、 フルマネージドのワークフロー オーケストレー ション サービス スケジュール管理・ワークフロー管理に特化し たオープンソースソフトウェア
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
14 Third Party tools DataPlatform基盤の全体概要 Data Platform DataLake Data WareHouse DataMart 生ログをほぼ そのまま保存 しているDB 分析用の下処 理を施したDB ビジネス 観点で整備し たDB その他Adhocな分析
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
15 DataPlatformの変遷 DataPlatformの発足期 Redash/Spreadsheet乱立期 DataPlatform開発繁栄期 - DP開発メンバーの増加 - Tableau上ので公式DSの拡充 - DP定例会の実施 - RedashAPIをGasで利用 - Spreadsheetに データを連携し可視化 - Tableau導入 - CloudComposer導入 - 基本データの拡充 - View Queryの乱立 DataPlatform管理レポジトリのコード量の推移
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
16 DataPlatformの変遷 DataPlatformの発足期 Redash/Spreadsheet乱立期 DataPlatform開発繁栄期 - DP開発メンバーの増加 - Tableau上ので公式DSの拡充 - DP定例会の実施 - RedashAPIをGasで利用 - Spreadsheetに データを連携し可視化 - Tableau導入 - CloudComposer導入 - 基本データの拡充 - View Queryの乱立 DataPlatform管理レポジトリのコード量の推移
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
17 DataPlatformにのせる “公式化”のメリット View Table / Scheduled Query Airflowでの管理 - コードレビューによるデータの妥当性の担保 - 依存関係の定義によるデータの信頼性の担保 - データ・分析の再現性を支える ✔
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
18 DataPlatformにおける“再現性”とは - データに対するドメインナレッジの蓄積 データの定義における解釈が統一される - 必要なデータが必要なときにすぐに取り出せること どこに何があるかが明確で、すぐにアクセス可能
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
19 DataPlatformの開発状況 Pairs Project A 担当 Pairs Project B 担当 Engage 担当 Tableauによるデータの可視化・意思決定のサポート BigQueryでのデータソースの作成 Airflowでのワークフローの作成 CloudComposerの基盤管理 SRE Team Project Owner & member 経営レポート・中長期分析・ マーケティング関連 Adhoc分析 Boards, Bland, MarketingTeam
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
20 DataPlatformの開発フロー 依頼者 ProductManager ProductOwner Team meber etc. BI Team View TableやScheduled Queryを利用して簡易的に提供 目的・背景・見たい指標等の落とし込み
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
21 DataPlatformの開発フロー 依頼者 BI Team 当該Dashboardの運用の知見を踏まえて AirflowでDWH・DMを実装
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
22 DataPlatformの開発フロー 一度、ViewTableなどで簡易的にDataMartを作成し可視化する。 その後、成果物の改善点などを踏まえてDWH/DMを実装する。 - 運用が安定したDashboardを元にDWH/DMを実装すれば過不足なく設計できる。 - 突発的な依頼に対応しやすい - 担当者の強い意志依存なので、 ViewQueryの放置、DWH・DMが充実していかない可能性 メリット デメリット
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
23 DWH構築のためのログ・メタデータの活用 すべてのクエリ発行や操作のログが集積 データセット内のテーブルの最終更新などの情報
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
24 DataPlatformでの監査データの活用 あらゆるツールを介して実行されているクエリをまとめて確認できる
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
25 DataPlatformでの監査データの活用 2つのテーブルがJOINして実行されているクエリを DWH化
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
26 DataPlatformでの監査データの活用 DWH・DMにどういったものが必要・不必要かの判断材料に • 利用頻度の多いテーブル • 同時に使われていることが多いテーブル • 全く利用されてないテーブル 監査ログ・Information_schemaを利用することで、
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
27 DataPlatformでの永続UDFの活用 特定のDatasetに関数のみを、定義できる
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
28 異なるクエリからでも同じ関数を参照できる DataPlatformでの永続UDFの活用
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
29 永続UDFに関してもコード管理 DataPlatformでの永続UDFの活用
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
30 コード管理によって、定義の統一と知見の集約を高める - 知見の属人化を排除 - クエリの可読性向上 - 類似クエリ作成のスピード向上 永続UDFの活用で、 DataPlatformでの永続UDFの活用
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
31 DataPlatformの知見共有 • 各種ツールのエラーログの確認 • リファクタリングの方針相談・進捗共有 • 開発上困ったことの解決 • 現状の課題の整理 • 今後のルール・戦略の共通認識 週に1回関連するメンバーで30分定例MTGを実施
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
32 まとめ - 過去の分析や整形されたデータの再現性を重要視する Airflowでのクエリのコード管理・関数の共通化 (永続UDF) - MVPなDMから可視化し改善点を明確にしたえで、 DM・DWHを設計 最初は、Scheduled QueryやView Tableを利用し柔軟にDMを設計 - 巻き込みやすい、巻き込まれやすいような環境 CI等の整備、Github操作のみにするなど開発への障壁下げる。定例会での情報共有
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
33
CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy
34 Appendix Apache Airflow Cloud Composer Cloud Audit Logging | Stackdriver Logging ドキュメント Introduction to BigQuery INFORMATION_SCHEMA | BigQuery Standard SQL User-Defined Functions | BigQuery BigQueryとAirflowを活用したDataPlatform運用の10のケース・スタディ 1年間のDataPlatformプロジェクトから見えてきた「 DataWarehouseの作りかた」