データ修正の注意点
はじめに
データエンジニアにとって、データの修正は避けて通れない課題です。特に、顧客に直接影響を与えるデータにおいては、データの整合性と正確性が極めて重要です。データベース、データウェアハウス(DWH)、データマートに保存される情報が最新かつ正確であることが求められます。
本記事では、データの修正を行う過程や修正プロセスにおけるデータ管理の重要性、その手法について紹介します。
1. 修正前後のデータの比較
画像に示されたローン契約データの修正前後の比較を基に、データソースおよびDWHにおける情報の修正の必要性とその過程について書きます。
データソースは履歴を持っておらず、DWHは履歴を持つという一般的な構造をしています。
1.1 修正前のデータソース
修正前のデータソースでは、次のようなローン契約テーブルを仮定します。
この情報は、ローン契約の基本的な内容を示しています。
修正前のデータでは、契約の期限日が「2025-6-30」とします。
1.2 修正後のデータソース
修正後のデータソースでは、契約期限日を「2025-12-31」に変更します。この変更は、実際の契約内容に何らかの変更(例えば、ビジネスサイドからの依頼)が生じたためにデータソース側での修正が行われました。
契約データの修正には、UPDATE文やINSERT文を使用します。例えば、データソースにおける契約期限日の修正は以下のように行います。
UPDATE contracts
SET contract_end_date = '2025-12-31'
WHERE contract_id = 1;
下記のカラムのみを修正します。
契約期限日: 2025-12-31
2. DWHにおける修正の必要性
DWHは過去のデータを保持し、データの履歴管理を行う重要な役割を担います。データソースと同様の修正をDWHにも実施する必要がありますが、注意が必要です。
修正内容に履歴として残したくないケースがあれば、過去の履歴レコードにも同様の修正を行う必要があります。
※ただし、本当に修正すべきかどうかは要確認です。
※履歴として残し、DWHやマートのクエリでどうにでもできるためです。
2.1 修正前のDWH
修正前のDWHには、以下のような情報が含まれています。
契約ステータスのみが変更された履歴が保存されています。
2.2 修正後のDWH
DWHでも、契約期限日を「2025-12-31」に修正します。また、DWHでは以前のデータが残るため、修正前の情報も保持されることになります。
UPDATE contract_history
SET contract_end_date = '2025-12-31'
WHERE contract_id = 1
AND customer_id = 'C001';
クエリ実行後は、下記のようなレコードになります。
上記のように遡及的な変更があると、データマート側でそのテーブル(DWH)を参照して算出していた後続データにもすべて更新をかける必要があります。
3. 過去レコード修正の理由
過去のレコード全ての契約期限日を修正する必要がある理由は、単にデータ整備の問題にとどまらず、データ分析や機械学習モデリング、さらには法的・ビジネス的な要因が深く関係しています。
以下では、データ修正の重要性を様々な観点から詳述します。
3.1 データの整合性を維持するため
最も基本的な理由として、データの整合性を保つことが挙げられます。保存された過去のレコードは、契約の履歴やビジネスプロセスの記録として極めて重要です。上記の例では「契約期限日」が誤っていた場合、その修正をしなければ、将来的にデータ分析や処理を行う際に、誤った結果や結論に繋がってしまいます。
例えば、データ分析のプロセスで「契約が終了したかどうか」を基にローンの支払い状況や顧客の動向を分析する場合、契約期限が間違っていると分析結果が歪められてしまいます。これは意思決定に誤りを引き起こし、ビジネスに大きな損失をもたらす可能性があります。
3.2 予測モデルの精度向上
機械学習モデリングにおいて、データの正確さは特徴量エンジニアリング等のモデル精度に大きな影響を与えます。
例えば、銀行や金融機関が貸し倒れリスクの予測モデルを構築する際に、ローン契約の期限日や契約期間の長さは重要な特徴量として扱われる場合があります。契約がいつまで続くのか、顧客がどのくらいの期間ローンを返済しているのかを正しく把握することは、リスク予測の精度に直結します。
3.3 データ分析における時系列データの整合性
データ分析、特に時系列分析においては、正確な「契約期限日」が重要な要素となります。契約期間が変わることで、分析におけるタイムウィンドウ(例えば1年ごとの分析や、四半期ごとの分析)が変わってきます。
もし契約期限日が誤っていると、ローンの返済や顧客の行動パターンに関する分析において不正確な結果を得ることになります。
3.4 法的・規制上のコンプライアンス対応
金融機関やローン契約に関連するデータは、法的および規制上の監査を受ける対象となることが多く、データの正確さが求められます。
例えば、顧客が契約に基づいてローンの返済を行っている場合、その期限や条件が誤って記録されていると、顧客との間でトラブルになることも考えられます。これが法的な問題に発展した場合、データが正確でないと企業が不利な立場に立たされる可能性があります。
まとめ
修正前のデータソースでは契約の期限日が「2025-6-30」とされていましたが、ビジネス側の依頼により「2025-12-31」に変更されました。この修正は、データソースだけでなく、過去データを保持するDWHにも反映させる必要があります。DWHでは履歴データを管理するため、修正の際には過去のレコードも適切に対応しなければなりません。
ただし、本当に履歴レコードも修正する必要があるのかは要確認が必要です。