データの“いつ変わったか”をコードで語る:自治体オープンデータのバージョニング設計

どうも〜おかむーです!今日はちょっとエンジニアっぽい話をしますよ〜
- これ見てくださいよ:公開データに「更新履歴」がないと政策の因果が追えないんです
- エンジニア的に言うと、データはソースコードと同じくバージョン管理が必要なんですよね
- 小さな自治体でも取り入れられる軽量な実装パターンを提案します!
結論
公開データには「タイムスタンプ」「バージョンID」「チェックサム」「差分API」が必須。これを標準化すれば、政策の実績と目標のギャップがコードで再現可能になって説明責任が高まる。やるべきはメタデータ強化+軽量なバージョニング運用だ!
レポート本文
背景/なぜ今か
e-GovのAPIカタログや東京都オープンデータAPIを見ても、データ本体は出ているけど“いつ”“どう変わったか”が分かりにくいケースが多いです。CSVをぽんと置く運用だと、過去値の追跡が困難で政策評価の再現性が落ちるんですよね。
要するに、データの更新履歴がないと「その数値はいつのもの?」という問いに答えられないということです。
問題点(技術観点)
- メタデータが貧弱:更新日時のみ、バージョン無し
- フォーマットの無統一:CSV/JSON混在でスキーマ変化を検出しにくい
- 履歴保存の欠如:上書き更新で旧データが消える
具体的な設計提案
- dataset_id(恒久的ID)
- version(セマンティックでなくてもOK、連番で可)
- issued_at / updated_at(ISO8601)
- checksum(SHA256)
- change_log(短い要約)
- latestエンドポイント + /history/{version}で古いバージョンへアクセス可能に
- 差分(delta)エンドポイントを用意すると、帯域と解析コストが減る
- ファイルストレージ(S3互換)にcontent-addressedで保存
- メタデータはJSONで同ディレクトリに置く
- CIでスキーマ検査(例:JSON Schema / CSVLint)
実践コード例
# Python: 新旧CSVの差分を簡易チェックする例
import hashlib, requests, csv
r = requests.get('https://example.gov/dataset.csv')
h = hashlib.sha256(r.content).hexdigest()
print('sha256=', h)
さらにpandasで行差分をとるなど
要するに、このチェックサムをメタデータに入れとけば、データ改変が検知できます。
運用フロー(短期〜中期)
- 短期:公開中のCSV/JSONにmetadata.jsonを追加(issued_at, checksum)
- 中期:ポータルにhistory APIを追加、差分配信を試す
- 長期:DCAT/JSON-LDでカタログ連携、e-Govや都道府県ポータルとメタデータ同期
政策評価への応用例
過去の交付金、公共施設利用データ(都のオープンデータ等)をバージョン管理すれば、「いつ」「どのデータで判断したか」を再現可能。これで数値目標と実績のギャップ分析が強くなるんです!
まとめ
- データの“何”より“いつ・どのバージョン”が重要
- メタデータ強化+履歴公開で政策の説明責任がコードで担保できる
- 小規模自治体でも導入可能な軽量設計をまずはmetadata.jsonとチェックサムから始めよう
おかむーから一言
技術で行政をアップデートするのは可能です!まずは「いつ変わったか」を記録する文化を作るところから始めましょう。小さな改善が政策の信頼を変えるんですよ!
情報ソース
- https://www.jichi.ac.jp/
- https://www.e-gov.go.jp/digital-government/api
- https://www.jichi.ac.jp/web_text/
- https://portal.data.metro.tokyo.lg.jp/opendata-api/
- https://wma1.jichi.ac.jp/moodle/
- https://www.jinji.go.jp/content/900024615.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.inpit.go.jp/content/100869372.csv
- https://www.mhlw.go.jp/content/001429362.csv
- https://www.soumu.go.jp/main_content/000323625.csv
- https://www.city.fukuoka.lg.jp/soki/system/shisei/koukyousisetsu-yoyaku_12_2_2.html
- https://www.intec.co.jp/column/smartcity-08.html
- https://www3.11489.jp/fukuoka/user/Home
- https://www.digital.go.jp/resources/data_case_study_private
- https://kotobank.jp/word/%E5%85%AC%E5%85%B1-494676
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。