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
データチームの境界を考える
Search
Atsushi Sumita
June 16, 2022
Technology
1.1k
0
Share
データチームの境界を考える
ナウキャストのストリームアラインドチームと, チームAPIとしてのdbt導入の取り組みについて紹介しています.
Atsushi Sumita
June 16, 2022
More Decks by Atsushi Sumita
See All by Atsushi Sumita
LLMによるデータ構造化の精度管理
yummydum
1
280
Redshift Serverless vs Snowflake 徹底比較!
yummydum
1
2.7k
最強?のデータ組織アーキテクチャ
yummydum
2
650
データを開発するためのDataOps
yummydum
1
1.1k
Jupyter Notebook Ops
yummydum
1
240
SNLP presentation 20190928
yummydum
0
390
Other Decks in Technology
See All in Technology
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
670
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
290
新規事業を牽引する技術選定 〜フルスタックTypeScript開発の実践事例〜
nullnull
1
160
大規模災害時でも高い信頼性を維持するアプリケーション基盤の実現/nikkei-tech-talk46
nikkei_engineer_recruiting
0
130
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
660
Generative UI × A2UI で AI エージェントを作った話 AI-DLC も使ってみた!
kmiya84377
1
310
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
3
540
AI時代の私の技術インプットとアウトプット術
tonkotsuboy_com
16
8.2k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
300
さきさん文庫の書籍ができるまで
sakiengineer
0
330
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
260
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
320
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Making Projects Easy
brettharned
120
6.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
A better future with KSS
kneath
240
18k
A designer walks into a library…
pauljervisheath
211
24k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Fireside Chat
paigeccino
42
3.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
200
74k
Transcript
© 2015 - 2022 Nowcast Inc. データチームの境界を考える 株式会社ナウキャスト 隅田 敦
1
© 2013 - 2022 Finatext Ltd. 2 目次 これまでのナウキャストのチーム構造 -
データエンジニアが主役となる組織 - チームトポロジー: Stream Aligned Team / Platform Team / チームAPI - Stream Aligned Data Engineering Teamによる効率的な開発 - 課題: チームAPIが整備されていないことによる非効率性 チーム境界とプラットフォームチーム - チームAPIとしてのdbt - Data hub platformに向けた取り組み - Platformチームは中央集権型のデータエンジニアチームではない
© 2013 - 2022 Finatext Ltd. 3 これまでのナウキャストのチーム構造
© 2013 - 2022 Finatext Ltd. 4 データエンジニアが主役となる組織 データの保有側・利用側の双方に価値を提供するAlternative Dataの
Two-Sided Platformを展開
© 2013 - 2022 Finatext Ltd. 5 チームトポロジー: Stream Aligned
Team / Platform Team / チームAPI • Stream Aligned Team ◦ 価値のデリバリーをend to endで担う ◦ 要求探索から本番運用まで他チームへの引き継ぎ無しで行える • Platform Team ◦ Stream Aligned Teamを支援する内部プロダクトの開発を担う ◦ インフラなど下位の機能を横断的に抽象化したツールを提供 • チームAPI ◦ チームとやり取りするための方法を記述した仕様 ◦ コードであれば, ランタイムのエンドポイント, ライブラリ, UI ◦ データの場合はどうか? これを考えるのが本発表の目的
© 2013 - 2022 Finatext Ltd. 6 The Bezos Mandate
(2002) 私とAWSの15年 あるいはThe Bezos Mandateの話 - NRIネットコムBlog
© 2013 - 2022 Finatext Ltd. 7 Stream Aligned Data
Engineering Teamによる効率的な開発 ナウキャストのチームの特徴 • 典型的にはデータソース毎に1つのチーム ◦ 1チームだいたい3~6人ほど • 各チーム内で価値提供に必要な工程が完結 • Terraformによるインフラの構築 • Airflow+PythonによるETLの開発/保守 • Jupyter NotebookによるEDA Stream Alignedなデータエンジニアチーム Stream Alignedであることのメリット • システムのオーナーシップが向上する • 各システムが疎結合に保たれる (Conway's law) • データのドメイン知識が一貫して行き渡る
© 2013 - 2022 Finatext Ltd. 8 課題: チームAPIが整備されていないことによる非効率性 各チームの開発したデータには様々な利用者が存在
• 社内の金融領域に詳しいアナリスト • 社内の他のデータエンジニアリングチーム • ナウキャストのデータを購読している社外の顧客 課題: チームAPIが存在しない 以下項目の整備状況/実装方針がバラバラ • データの置き場所, フォーマット • 品質保証/バージョン管理/ビジネスメタデータ • データ更新の締切に関するSLO 認知負荷/コミュニケーションコストの増大
© 2013 - 2022 Finatext Ltd. 9 チーム境界とプラットフォームチーム
© 2013 - 2022 Finatext Ltd. 10 チームAPIとしてのdbt • yamlを書くだけでデータのテストとドキュメントが手に入る
• 今はsources [3]だけを使用 htmlに render 宣言的なデータのテスト 任意の項目を 追加可能
© 2013 - 2022 Finatext Ltd. 11 Data hub platformに向けた取り組み
チームAPIの下でデータをリリースする場所をdata hubと名付 け, 整備中 • データはs3にparquetで置き, Athenaで参照する • 各データについてdbtでsourcesを定義 • データ/sourcesが更新されたらテストを実行 • renderされたhtmlをs3にホスティング • dbtのmeta tagでSLOを管理 ◦ これを参照して監視システムがSLOをチェック data hubの開発を行うPlatform Teamが必要となる
© 2013 - 2022 Finatext Ltd. 12 Platformチームは中央集権型のデータエンジニアチームではない • 中央集権型はサイロ化やスケーラビリティの低
下に繋がるため望ましくない[2][3][4] • PlatformチームはData Hubへのリリースを支 援するツールの開発が責務 ◦ チームAPIの定義 ◦ ビルド/テスト/デプロイ用のスクリプト ◦ CI/CD用のツール ◦ 監視システム • 各Sourcesの開発/保守は各Stream Aligned Teamの責務
© 2013 - 2022 Finatext Ltd. 13 Reference [1] Team
Topologies [2] 私とAWSの15年 あるいはThe Bezos Mandateの話 - NRIネットコムBlog [3] Sources | dbt Docs [4] How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh [5] Data Mesh Principles and Logical Architecture [6] Data Management at Scale
© 2013 - 2022 Finatext Ltd. 14 End