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
building-evolutionary-data-warehouse
Search
Sotaro Tanaka
February 13, 2019
Technology
2
11k
building-evolutionary-data-warehouse
2019/02/13にエムスリー社さんで開催されたData Pipeline Casual Talkでの登壇スライドです。 #DPCT
Sotaro Tanaka
February 13, 2019
Tweet
Share
More Decks by Sotaro Tanaka
See All by Sotaro Tanaka
データエンジニアリング 4年前と変わったこと、 4年前と変わらないこと
tanakarian
4
940
ABEMAはなぜセマンティックレイヤーに挑戦しているのか?
tanakarian
0
1.2k
データ基盤の○層構造を独り歩きさせない データモデリング設計 Data Ops Night #1
tanakarian
3
5.6k
dbtを活用したデータ基盤の 論理・物理設計の現在地と振り返り / data warehouse logic design by using dbt
tanakarian
8
16k
データ分析基盤の障害を未然に防ぐためのチェックリスト / checklist for preventing incidents of data management system
tanakarian
1
13k
データの価値を失わないためのData Reliability
tanakarian
7
11k
Other Decks in Technology
See All in Technology
AIエージェント、 社内展開の前に知っておきたいこと
oracle4engineer
PRO
2
100
組織全体で実現する標準監視設計
yuobayashi
2
480
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.6k
Security Diaries of an Open Source IAM
ahus1
0
210
事例に見るスマートファクトリーへの道筋〜工場データをAI Readyにする実践ステップ〜
hamadakoji
1
290
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
3k
作りっぱなしで終わらせない! 価値を出し続ける AI エージェントのための「信頼性」設計 / Designing Reliability for AI Agents that Deliver Continuous Value
aoto
PRO
2
270
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
290
「Blue Team Labs Online」入門 - みんなで挑むログ解析バトル
v_avenger
0
150
ランサムウエア対策してますか?やられた時の対策は本当にできてますか?AWSでのリスク分析と対応フローの泥臭いお話。
hootaki
0
110
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
5
580
越境する組織づくり ─ 多様性を前提にしたチームビルディングとリードの実践知
kido_engineer
2
180
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.8k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
BBQ
matthewcrist
89
10k
A Tale of Four Properties
chriscoyier
163
24k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Marketing to machines
jonoalderson
1
5k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Evolving SEO for Evolving Search Engines
ryanjones
0
150
Navigating Team Friction
lara
192
16k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
51k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
110
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Transcript
Copyright © 2019 eureka, Inc. All rights reserved. データ基盤を「育てる」ための技術 Sotaro
Tanaka 2019/02/13 Data Pipeline Casual Talk #DPCT
Copyright © 2019 eureka, Inc. All rights reserved. 1. 自己紹介
2. eureka & PairsとBIチームの紹介 3. 「データ基盤」に求められるモノ ※Pairsの場合 4. データ基盤を「育てる」ための技術 今日話すこと
Copyright © 2019 eureka, Inc. All rights reserved. Sotaro Tanaka
@tanakarian Data Engineer @ BI Team • 24歳(大学院中退) / 新卒 • Pairsのデータ基盤の設計/構築/運用を主に 担当(※分析もやる) • 趣味はアニメとゲーム 1. 自己紹介
Copyright © 2019 eureka, Inc. All rights reserved. 2. About
eureka & Pairs 会社概要 従業員数 - 130名(平均年齢28.5歳) 事業内容 - 自社サービス企画・開発・運営 - オンラインデーティングサービス「 Pairs - カップル専用アプリ「 Couples」
Copyright © 2019 eureka, Inc. All rights reserved. 3. 「データ基盤」に求められるモノ
※ Pairsの場合
Copyright © 2019 eureka, Inc. All rights reserved. Pairsのデータ基盤 ≒
eurekaのデータ基盤です ※ 複数サービスを展開している企業の横断のデータ基盤や、 複数クライアントのデータを管理するような基盤の話ではありません 前提
Copyright © 2019 eureka, Inc. All rights reserved. Q. データ基盤とは何ですか?
A(?). データの統合? 「民主化」? 集約? A(?). 数字出しの自動化? A(?). DataLake, DataWarehouse, DataMartを作ること? ところで「データ基盤」とは何ですか?
Copyright © 2019 eureka, Inc. All rights reserved. データ基盤?
Copyright © 2019 eureka, Inc. All rights reserved.
Copyright © 2019 eureka, Inc. All rights reserved. 「基盤」という言葉はわかりにくい? •
ポジションや職種によってイメージするものが結構違う ◦ アナリスト「Tableauでしょ? ◦ エンジニア「Pub/SubでDataflowでBigQueryでしょ?」 • 「利用者からの期待」と「実際に作っているもの」の乖離 ◦ 想定しているモノが違う ->コミュニケーションミスによる要件の肥大化
Copyright © 2019 eureka, Inc. All rights reserved. どの作業を「基盤」で置き換えるか? から考えてみる
Copyright © 2019 eureka, Inc. All rights reserved. Pairsにおける分析作業の主なフロー KPI設計
PO(分析依頼者) からの相談 データの 抽出/加工/整形 データの可視化 依頼者への共有 考察 / 提案
Copyright © 2019 eureka, Inc. All rights reserved. BIチーム5人でこれら全てをやっている KPI設計
PO(分析依頼者) からの相談 データの 抽出/加工/整形 データの可視化 依頼者への共有 考察 / 提案
Copyright © 2019 eureka, Inc. All rights reserved. しかし、依頼の増加 →
作業量の増加で詰んだ KPI設計 PO(分析依頼者) からの相談 データの 抽出/加工/整形 データの可視化 依頼者への共有 考察 / 提案 • 同じような抽出/加工作業の繰り返しにリソースをほとんど投下していた
Copyright © 2019 eureka, Inc. All rights reserved. 人間スケールアウト?基盤? •
人を増やして、スケールアウトというのもひとつの手だと思う ◦ 特にまだ分析やデータを見る文化が根付いていないときは基盤とか考えるよりも先にやること がある ◦ PoC段階でもそう • Pairsでは、この問題を「データ基盤」を作ることで解決を図った ◦ “Keep Small”という「むやみに作業人員は増やさない」考え方
Copyright © 2019 eureka, Inc. All rights reserved. データ基盤=ここの作業を標準化し、自動化する KPI設計
PO(分析依頼 者)からの相談 データの 抽出/加工/整形 データの可視化 依頼者への共有 考察 / 提案
Copyright © 2019 eureka, Inc. All rights reserved. 抽出 /
加工 / 整形 => データパイプライン KPI設計 PO(分析依頼 者)からの相談 データの 抽出/加工/整形 データの可視化 依頼者への共有 考察 / 提案
Copyright © 2019 eureka, Inc. All rights reserved. 可視化、共有 =>
各種BIツール KPI設計 PO(分析依頼 者)からの相談 データの 抽出/加工/整形 データの可視化 依頼者への共有 考察 / 提案
Copyright © 2019 eureka, Inc. All rights reserved. データパイプライン大事
Copyright © 2019 eureka, Inc. All rights reserved. 4. データ基盤を「育てる」ための技術
Copyright © 2019 eureka, Inc. All rights reserved. データ基盤なんとなくわかった パイプライン重要なのもわかった
しかし…うーーん
Copyright © 2019 eureka, Inc. All rights reserved. エウレカBIチームで利用している分析依頼用の JIRAサービスデスク
• たとえば、 「ログイン」の分析だけで見ても、様々 な切り口での分析依頼がある。 • これらに全て答えられる「基盤」が作れ るのか? そもそも標準化、自動化とかできるの? 非公開です。 ごめんなさい。
Copyright © 2019 eureka, Inc. All rights reserved. 「最初にカッチリ決めて作る」はほぼ不可能 •
プロダクトは成長し続け、機能追加や仕様変更は日常茶飯事である ◦ それらにツギハギで対応していっても変なものしかできない • 不確実性と常に向き合いつつ、データモデルを洗練させ続ける必要がある
Copyright © 2019 eureka, Inc. All rights reserved. 「環境や条件は変わる」ことを前提に、 むしろ「進化させていく」ように作る
Copyright © 2019 eureka, Inc. All rights reserved. つまり、データ基盤を「育てる」もの と捉える(と言わせてください)
Copyright © 2019 eureka, Inc. All rights reserved. 「変わってしまう」よりも、「進化」/「育てる」 「…進化とは、目的に沿った、絶え間なく変化する環境で
生き残ることができるシステムを持つことである。」 [1]『進化的アーキテクチャ−絶え間ない変化を支える』 P.18
Copyright © 2019 eureka, Inc. All rights reserved. • 育てる
◦ 「アジャイル形式でプロダクトオーナー (PO)らと連携し、DWHを洗練させる」 • 育てるための技術 ◦ 「PoC段階の素早い検証を可能にする BigQueryのView機能, Jupyter」 ◦ 「腐敗防止層で、パイプラインの拡張や変更に強くする」 ◦ 「パイプラインの各フェーズでの要件 /レベルを定め、テストする」 ▪ ログ転送、バルクローダー、分散メッセージング、 ETL、データストア、etc… データ基盤を「育てる」ための技術
Copyright © 2019 eureka, Inc. All rights reserved. • 「育てる」部分は主にここ
◦ どんなDWHを作っていくのか? ◦ POが一番ドメインエキスパートに近い存在 ◦ POと連携をして、分析対象について知り、 データモデルに反映する POらと連携し、DWHを洗練させる https://amzn.to/2HCC3hj
Copyright © 2019 eureka, Inc. All rights reserved. PoC段階の素早い検証を可能にするBigQueryView •
BigQueryのView機能 ◦ プロダクトの機能追加や POからの要望で 必要なデータは様々 ◦ データモデルの修正や項目追加は すぐにはDWHに反映させない ◦ まずBigQueryでViewを作成し、 実用に耐えるものか価値があるものかを確認 ◦ 共通化できるものや継続的にみるものは、 DWHに置くため、パイプラインに載せる
Copyright © 2019 eureka, Inc. All rights reserved. 非公開です。 ごめんなさい。
PoC段階の素早い検証を可能にするJupyter • Jupyter (PoC段階の予測モデル作成など) ◦ notebook内でデータ前処理〜モデルの インプット作成、モデリングまで完結 ◦ notebookをそのまま関係者に共有し、 価値を確認 ◦ 価値があると分かれば、予測タスクを パイプラインに載せる
Copyright © 2019 eureka, Inc. All rights reserved. ※ イメージ
(たとえばCloud Composerを使う場合) • コアになるデータの処理ロジックと、 各サービスAPIとの接合部分は分ける。 テストもしやすくなる。 腐敗防止層で、パイプラインの拡張や変更に強く データ処理ロジック 接合部分 Cloud Composer(API)
Copyright © 2019 eureka, Inc. All rights reserved. https://medium.com/bluecore-engineering/were-all-using-airflow-wrong-a nd-how-to-fix-it-a56f14cb0753
(モチベーションは少し異なるが、似た話 ) • データパイプライン関連のクラウドサービス やOSSはどんどん進化していく。 必要なときに取り入れられるように。 腐敗防止層で、パイプラインの拡張や変更に強く
Copyright © 2019 eureka, Inc. All rights reserved. • Pairsの場合(まだできていない。が、対象は以下あたり)
• バルクローダー : Embulk with Digdag • ログ転送 : fluentd • 分散メッセージング : Cloud Pub/Sub • ETL : Cloud Dataflow • ワークフロー管理 : Cloud Composer • データストア : BigQuery, Cloud Storage 各フェーズでの要件/レベルを定め、テストする
Copyright © 2019 eureka, Inc. All rights reserved. • 正直どれもまだ満足にできていない。やっと手をつけ始めた状況。
◦ 一番大事な要素だとは思っている ◦ これまでは、とりあえずより良さそうなものを導入してきた • このDPCTの場で、「〜性」の話やSLA設定、テストとか 皆さんどうしているかをお話したいです。 それ、Pairsのデータ基盤ではできてるの?
Copyright © 2019 eureka, Inc. All rights reserved. • 昨年のアドカレでCloud
Composerのこと書きました • https://medium.com/eureka-engineering/data-mgmt-cloud-composer-29ba3f cbffe0 おまけ : Cloud Composer(Airflow)を使っています
Copyright © 2019 eureka, Inc. All rights reserved. 文献 •
[1] 『進化的アーキテクチャ−絶え間ない変化を支える』ニール・フォード, レベッカ・パーソンズ, パトリック・クア著 島田浩二訳 オライリージャパン https://www.oreilly.co.jp/books/9784873118567/
Copyright © 2018 eureka, Inc. All rights reserved. ご清聴ありがとうございました!