政策データをCI/CDで回す:公開データを“デプロイ”する技術設計

どうも〜おかむーです!今日はちょっとエンジニアっぽい話をしますよ〜
- 公的レポートや交付金の成果がPDFで眠ってること、多くないですか?
- それを放置すると再現性ゼロ、検証不能になりがちなんですよね
- だからこそ「データをコード化してCI/CDで運用」する設計を紹介します!
結論
公開データは単なるファイルじゃなくて「ソフトウェアの一部」として扱うのが最短で実用的。Gitベースでスキーマ・テスト・デプロイのパイプラインを作れば、KPIの改訂や実績報告の信頼性がぐっと上がります。要するに、政策の“リリースフロー”をエンジニアリングで担保するということです。
レポート本文
問題の整理:現場でよく見る地雷
これ見てくださいよ。デジタル庁や各自治体(例:digital.go.jp、各都道府県のlg.jp)には素晴らしい意図で資料がアップされてるけど、実態はこんな感じ:
- KPIはPDFの表に埋め込まれている(機械可読性ゼロ)
- CSVがあってもスキーマ不整合、エンコーディング混在
- APIがない or あるがドキュメントが古い
- 更新履歴(誰がいつ変えた)はトレーサビリティ不足
要するに、政策を検証するための「安定したデータ供給」が不足してるんです。
エンジニア的アプローチ:データをコード化するとは?
具体的には次の3点をパッケージ化します。
こうすると、政策変更が入ったときにも差分で追えるし、回帰テストで過去実績が壊れていないか確認できます。
実装の骨子(例)
- リポジトリ構成
- schema/ ← JSON Schema や datapackage.json
- tests/ ← Python(pytest)や Goodtablesルール
- .github/workflows/ ← CI定義
コード例:CSVバリデーション(Python + frictionless)
from frictionless import Pipeline, steps
pipeline = Pipeline()
pipeline.add_step(steps.validate(schema='schema/indicator.json', fail_fast=True))
report = pipeline.run('data/indicator_2025.csv')
if report.valid:
print('OK')
else:
print(report.flatten())
CI(GitHub Actions)例:コミットごとにバリデートして、合格ならS3やGCSへデプロイ
name: data-ci
on: [push]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- run: pip install frictionless
- run: python tests/validate_all.py
deploy:
needs: validate
if: success()
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: ./scripts/deploy_to_storage.sh
PDF源の扱い:抽出から正規化まで
PDFしかない資料は多い。ここは現実的にTabula/Camelotでテーブル抽出→検査→正規化のパイプラインを作るべきです。
簡単な流れ:
- PDFをOCR/テーブル抽出
- 初期CSVを作る
- 自動スキーマ推論(frictionless describe)でテンプレ作成
- 手動レビュー→schemaで固定
要するに、最初の労力はかかるけど、その後はCIで自動化できます!
KPIと実績のギャップをコードで見つける
政策ドキュメント(例:交付金のKPI資料)をデータ化すれば、次が可能になります。
- KPI目標と実績を時系列で比較する自動レポート
- SLO/SLA風に更新頻度・遅延をチェック
- アノマリー検出(実績が急落したら自動でSlack通知)
実装ヒント:SQLやPythonで毎日差分を計算して、Grafanaやダッシュボードに流すと現場の議論が変わります。
オープンデータ運用のガバナンス設計
- ライセンスは明示(CC-BY等)→ machine-readableなLICENSEファイル
- バージョン管理(タグ/リリース)で時点復元を担保
- メタデータ(発行日、作成者、原典URL)をカタログに載せる(例:data.gov.jpスタイル)
まとめ
政策データは「出す」だけじゃダメで、「出し続ける」ためのエンジニアリングが必要です。Gitベースでスキーマ・テスト・デプロイを整備すると、検証可能性と運用工数の両方が改善します。PDFばかりの現状でも段階的に自動化パイプラインを導入すれば実利が出ますよ!
おかむーから一言
社会をアップデートするには技術だけじゃなくて、運用の仕組み化が肝心。データをコードとして扱えば、政策の透明性は確実に上がります。やっていきましょう!
情報ソース
- https://www.zhihu.com/question/40553450
- https://www.govtechtokyo.or.jp/services/data-utilization/
- https://www.zhihu.com/question/372341437
- https://note.govtechtokyo.jp/n/n77785a8254d6
- https://bus.gov.ru/
- 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
- https://www5.cao.go.jp/npc/
- https://www.intec.co.jp/column/smartcity-08.html
- https://ja.wikipedia.org/wiki/%E5%85%AC%E5%85%B1
- https://www.digital.go.jp/resources/data_case_study_private
- https://adtechmanagement.com/minnadepr-column/2025/11/02/koukyou-toha/
シェアする
関連レポート

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

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

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