CSVファイルの検証方法
CSV検証エンジンと各ファイルに実行するチェックの技術概要。
エンコーディング検出
ファイルのバイトパターンを分析して文字エンコーディングを検出します。UTF-8、UTF-8 with BOM、Latin-1(ISO-8859-1)、Windows-1252などの一般的なエンコーディングをすべて検出します。BOM(バイトオーダーマーク)が存在する場合は識別・報告されます。非UTF-8ファイルは分析前に変換されます。
区切り文字の自動検出
エンジンがファイルの最初の数行をサンプリングし、一般的な区切り文字(カンマ、セミコロン、タブ、パイプ)の出現回数をカウントします。最も一貫性のある出現回数の区切り文字が選択されます。ヨーロッパのCSVエクスポートでセミコロンが一般的な地域差にも対応します。
構造の検証
各行がヘッダー行と同じ列数を持っているか確認します。列が不足または余分な行はフラグ付けされます。空行、末尾の区切り文字、正しい改行コードもチェックします。各構造上の問題は重大度別に分類されます。
ヘッダーの検証
ヘッダー行が検出された場合、空のヘッダー、重複するヘッダー名、前後に空白のあるヘッダーをチェックします。クリーンで一意なヘッダーは、データインポートシステムやデータベースにとって不可欠です。
データ型分析
各列のデータをサンプリングして、主要なデータ型(整数、浮動小数点、ブール値、日付、メール、URL、文字列)を判定します。データ型が混在または予期しない列を特定し、データ品質の問題を示すことが多いです。
重複・空行の検出
各行をハッシュ化して正確な重複を効率的に検出します。空行(データのない行または区切り文字のみの行)も特定・カウントされます。どちらの問題もデータインポート時に一般的に問題を引き起こします。
品質スコアの計算
品質スコアは100から始まり、発見された問題の重大度と数に基づいて減少します。列の不一致やエンコーディングの問題などの重大な問題はより大きな減点を、末尾の空白などの軽微な問題はより小さな減点を引き起こします。
スコア範囲
- 90-100: 優秀 – ファイルはクリーンで使用準備完了
- 80-89: 良好 – 問題を引き起こさない可能性のある軽微な問題
- 60-79: 普通 – 確認が必要な問題あり
- 40-59: 不良 – 修正が必要な重大な問題
- 0-39: 重大 – インポート失敗の可能性が高い深刻な問題