CSVを安全に扱うなら、検査と修正を分ける。
Preflightは「このCSVを次へ流してよいか」を確認する工程。Cleaningは「値をどう変更するか」を決めて実行する工程だ。
Preflightでやること
- 必須値の欠損を見つける
- 重複候補を見つける
- ヘッダー異常を止める
- 列数や引用構造の異常を止める
- 問題行をレポートする
基本的には元データを勝手に書き換えない。
Cleaningでやること
- 前後空白を除く
- 日付形式をそろえる
- コードを正規化する
- 重複レコードを統合する
- 値を別の表記へ変換する
こちらはデータを変更するため、業務ルールが必要になる。
なぜ分けるのか
自動修正まで一気に行うと、「なぜ値が変わったのか」を追いにくくなる。
Preflightで問題を列挙し、承認済みルールで修正し、もう一度Preflightを通す。この往復のほうが監査しやすい。
ZEROHANDのCSV Preflight v0.1は、まずこの「止める」側を小さく切ったRelease Candidateだ。
便利さだけでなく、誤修正のコストまで含めて工程を分ける。