データ品質の 6 軸:何が「悪い」のかを言語化する
Stage 4 — 第1章 | データマネジメント入門 推定学習時間:40〜50分 | 難易度:★★★☆☆
この章で学ぶこと
Stage 3 までで 置き場所と層 を整えました。 次は、その中身が 信頼できるか です。
現場で「データがおかしい」と言われても、曖昧なままだと手が付けられません。 データ品質(Data Quality)は、6 つの評価軸 で症状を言語化する枠組みです。
この章を終えると、こんなことができるようになります:
- 品質 6 軸(Accuracy / Completeness / Uniqueness / Consistency / Timeliness / Validity)を説明できる
- さくら商事の困りごとを どの軸の問題か に分類できる
- 「SQL が合わない」と「品質が悪い」の違いを説明できる
- analytics の SQL 品質チェックと 役割分担 を説明できる
1. 「おかしい」の正体が分からない
返品 CSV の取込停止後、さくら商事の Slack は次のように流れました。
経理・佐藤: 「6 月売上、先週より 800 万円少ない。データおかしくない?」
基盤・鈴木: 「パイプラインは成功してます。」
マーケ・田中: 「うちの数字は変わってない。」
山田: 「SQL 見直しました。合ってると思います…」
「おかしい」だけでは 何を直すか が決まりません。 品質 6 軸は、症状の ラベル です。
2. 品質 6 軸一覧
| 軸(英語) | 日本語 | 問い | さくら商事の例 |
|---|---|---|---|
| Accuracy | 正確性 | 値は現実と合っているか | 返品額が二重計上 |
| Completeness | 完全性 | 欠けていないか | 返品 CSV 2 日分欠損 |
| Uniqueness | 一意性 | 重複していないか | 同じ注文 ID が 2 行 |
| Consistency | 一貫性 | ソース間で矛盾しないか | EC 売上 ≠ ERP 売上 |
| Timeliness | 鮮度 | 十分新しいか | 朝会なのに前日 18 時止まり |
| Validity | 妥当性 | 定義・形式に沿っているか | テスト注文が本番集計に |
現場メモ
1 つの事故が 複数軸 にまたがることは普通です。 返品欠損は Completeness だが、気づくのが遅れれば Timeliness も問題になります。
3. 軸ごとの深掘り
3.1 Accuracy(正確性)
現実世界の事実 とデータが一致しているか。
| 症状 | さくら商事 |
|---|---|
| 金額が実際と違う | クーポン二重適用のバグ |
| 件数が合わない | 部分返品の符号ミス |
Accuracy は ビジネスルールの実装ミス でも、ソース入力ミス でも起きます。
3.2 Completeness(完全性)
あるべきデータが存在するか。
-- 完全性チェックの例:日次件数の欠損日を探す
SELECT dt
FROM UNNEST(GENERATE_DATE_ARRAY('2026-06-01', '2026-06-30')) AS dt
LEFT JOIN (
SELECT DATE(refund_at) AS dt, COUNT(*) AS cnt
FROM bronze_refunds
GROUP BY 1
) r USING (dt)
WHERE r.cnt IS NULL;
返品 CSV 2 日欠損は Completeness の典型です。
3.3 Uniqueness(一意性)
同じエンティティが 重複していないか。
| 例 | 影響 |
|---|---|
同一 order_id が 2 行 |
売上 2 倍 |
| 顧客マスタの重複 | LTV 過大 |
3.4 Consistency(一貫性)
システム間・表間 で矛盾がないか。
| 比較 | さくら商事 |
|---|---|
| EC 注文数 vs DWH 注文数 | 取込失敗 |
| マート vs ERP | 定義差(Stage 2 のオントロジー) |
Consistency 問題の一部は 定義未合意 です。品質だけでなくガバナンスの話も混ざります。
3.5 Timeliness(鮮度)
データは 必要な時点で最新か。
| 要求 | 許容 |
|---|---|
| 経営月次 | 翌月 3 営業日まで |
| 在庫アラート | 1 時間以内 |
| 広告最適化 | 当日 |
Stage 3 で学んだ MV refresh 間隔も Timeliness 設計です。
3.6 Validity(妥当性)
定義・形式・許容値 に沿っているか。
| 例 | 軸 |
|---|---|
status='test' が売上に |
Validity |
| 未来日付の注文 | Validity |
| 返品を売上定義に含める | Validity(定義逸脱) |
Stage 2 のオントロジー・用語集は Validity を守るための仕様書 です。
4. 6 軸で見る返品欠損事件
| 軸 | 返品 CSV 2 日欠損での状態 |
|---|---|
| Accuracy | 欠損期間の売上が 高く見える(返品控除漏れ) |
| Completeness | 2 日分の行が存在しない ◎主軸 |
| Uniqueness | 直接は関係薄い |
| Consistency | 経理 vs マートの差が拡大 |
| Timeliness | 欠損に 2 日気づかない |
| Validity | 公式定義「返品反映済み」を満たさない |
5. analytics トラックとの棲み分け
データ品質チェック(analytics) では、NULL・重複・外れ値を SQL で検出 します。
| レイヤ | analytics | data-management-intro |
|---|---|---|
| 手段 | COUNT, GROUP BY HAVING |
6 軸で 分類・優先度・責任 |
| 問い | どう書いて検出するか | どの軸が壊れているか、誰が直すか |
| 出力 | クエリ | インシデント、ルール、再発防止 |
SQL は検知ツール。6 軸は共通言語。
6. 品質ルールの書き方(最小)
さくら商事で mart_finance に付けたルール例:
| ルール ID | 軸 | 内容 | 閾値 |
|---|---|---|---|
| Q-001 | Completeness | 日次返品行数 > 0 | 平日 |
| Q-002 | Uniqueness | order_id 重複 0 |
常時 |
| Q-003 | Validity | status='test' 件数 0 |
マート出力 |
| Q-004 | Timeliness | mart_finance 更新 < 09:00 JST |
営業日 |
ルールは 測定可能 に。曖昧な「正しそう」は運用できません。
体系コラム:カリキュラム上の位置づけ
| 項目 | 内容 |
|---|---|
| Stage / 章 | Stage 4 — 第1章「品質 6 軸」 |
| 今回の論点 | 「おかしい」を Completeness 等の 6 軸 で言語化する |
| DAMA 領域 | データ品質 |
| ライフサイクル | 加工(テスト)と活用(Timeliness で表面化) |
| 前章との接続 | テーブル・ビュー・MV — 正しい実装でも 値の妥当性 は別問題 |
| 次章への伏線 | 品質インシデント — 疑義が出た 止め方・伝え方 |
コラム:よくある誤解 —「品質=NULL がないこと」
さくら商事で返品 CSV が 2 日欠損したとき、テーブルには NULL はほとんどありませんでした。Completeness だけ見れば「問題なし」に見える——これが最初の誤解です。件数が平日比 0 件という Completeness のシグナル を見逃していました。
もう一つは「品質は DE の仕事」と捉えること。Timeliness で古い MV が会議に出た事例、Validity でテスト注文が混ざった事例は、オーナーとスチュワード の判断領域でもあります。6 軸は技術チェックリストであり、同時に 公開してよい状態か の共通言語です。
佐藤さんは経理オーナーとして Q-001(返品行数)の閾値承認を担い、鈴木さんは実装します。品質はパイプラインの向こう側、意思決定の安全装置 です。
まとめ
| 軸 | キーワード |
|---|---|
| Accuracy | 現実と合うか |
| Completeness | 欠けていないか |
| Uniqueness | 重複していないか |
| Consistency | 矛盾していないか |
| Timeliness | 新しいか |
| Validity | 定義・形式に沿うか |
この章のキーメッセージ:
「データがおかしい」を 6 軸のどれか に変換すると、次のアクション(取込修正、定義見直し、公開停止)が決まります。
次に読む
- 前章(Stage 3): テーブル・ビュー・MV
- 次章: 品質疑義とインシデント対応
- 関連: データ品質チェック SQL
確認問題
問題 1
同じ order_id が fct_orders に 2 行存在し、売上が 2 倍になった。
主な品質軸 はどれですか。
A. Uniqueness
B. Timeliness
C. Consistency のみ
D. 品質問題ではない
正解: A
解説: 同一キーの重複は Uniqueness です。Timeliness は鮮度、Consistency はソース間矛盾が中心です。
問題 2
返品 CSV が 2 日欠損し、売上が実態より高く見えた。 最も中心となる軸 はどれですか。
A. Completeness
B. Accuracy のみ(Completeness は無関係)
C. Validity のみ
D. 6 軸は使わない
正解: A
解説: 行そのものが 存在しない のが Completeness です。結果として Accuracy も狂いますが、根本原因の分類は Completeness が先です。
問題 3
「テスト注文が mart_finance に含まれていた」問題の 主軸 として最も適切なのはどれですか。
A. Validity(定義・除外ルール違反)
B. Timeliness
C. Uniqueness
D. 統計検定 2 級の計算ミス
正解: A
解説: テスト除外は 公式定義(Validity) の問題です。SQL 技法や分布の話ではありません。
用語メモ(この章)
| 用語 | 意味(この章での使い方) |
|---|---|
| データ品質(Data Quality) | データが利用目的に適う程度 |
| 6 軸 | Accuracy / Completeness / Uniqueness / Consistency / Timeliness / Validity |
| 品質ルール | 軸ごとに測定可能な閾値・条件 |
| 品質疑義 | 数字や内容への信頼失墜(次章でインシデント化) |