6.1 なぜデータ品質管理が重要なのか
データ分析基盤がどれほど高度な技術で構築されていても中に格納されているデータの品質が低ければその分析結果は信頼できません。「Garbage In, Garbage Out」という言葉があるように質の悪いデータからは質の悪い結果しか得られません。
企業の意思決定においてデータの信頼性は死活問題です。売上予測が不正確なデータに基づいていれば在庫の過剰発注や機会損失を招きます。顧客分析のデータに重複や欠損があれば間違ったターゲティングによりマーケティング投資が無駄になります。
従来の部門別システムでは各担当者が個別に品質管理を行っていました。しかし全社統一のデータ分析基盤では複数の部門の多数のデータソースから収集したデータが混在するため従来の手法では限界があります。システム的な品質管理の仕組みがなければデータの信頼性を担保できません。
データ品質の問題は発見が遅れるほど影響範囲が拡大します。元データの段階で発見できれば修正は比較的簡単ですが分析結果として経営層に報告された後に問題が発覚すれば信頼回復には長期間を要します。そのため予防的な品質管理体制の構築が不可欠です。
加えて、現代ではデータの取り扱いに関する法的規制も厳しくなっています。個人情報保護法やGDPRなどの法的要件を満たすためにも適切なデータ管理が求められています。
6.2 品質管理で実現したいこと
データ品質管理の最終目標は組織全体がデータを安心して使える環境を構築することです。どの部門の誰がデータを見ても同じ理解ができ迅速で正確な意思決定を支援する状態を目指します。重要なのは信頼性と一貫性です。
信頼性の確保
信頼性とはデータが正確で完全であり間違いがない状態です。売上のデータであれば金額の計算ミスがなく取引先名の表記に誤りがなく必要な注文の項目がすべて記録されているような状態を目指します。
信頼性を実現するためによく使われる手段の1つは自動的なデータ検証の仕組みです。数値データが妥当な範囲にあることをチェックしたり、必須項目が空欄でないことを確認したり、入力された項目のフォーマットの妥当性検証などを実行します。異常値が検出された場合は記録しておきダッシュボードで確認したりアラートを発信します。同時に障害やミスが発生した場合でも迅速に復旧できる体制を整備します。バックアップからの復元手順・データ修正のワークフロー・影響範囲の調査方法などを標準化し属人化を防ぎます。
重要なのはそもそも間違ったデータが生まれにくくする仕組みづくりです。間違って入力されたデータを後から修正するのは簡単ではありません。データ入力時に制約を設定したり自動計算による手計算の排除、システム間連携の自動化、標準化されたデータ変換処理などにより人為的なエラーの発生機会を根本的に減らします。予防的なアプローチにより問題の発生そのものを抑制することが最も効果的な信頼性の向上策です。
一貫性の維持
一貫性とは「同じ概念や指標が組織全体で統一されている状態」を指します。「売上」という指標を営業部・マーケティング部・経営企画部が見た時に全く同じ定義と計算方法で算出され全く同じ数値を認識している状態です。
一貫性を実現するためには全社で統一されたデータベースが必要です。営業部とマーケティング部が同じ顧客について分析する際にそれぞれ異なるデータベースを使用していては分析結果に矛盾が生じてしまいます。特に顧客や商品などのマスターデータは社内で散逸しやすいため一元管理することで計算の根拠となるデータを明確にし一貫したデータ分析の結果が得られます。計算の基礎となる情報ほど一元管理し各システムで共通利用することで情報の不整合が防げます。
また、指標の定義と計算式の明文化も同様に重要です。「売上」「利益」「顧客数」といった基本指標について全社統一の定義書を作成し関係者全員が同じ理解を共有します。データの変換・集計ロジックも統一化し売上の集計方法・顧客分類のルール・在庫評価の基準などを標準化することで誰が処理しても同じ結果になるようにします。
6.3 基本的なデータ品質の観点
データ品質を体系的に管理するための評価軸はさまざまな考え方がありますが、ここでは基本となる6つの観点を紹介します。
完全性(Completeness)
必要なデータがすべて存在し欠損がない状態です。顧客マスタで会社名・担当者名・連絡先がすべて記録されている状態が完全性を満たしています。改善施策として入力必須項目の設定・デフォルト値の自動設定・欠損率の監視などがあります。
正確性(Accuracy)
データが現実の状況を正しく反映している状態です。顧客の住所が実際の所在地と一致している・商品の価格が最新の定価と同じという状態が正確性を満たしています。改善施策として元データとの照合・外部データソースとの突合・異常値検出などがあります。
一意性(Uniqueness)
重複データが存在せず各レコードが唯一である状態です。顧客マスタで同じ会社が複数のIDで登録されていない状態が一意性を満たしています。改善施策として重複検出アルゴリズム・一意制約の設定・データ統合時の重複排除などがあります。
整合性(Consistency)
関連するデータ間で矛盾がない状態です。注文データと出荷データで数量が一致している・複数システム間で同じ情報が同じ値になっている状態が整合性を満たしています。改善施策として関連データの照合チェック・システム間同期の強化・データ変換ロジックの標準化などがあります。
適時性(Timeliness)
データが適切なタイミングで更新され最新の情報を反映している状態です。在庫データが出荷と同時に更新される・売上データが翌日には確認できる状態が適時性を満たしています。改善施策としてリアルタイム更新の仕組み・バッチ処理の高速化・処理遅延の監視などがあります。
妥当性(Validity)
データが定義されたルールや制約に従っている状態です。郵便番号が正しい形式・年齢が妥当な範囲・ステータスが定義済みの値という状態が妥当性を満たしています。改善施策として入力値の検証・マスタデータとの照合・業務ルールに基づく妥当性判定などがあります。
6つの観点の活用方法
これら6つの観点は常にすべてを同じように扱う必要はありません。必要に応じて組み合わせることで効果的なデータ品質管理を実現できます。まず自社のデータ活用目的に応じて重要度の優先順位を決定します。日常的な業務においてリアルタイム分析が必要なデータでは適時性を最重視し、経営判断のような影響が大きい意思決定に使う場合では正確性と完全性を優先する、といった使い分けが重要です。また、各データソースの特性に合わせて重点的にチェックする観点を選択し効率的な品質管理体制を構築します。
6.4 メタデータの管理
メタデータとは「データについてのデータ」を指します。メタデータとはデータについてのデータのことを指し、データがどのようなものなのか説明しているものです。テーブル名や列の名前・説明文、更新日次、更新頻度、計算ロジックなどがあります。
メタデータが適切に管理されていないとデータの扱い方がわからない状況が発生します。データ分析基盤を管理する側もそれぞれのデータが何者かわかりやすくなっていることは運用の効率を向上させます。メタデータはデータの品質そのものではありませんが品質管理に直結する重要な存在です。
データの意味と定義の明確化
テーブルや列の名前および説明は重要なメタデータです。わかりやすいテーブルや列の名前をつけたり、それぞれがどのようなデータなのか素性や計算ロジックを明文化します。
例えば、データをソースが何で前処理はどんなことをしているのかなどを記載すると便利でしょう。データマートならば用途や目的があるので、それらを踏まえてどのような集計や結合がされているのかロジックがわかるものが望ましいです。
計算の定義をドキュメント化し共有することで社内の認識を統一することができるというメリットもあります。同じ項目名でも部門によって異なる意味で使われることがあります。「売上」という項目が営業部では受注金額を指し経営企画部では入金金額を指すといったすれ違いは珍しくありません。
メタデータ管理では各データ項目の正確な定義を言語化します。売上データであれば「税抜き受注金額で返品・キャンセルを除く」といった具体的な定義を記録します。また計算方法・集計ルール・除外条件なども明記します。定義の共有により全社で統一された理解を実現します。新しい担当者がデータを利用する際も定義を確認することで正しい使い方を理解できます。
データリネージュ(Data Lineage)の追跡
データリネージュとは元データから現在の形に至るまでの処理の過程を可視化しデータの背景と文脈を把握しやすくするものです。売上分析レポートの数値が元々どのシステムのどのテーブルから生成され途中でどのような計算が行われたかを視覚的にわかりやすくなります。
データリネージュが管理されていると問題発生時の影響範囲調査が迅速に行えます。元データに問題が発見された場合そのデータを使用している全ての分析結果を特定し修正の必要性を判断できます。データリネージュがない場合は処理に使われているコードから読み解いて影響範囲を追跡する必要があり、依存関係が複雑になりやすいデータ分析基盤では調査コストが跳ね上がります。
また規制対応という観点でも重要な役割を果たします。個人情報に対応する必要がある場合、その情報がどのテーブルで参照されているのかリネージュから特定することができるため素早く適切に対応することが可能です。
使いやすさの向上
メタデータの適切な管理はデータ分析基盤の使いやすさを改善するにあたって非常に重要な存在です。使いやすさとは「必要な時に必要なデータを簡単に見つけて理解して信頼して利用できる状態」を指します。営業部が自分たちの地域の売上データをみたいと考えたときに素早く目的のデータを見つけ出し、どのようなロジックで集計されたものなのか把握して、その値が間違っていないだろうと判断できることです。
メタデータを利用したデータカタログによる検索・参照機能はデータの見つけやすさを改善します。業務領域や利用用途を用いた絞り込み機能により目的に応じたデータを素早く見つけられるようにします。また、キーワード検索やタグ機能により目的のデータを効率的に発見できる環境を構築します。
データの理解しやすさを改善するためにもメタデータは重要です。各集計値の正確な定義・計算方法・集計ルールを明確に文書化しておけば「このデータは何を意味するのか」「どのような処理で生成されたのか」を即座に理解できるようにしますし、データリネージュがあればデータの背景と文脈を視覚的に把握できます。
また、データの更新頻度や最終更新日時、作成者などの情報はデータの信頼度につながります。誰がいつ作ったのかわからないデータでは気軽に使うことはできません。責任者が明確になっており最新のデータであることが明確にわかって初めて安心して使うことができます。
しかし、メタデータの管理は言うは易く行うは難し。日々変わり続けるビジネスとデータ構造に追随し続けるのは容易ではありません。掛けられるコストや利用状況に応じて効率化を図ることが重要でしょう。
6.5 品質チェックと監視の仕組み
データ品質を継続的に維持するためには自動化された監視の仕組みが不可欠です。人手による品質チェックでは限界があるため技術的な支援が必要です。
品質チェックと監視の仕組み構築では「予防・検出・改善」の3つのステップを意識するとよいでしょう。まず予防的な観点からデータ入力時の制約設定や自動計算によりそもそも問題が発生しにくい仕組みを構築します。次に検出の観点から自動品質チェックとダッシュボード監視により問題を早期発見します。最後に改善の観点から発見された問題を優先度に基づいて計画的に解決し再発防止策を講じます。この3段階を連携させることで持続可能な品質管理体制を実現できます。
自動品質チェックの実装
データが分析基盤に取り込まれる際に自動的に品質チェックを実行します。チェックする処理を行い結果を記録、必要に応じてアラートをだします。
分析基盤全体でまずチェックするべき項目として処理の成否・実行時間や遅延の確認があります。バッチ処理であれば実行が予定通りの実行時間で開始され遅延なく終わっているか確認します。成功していても何度もリトライしているならばメモリ不足やネットワークの不調が考えられますし、いつもより実行時間が長ければ把握していない問題が起きているかもしれません。ストリーミングは配信のレイテンシが適正な範囲か確認します。データ配信の遅延がいつ発生したのかわかれば対策も立てやすくなりますので時系列で把握できるようにしておくとよいでしょう。
個別のデータに応じてチェック項目を設けることもあります。具体的なチェック項目として、数値データの範囲チェック(年齢が0-200の範囲内)やフォーマット検証(メールアドレスが正しい形式)などが挙げられます。さらに集計処理の結果に対する妥当性チェックも重要です。集計後のデータ件数やNULL値の出現チェックなどを自動で実行し集計処理の正確性を保証します。チェック処理が完了したら問題があるデータの件数などを保存しておくことで後から追跡できるようにしておきます。
チェック結果はログに保存し問題が検出された場合は担当者にアラート通知を送信します。メールやチャットサービスと連携させることで素早くチームメンバーが気がつける状態にしておくとよいでしょう。品質チェックの結果はダッシュボードで可視化することで各データソースの品質状況をリアルタイムで監視できるようにします。また、問題が検出されてなくとも定期的に振り返るようにしましょう。そうすることでアラートが出るほどではない緩やかな処理時間や配信遅延の悪化に気がついて予防的に対策できるかもしれません。
ここでは分析基盤側としてのチェック機能を解説しましたが、もちろん可能であればデータソース側で入力された時点でチェックする機能があるのが最も望ましいことはいうまでもありません。
利用状況の把握
利用状況の把握は優先度決定に不可欠な情報です。どのデータが誰によってどの程度の頻度で利用されているか把握することで限られたリソースを効果的に配分できます。また、利用状況から実際に求められているデータ品質の課題や改善すべきポイントが見えてきます。
頻繁にアクセスされるデータの品質改善は優先度が高くなります。利用頻度の高いデータで品質問題が発見された場合は迅速に修正作業を行い、元データからの再処理やデータクレンジングの強化などの改善施策を積極的に適用します。一方で、利用頻度が低いデータは改善の優先度を下げつつコストと効果のバランスを考慮して対応を判断します。実際のところ、利用者数だけでなく利用している部門や用途の重要度、影響範囲などを考慮して優先度を決めることになるでしょう。
分析で利用されているパターンを理解することでテーブル構造や設定を最適化していきます。データマートを中心に分析用のテーブルは利用部門などの意見をもとに作成しますが、事前に決めた仕様と実際の利用状況が異なるのはよくあることです。そこで、実際の分析のログを解析することで頻繁に参照されているテーブルや列、テーブルの結合、集計方法などを検証します。よく一緒に参照される項目であれば同じテーブルにまとめたものを作成して処理にかかる計算リソースを削減しつつ標準化をおこないます。逆に、ほとんど使われない項目は別テーブルに分離してメインテーブルのパフォーマンスを最適化することを検討します。