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
310
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
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
0
110
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.4k
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
160
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
180
kintone の AI コワーカーを、 Anthropic にエージェントを"ホストさせて"作った話 #devkinmeetup
sugimomoto
0
110
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
340
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
110
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
160
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
410
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
4
1.4k
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
3
4k
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
230
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Un-Boring Meetings
codingconduct
0
340
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
4 Signs Your Business is Dying
shpigford
187
22k
Building Applications with DynamoDB
mza
96
7.1k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Agile that works and the tools we love
rasmusluckow
331
22k
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 によって作成されました