30秒でわかる概要
今回なにをした?
旧DBの履歴データ680,899件を、新しいCanonical DBへ実際に移行しました。
680,721件を受理し、受理条件を満たさない178件は理由付きRejectとして分離しました。
新しいDBには何が入っている?
Canonical DBでは、競馬データを次のように分けて管理します。
race:レースhorse:馬race_entry:出走race_result:結果payout:払戻
レース・馬・出走・結果・払戻を役割ごとに分け、後からデータの出所や関係を確認しやすい構造にしています。
なぜ178件を残した?
欠損や親データ不在のデータまで推測で受理すると、その誤りが後の学習や検証へ混ざる可能性があります。
そのため、受理できないデータは無理に補完せず、理由付きRejectとして追跡できる状態を残しました。
何が変わった?
旧DBを読み取り専用のまま維持しつつ、履歴データを新Canonical DBへ移せるようになりました。
また、処理件数・受理件数・Reject件数を照合し、移行結果そのものを後から検証できる状態になりました。
現在の状態
- 処理件数:680,899件
- Canonical DB受理:680,721件
- 未解決Reject:178件
- 移行元DB:読み取り専用
- 書き込み先:新Canonical DBのみ
検証結果
- 件数照合:PASS
- Canonical DB整合性:PASS
- スキーマ整合性:PASS
- Reject理由の保存:PASS
- 再処理可能性:PASS
安全境界
欠損や親データ不在の行を、推測でCanonical DBへ混入させないことを優先しています。
また、移行元DBを書き換えず、元データを後から確認できる状態を維持しています。
まだ残っていること
未解決Rejectは178件残っています。
この工程では、それらを隠したり強制的に受理したりせず、理由付きで追跡可能な状態にしています。
また、この工程だけでモデル精度・回収率・収益性が改善したとは判断しません。
次工程
次は、新しいCanonical DBを正式に受け入れてよいか、旧DBからの切替準備が整っているかを確認します。