Skip to content

Data Management

humanbeans893 edited this page Jul 16, 2026 · 1 revision

データ管理

データのライフサイクル

場所 内容 原則
data/raw/ 入手したままの生データ 不変。直接編集しない
data/interim/ 途中の変換結果 コードから再生成する
data/processed/ 解析可能な派生データ コードから再生成する
exp/*/out/ 個別実験の出力 Git 管理外
result/ 採用した図表など 生成コードを正典にする

コンテナでは raw data が /data に読み取り専用でマウントされ、DATA_ROOT=/data が設定されます。ホスト側で実行する場合は .envDATA_ROOT、未設定なら ./data/raw が使われます。

生データの受け入れ記録

データごとに docs/ へ次を残します。

  • 提供元または取得 URL
  • 取得日、版、DOI
  • ライセンス、利用・再配布条件
  • ファイル一覧、サイズ、可能なら SHA-256
  • タイムゾーン、座標系、単位、欠損値表現
  • 匿名化・除外・品質管理の処理
  • raw から processed までの生成コマンド

大容量データ

.gitignore は一般的な大容量形式や data/ の内容を除外しますが、無条件に安全を保証するものではありません。コミット前に必ず確認します。

git status --short
git diff --cached --stat
git diff --cached

大容量データは、アクセス制御された共有ストレージ、オブジェクトストレージ、機関リポジトリなどに置き、取得方法や版だけを Git に記録します。必要ならチェックサム付きのダウンロードスクリプトを用意します。

機微情報と公開リポジトリ

次の情報は公開 GitHub に置きません。

  • 個人を識別できる情報、被験者 ID の対応表
  • 希少種・保全対象の精密位置情報
  • 倫理審査や契約で公開を制限されたデータ
  • 査読前・共同研究中で公開合意のないデータ
  • API キー、パスワード、秘密鍵、アクセストークン
  • 個人名を含むローカル絶対パスや内部サーバー情報

必要な場合は、公開可能な匿名化・集計済みサンプルデータを別に作り、匿名化処理もコードとテストで管理します。

raw を誤って変更しないために

  • raw から processed への処理は常に別ファイルへ出力する。
  • スクリプトの出力先が raw を指していないことを assert する。
  • 元データのチェックサムを実行前後で比較する。
  • 削除や置換を伴う処理は、自動化する前に対象を明示してレビューする。