【データコントラクト】

データコントラクト とは?

最終更新:
💡 届けるデータの約束を、両側でそろえる

データを提供する側と使う側が、形式・意味・品質・提供条件・責任などを共有する取り決め。定義に加えて検証や変更時の連絡を運用し、意図しない変更への備えを増やす。

📌 このページのポイント
データ:届ける約束を両側で共有提供する側注文データなど使う側集計・分析など共有する取り決め形式・値の意味・品質・提供条件責任を持つチーム・連絡先定義を確認 + 実データを検証変更時の相談・連絡も運用する書くだけでなく、実際の運用で約束を確かめる
線は取り決めを共有する関係。ファイルの形式チェックと、実データの品質検証は別の確認です。
ひよこ ひよこ
どんな問題に役立つの?
ペンギン先生 ペンギン先生
提供側が項目名や型を変更すると、そのデータを使う集計や分析が動かなくなることがあるよ。そこで、どんなデータをどの条件で渡すかを両側で共有するんだ。取り決めがあるだけで変更を自動的に防ぐわけではなく、確認や連絡の運用も必要だよ。
ひよこ ひよこ
テーブルの項目を書けばよい?
ペンギン先生 ペンギン先生
項目名や型は大切だけれど、値の意味や品質の条件もあるよ。たとえば「金額の単位は円」「注文IDは欠けない」「更新の頻度は合意した条件に従う」といった内容だね。責任を持つチームや問い合わせ先も共有すると、問題が起きたときに相談しやすい。
ひよこ ひよこ
必ず同じ書式を使うの?
ペンギン先生 ペンギン先生
取り決めの表現方法はいろいろあるよ。Open Data Contract Standardという仕様では、YAMLでスキーマ、品質、チーム、サービス水準などを記述する形式を定めている。すべてのデータコントラクトがこの仕様に従うわけではないので、利用する形式とツールをそろえよう。
ひよこ ひよこ
YAMLを書けば、データの間違いを検出できる?
ペンギン先生 ペンギン先生
それだけではないよ。ファイルの書式が仕様に合うかの確認と、実際のデータが品質ルールを満たすかの確認は別。実データを検証するには、ルールを実行するツールや接続、実行のタイミングなどを用意する。CIや定期的な処理に組み込む方法もあるけれど、自動で全部そろうわけではないんだ。
ひよこ ひよこ
項目を変えたいときは?
ペンギン先生 ペンギン先生
使っている側への影響を確認し、必要なら版を分けるなど、移行方法を相談しよう。変更前の検証と、提供中の品質確認も役立つ。データメッシュのように複数のチームがデータを提供する場面でも使えるけれど、それ専用の仕組みではない。書いた取り決めを、実際の運用で使うことが大切だよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「データコントラクト」って出てきたら「提供するデータの形式や品質、責任を、使う側と共有する取り決め」と思えばだいたいOK!
📖 おまけ:英語の意味
「Data Contract」 = データ契約
💬 ソフトウェアのAPI契約と同じ発想で、データにも「こういう形式で提供します」という契約を結ぶ考え方だよ

参考資料

← 用語集にもどる