公共データの“ID設計”をコードで考える:つながる自治体データを作る技術チェックリスト

どうも〜おかむーです!今日はちょっとエンジニアっぽい話をしますよ〜
- オープンデータに「永続的な識別子(ID)」がないと、異なる府省・自治体のデータをつなげられない
- ID設計は政策評価やKPI追跡の精度に直結する。機械可読化だけじゃ足りないんですよね
- 実務では「自然キーの衝突」「スキーマ変化」「バージョン管理不足」が主な障害になる
結論
行政データの利活用を進めるには、単にCSVやAPIで公開するだけでなく「恒久的かつ連結可能なID設計」が不可欠。要するに、データ同士をつなぐための設計ルール(命名規則・バージョン・リゾルバ)がないと、政策の実績と目標を正しく紐付けられないということです。
レポート本文
なぜIDが重要か?
これ見てくださいよ:NICTERのCSV(notice.go.jp)や環境省のCSV(env.go.jp)って公開はされてるんですけど、各行に入ってる識別子が局所的だったり省ごとにフォーマットが違ったりするんです。エンジニア的に言うと、キーが一意に保証されていないとJOINができない。要するに“つなげられないデータ”になります。
また、デジタル庁や内閣官房の資料(digital.go.jp、cas.go.jp)ではAI-Readyや機械可読性が謳われてますが、実務ではIDの永続性や後方互換が抜け落ちるケースが多い。これがKPIの追跡ミスや重複集計の原因になるんですよね。
よくある設計欠陥
- 自然キー依存(名称や住所をキーにする)→表記ゆれで衝突
- 省独自の連番のみ(別府省で同じIDが再利用される)→重複
- バージョンレス(更新のたびに上書き)→変更履歴が追えない
政策目標とIDのギャップ例
デジタル田園都市交付金のKPI報告(chisou.go.jp / 都道府県レポート)を追う場面を想像してください。補助事業の実績(pref.yamaguchi.lg.jp等PDF)と国側の交付金データを突き合わせるには、事業IDが必要。だけどPDFには事業名だけで一意なIDがなく、人手で突合せすると誤差が出ます。要するに、自動化が効かないんです。
技術的改善案(現場で使えるチェックリスト)
実務で使えるコード例
例えばCSVに固有IDがないとき、公開データを取り込んで一時的にハッシュで振り直すサンプル(Python/pandas):
import pandas as pd
import hashlib
df = pd.read_csv('https://www.env.go.jp/content/900398071.csv')
結合可能なキーが無ければ、ソースと行の重要フィールドでハッシュ作成
def make_canonical(row):
s = f"env:{row['project_name']}:{row['address']}"
return hashlib.sha256(s.encode('utf-8')).hexdigest()
df['canonical_id'] = df.apply(make_canonical, axis=1)
要するに、最初は暫定ハッシュでつなげることができるんですけど、恒久的には公式IDを発行すべきです。
実装の注意点
- IDの公開は政策的合意が必要(どのレベルで一意化するか)
- 過去データとの互換性を保つために変換マップを公開する
- プライバシー配慮で、個人を特定するIDは設計しない
まとめ
- 永続的なID設計はオープンデータの“つながり”を作るインフラで、政策評価の精度を上げる
- 技術的にはグローバル命名、バージョン管理、レジストリ公開、APIでのID参照が鍵
- 今すぐできることはCSV/APIsにcanonical_id列を足すこと。これ、現場コストほとんどかからないんですよ!
おかむーから一言
政府データの価値は“つながる”ことで倍増します。ID設計は地味だけど超重要。エンジニアと政策担当が一緒に作るべき基盤ですね!
情報ソース
- https://www.zhihu.com/question/290714454
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/data8/data8_siryou1.pdf
- https://www.zhihu.com/question/6430289390
- https://digital-gov.note.jp/n/neb45f4883f23
- https://www.zhihu.com/question/38923279
- https://notice.go.jp/docs/status_nicter.csv
- 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://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://www.digital.go.jp/
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://e-words.jp/w/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB.html
シェアする
関連レポート

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

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

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