データにバージョンを与えるという政治:自治体オープンデータのライフサイクル設計をコードで考える

どうもおかむーです!今日はちょっとエンジニア寄りに、自治体オープンデータの「バージョン管理」について話しますよ〜
- データはコードと同じで変更履歴が必要。コントロールされてないと依存先が壊れるよ!
- 東京都カタログやe-Statを見ると、更新頻度やフォーマットの変化で実運用がつまずく場面が多いんです
- 要するに「データのセマンティックバージョン+通知+差分」があれば現場も外部連携もめっちゃ楽になります!
結論
自治体オープンデータにはソフトウェアと同じライフサイクル管理を導入すべきです。具体的にはデータセットにセマンティックバージョン(例: 1.2.0)、機械判読できるchange log、差分API/Webhook、CIによるスキーマ互換チェックを組み合わせる。これで政策KPIやダッシュボードの「更新で値が急に変わる」問題を工学的に抑えられます。
レポート本文
現状観察
これ見てくださいよ:東京都オープンデータカタログ(portal.data.metro.tokyo.lg.jp / catalog.data.metro.tokyo.lg.jp)やe-Statのダッシュボード(dashboard.e-stat.go.jp)はデータが豊富で助かるんですけど、注意書きに「更新頻度が変わりました」「CSVは丸めで合計が一致しないことがある」といった注釈があるんです。要するに、データの内容や表現が変わることを前提で作られてるんですよね。
更新頻度の変化(年→月)や小数点処理の違いは、ダッシュボードや市民アプリにとっては破壊的変更になり得ます。PDFに埋め込まれた表やCSVのフォーマット差異も機械処理の障害です。
なぜバージョン管理が必要か(エンジニア的に言うと)
- 依存関係管理:自治体AのCSVを参照する外部アプリは、フィールド変更で壊れる
- 再現可能性:KPIや政策評価は「いつのバージョンのデータで出したか」を残す必要がある
- 自動化運用:CIで回せば変更での破壊を事前に検出できる
要するに、データもコードと同じライフサイクル管理をするってことです。
技術的な実装案(具体例とコード)
1) メタデータにセマンティックバージョンを付与
- dataset.json に "version": "1.0.0" を置く(Data Package / DCAT 互換)
2) 変更ログと互換性ラベル
- patch (互換)、minor (後方互換な追加)、major (非互換)
3) 差分API / Webhook
- 公開カタログが更新時にWebhookで通知。下流は自動でテストを走らせる
Webhook の例(curl):
curl -X POST https://example.com/webhook -H 'Content-Type: application/json' -d '{"dataset_id":"tokyo-evac", "old_version":"1.1.0", "new_version":"1.2.0", "changes":[{"field":"capacity","type":"added"}]}'
4) スキーマ差分検出(Python + pandas の簡易例)
import pandas as pd
old = pd.read_csv('old.csv', nrows=0).columns.tolist()
new = pd.read_csv('new.csv', nrows=0).columns.tolist()
added = [c for c in new if c not in old]
removed = [c for c in old if c not in new]
print('added', added, 'removed', removed)
5) CIでの互換テスト
- スキーマチェック、サンプル行のバリデーション、数値丸め方の確認(東京都カタログの注記を踏まえて)
運用設計のポイント
- ライセンス(東京都はCC BY 4.0)情報とバージョンを紐づける
- ダッシュボードや政策KPIは常に「使っているデータのバージョン」を明示
- 過去バージョンをアーカイブして再現性を担保
- 小さな自治体向けには「マネージド・カタログ(SaaS)」でバージョン管理機能を提供
政策評価への効用
- KPIと実績のギャップを解析するとき、どのデータバージョンで計算したかが不明だと誤った評価になる。バージョン付与で原因追跡が一発です。
まとめ
- オープンデータは公開で終わりじゃなく、運用が重要!
- セマンティックバージョン、change log、差分API、CIテストの組合せで運用リスクが劇的に下がる
- 東京都カタログやe-Statのような既存プラットフォームは、メタデータ強化と通知機能で短期的に改善可能
おかむーから一言
テクノロジーは政策の“安定運用”を支える道具です。データにバージョンを付けておけば、政策の再現性と信頼性がすぐに変わるんですよ。現場も市民もハッピーにしましょう!
情報ソース
- https://portal.data.metro.tokyo.lg.jp/
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://catalog.data.metro.tokyo.lg.jp/ja/dataset/?res_format=CSV
- https://opendata.pref.saitama.lg.jp/
- https://catalog.data.metro.tokyo.lg.jp/dataset?res_format=CSV
- https://metidx-gov.note.jp/n/n9468573c213b
- https://www.digital.go.jp/policies/servicedesign/government-system-ui
- https://zenn.dev/govtechtokyo/articles/b65dc687e50918
- https://picks-design.com/blog/5751/
- https://www.meti.go.jp/meti_lib/report/2024FY/000072.pdf
- https://www.digital.go.jp/resources/japandashboard
- https://dashboard.e-stat.go.jp/
- https://www.kantei.go.jp/
- https://www.kantei.go.jp/jp/news/index.html
- https://www.stat.go.jp/dstart/tool/
シェアする
関連レポート

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

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

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