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
Datasets for Critical Operations by Dataform
Search
kimujun
July 25, 2025
Technology
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Datasets for Critical Operations by Dataform
Dataform Meetup #1 の発表資料
https://dataform-jp.connpass.com/event/359348/
kimujun
July 25, 2025
More Decks by kimujun
See All by kimujun
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
520
小規模に始めるデータメッシュとデータガバナンスの実践
kimujun
4
1.3k
NestJS と Hasura で実現する Production GraphQL
kimujun
0
420
Hasura の Subscription と向き合う
kimujun
0
1.4k
Other Decks in Technology
See All in Technology
4人目のSREはAgent
tanimuyk
0
400
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
990
Amazon EVS で VCF 9.0 / 9.1 のサポート開始まとめ
mtoyoda
0
270
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
2
130
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
160
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
8k
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
2.1k
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
560
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
530
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
160
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
150
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
250
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
The agentic SEO stack - context over prompts
schlessera
0
840
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Six Lessons from altMBA
skipperchong
29
4.3k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
890
Paper Plane
katiecoart
PRO
1
52k
Speed Design
sergeychernyshev
33
1.9k
Designing Powerful Visuals for Engaging Learning
tmiket
1
440
Designing for Timeless Needs
cassininazir
1
270
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Transcript
Datasets for Critical Operations by Dataform Dinii inc. Junya Kimura
Dataform Meetup #1
自己紹介 名前: Junya Kimura (kimujun) 所属: 株式会社ダイニー ロール: Application Development,
Data Engineering 全般の Tech Lead
今日の話の流れ 1. Background: Dataset for Critical Operation 2. Problem: 堅牢性より大事なもの、ある?
3. Solutions: 堅牢性担保のアプローチ 4. Summary: アプリケーション設計の重要性
Background: Dataset for Critical Operation What アプリケーション上の重要なオペレーションに直接関わるデータセット ビジネスプロセスに組み込まれている 例えば… 09:00AMに顧客へのメール配信
12:00PMにLINE配信 月次決算用データ
Architecture すべて Google Cloud 上で完結 E は Datastream, TL は
Dataform
Problem: 堅牢性より大事なもの、ある? データの不具合がビジネスに直結する 堅牢性への投資が最も重要 ポイント 1. 高可用性 - 壊れにくいシステム 2.
データ品質 - データが正しい 3. 適時性 - 必要な時に必要なデータがある
1. 高可用性 - スキーマ安全性の担保 高可用性のためにやること スキーマ安全性を仕組みで担保する バックエンドサーバーとの整合性を守る ダイニーのスキーマ管理 1. dataform
run で生成したデータセットのスキーマをファイルに抽出 2. バックエンドと Symbolic Link 等で共有 3. テスト前にスキーマ情報をもとに空のデータセットを生成 4. BigQuery に向けてバックエンドに定義された dry run テストを実行
1. 高可用性 - スキーマ安全性の担保 重要なポイント スキーマが変わりうるタイミングで必ずスキーマファイルを更新する CI で各ステップの正確性を必ずチェックする
2. データ品質の担保 品質テスト 品質テストツールは色々あるが、自由度に不満がある AI Coding 時代なので必要な分を必要なだけ作るのが良さそう ということで自前で品質テスト機構を実装している 他のアプローチ -
Dataplex Data Quality Google Cloud 内で完結する嬉しさはあるが… コード管理がしにくい テーブル/データセットをまたいだ検証が定義しにくい あたりのデメリットも。 今後の機能拡張に期待しています 💪
const emailConfigTestConfig: DataQualityTestConfig = { datasetName: "operation_mart", tableName: "emailConfig", nonNullColumns:
["id", "price", "quantity"], rangeConfigs: [{ columnName: "score", min: 0, max: 100 }], uniqueColumns: [tableKeys.email.primaryKey], // NOTE: RDB のユニークキーをそのまま参照している // NOTE: テーブル単体で担保できないドメイン制約を表現する customConfigs: [ { query: ` SELECT COUNT(emailTarget.id) AS emailTargetCount FROM operation_mart.emailConfig LEFT JOIN operation_mart.emailTarget ON emailConfig.id = emailTarget.emailConfigId GROUP BY emailConfig.id HAVING emailTargetCount < 1000 `, description: "email delivery target count should be over 1000", },
3. 適時性の担保 適時性とは? 特定のタイミングに必要なデータが用意されていること 例: メール配信システム 朝 09:00 に顧客にメール配信するユースケース 09:00
に必ず配信用のデータが存在している必要がある データが遅延するとビジネスに直結
3. 適時性の担保 品質テストのタイミング制御 定義したタイミングで品質テストを実行する e.g. 08:00 にメール配信データの品質テストを実行する インフラ監視のシステムに統合し、オンコール体制を作る 心構え -
パイプラインは必ずいつか壊れる!!!!! 絶対にいつかパイプラインは壊れる (大事なことなので2回目) アプリケーション実装を安心設計にしておくべき 冪等な API 実装をする、データ無い時はそもそも実装せずアラートをすぐに飛ばすな ど、やれることはたくさんある
まとめ: 堅牢性担保の観点 1. 高可用性: スキーマ安全性の仕組み化 スキーマ管理を仕組み化する CI での自動チェックさせる 2. データ品質:
自前テスト機構の実装 3. 適時性: タイミング制御と監視 定義したタイミングでの品質テスト実行 パイプラインは必ず壊れる!!!!! (3回目)
今後の展望を書きたかった 書く時間がありませんでした (土下座)
Thank you! このスライドは slidev と Claude Code によって作成されました