地盤ボーリング・浸水想定・自然災害伝承碑・不動産取引履歴など8つのレイヤーを全国対応させました。もっとも重かった土地利用細分メッシュ(全9年度・約64GB)がなぜ19時間52分かかったのか、途中で起きた2件のインシデントと、無人化と人の判断を切り分けた運用設計を、実録としてまとめます。
こんにちは、MAPRISE開発チームです。前回の記事では登記所備付地図とPLATEAUの全国対応について書きましたが、その後も並行して他のレイヤーの全国展開を進めており、今回さらに8つのレイヤーが本番で全国対応を完了しました。今日は機能紹介ではなく、その展開作業そのものの記録です。特に、全レイヤーの中でもっとも処理時間を要した土地利用細分メッシュについて、なぜ19時間52分もかかったのか、途中で何が起きたのかを、汗をかいた分だけ正直に書きます。
今回全国対応した8レイヤー
| レイヤー | 対応拡大 | 件数・容量 |
|---|---|---|
| 国勢調査小地域(集計ビュー同期) | 九州域 → 全国 | 23,872件 → 214,367件 |
| 地盤ボーリング柱状図(KuniJiban) | 九州7県 → 全国47都道府県 | 38,072本 → 262,284本 |
| 内水浸水想定区域(KSJ A51) | 福岡市・大牟田市 → 22都道府県 | 49,575行 → 202,869行 |
| 自然災害伝承碑 | 九州7県 → 全国47都道府県 | 278件 → 2,463件 |
| 不動産取引価格情報(2005〜2025年) | 九州7県 → 全国47都道府県 | 645,463件 → 6,577,049件 |
| 多段階浸水想定区域(KSJ A53) | 国管理1整備局相当 → 全国8地方整備局 | 501,714行 → 3,850,088行 |
| PLATEAU建物(3D都市モデル) | 九州27自治体 → 全国265自治体 | 1,956,743棟 → 23,759,999棟 |
| 土地利用細分メッシュ(KSJ L03-b、1976〜2021) | 九州 → 全国9年度 | 全国合計 約64.1GB |
いずれも投入前後で既存データの件数・内容が変わっていないことを確認したうえで本番反映し、実際のタイル配信エンドポイントで新規エリアのデータが返ることまで確認しています。
九州で培ったノウハウをどう活かしたか
九州7県での対応を通じて積み上げてきたやり方を、そのまま47都道府県・数百自治体規模に当てはめると、確認作業だけで終わらない規模になります。今回はいくつかの点で、九州での知見を土台にしながら手法を発展させました。
段階的な実行: 不動産取引データの過去21年分の取り込みでは、データ提供元とサービスへの負荷を実測で確認しながら、処理の度合いを段階的に引き上げました。結果、6バッチすべてが0エラーで完走しました。
段階的検証の徹底: 8レイヤーいずれの投入も、「dry-run(全件ROLLBACKで書込ゼロを確認)→件数一致確認→本投入→投入前後の全県別件数diffで非対象県の完全不変を確認」という手順を踏んでいます。地味ですが、この手順を省略すると、後述するような性能バグや仕様の落とし穴に投入後まで気づけない可能性が高くなります。
環境制約への対処: 作業環境によっては、地図をブラウザで目視確認できない場面が繰り返しありました。代替として、本番の配信経路からデータを直接取得し、サーバー側の結果とバイト単位で突き合わせる方法で確認しています。ピクセルの目視確認はできなくても、実際にエンドユーザーが辿る配信経路そのものを検証できるため、確認の質としては十分に厳格です。
なぜ土地利用細分メッシュだけ19時間52分かかったのか
8レイヤーの中で、土地利用細分メッシュ(1976・1987・1991・1997・2006・2009・2014・2016・2021年度の全9年度)だけが際立って時間を要しました。パイプライン起動は2026年8月16日20時28分、全9年度の完了は翌17日16時20分、実測で約19時間52分です。
事前に小規模で実測した
全国分の処理に入る前に、九州の一部で試験的に処理して所要時間とデータ量を実測し、全国分の見積りに使いました。地図タイルの生成は、全体の処理時間の大部分を占めました。
実測した全国分のデータ量は9.28GBで、九州実績の単純な外挿より小さく収まりました。山間部・離島・海上境界を含む多数のメッシュが低密度で圧縮しやすく、単純なメッシュ数比では過大評価になるためです。
処理は、サービスへの影響が出ない範囲で進めました。処理能力の一時的な増強は行っていません。
発生した2件のインシデント
19時間52分の中で、実行時ブロッカーが2件発生しました。いずれも推測で対処せず、根本原因を実測で特定してから修正しています。
インシデント1: 1976年度のアップロード失敗
原因は、アップロード処理の認証設定が実行環境に合っていなかったことでした。タイルの生成自体はすでに成功していたため、成果物を破棄せずに済みました。正しい認証設定で復旧し、恒久対策として該当の設定そのものを処理から取り除きました。
インシデント2: 2006年度、作業領域の容量不足で失敗
作業領域の容量想定が、九州限定版の実績を前提にしていたことが原因でした。全国版の出力は1年度あたりで九州版の数倍に達し、全年度分の中間ファイルを同時に保持する設計は成立しません。すでに検証とアップロードが完了していた年度分の一時ファイルを解放して復旧し、恒久対策として「アップロード後にサイズを照合したうえで一時ファイルを削除する」設計へ変更しました(取得した原本は監査証跡として保持し続けます)。
最終的に全国合計約64.1GBを配信し、9年度全件について、配信先のデータを直接検証する独立した監査スクリプトで全件合格を確認しています。
継続的に運用するための仕組み
一度全国対応を終えても、これらのデータは完成するわけではありません。国が新しい年度のデータを公開すれば取り込みが必要になりますし、自治体ごとに整備状況も変わっていきます。今回、PLATEAUと土地利用細分メッシュの両方について、新しいデータの公開を検知する仕組みを見直しました。
PLATEAU側: 既存の月次監視(G空間情報センターの公開情報の照会)に加えて、全国投入で見つかった「構造種別コードの未知値」問題を継続的に追跡する仕組みを追加しました。国土交通省が公表する公式コード表そのものの改版を月次で監視し、改版が検知されたときにだけ、除外中の自治体をdry-run(本番書込を一切伴わない検品ゲートの再実行)で再検査するという二層構成です。無条件の高頻度自動実行はコストに見合わないため、「まず軽量な監視で変化の兆候を掴み、兆候があったときだけ重い再検査を行う」という設計にしています。
土地利用細分メッシュ側: 既存の監視は固定URLを対象にしていましたが、実際に調べたところ、国のサイトは同じデータセットに対して過去版・現行版・マスター一覧経由のリンクという3種類のURLが同時に生存しており、新しい版が既存URLの更新ではなく全く新しいURLで公開されることがあると分かりました。固定URL監視のままでは、次の版が新URLで公開されて旧URLが凍結放置された場合に検知漏れが起こり得ます。そこで、国のマスター一覧ページからその時点の代表URLを毎回動的に解決し、そのURLを監視する方式へ変更しました。
なぜ全自動化しないのか: どちらの仕組みも、検知した先の「実際にデータを取り込むかどうか」の判断は人が行う設計にしています(検知→担当者の承認→取り込みという段階的な流れ)。理由は単純で、今回の投入で実際に7自治体が想定していなかった検品ゲート失敗を起こした実績があるとおり、「新しい自治体・新しい年度のデータは必ず安全に取り込める」という前提が成り立たないためです。また、土地利用細分メッシュの1回のビルドだけで十数時間規模のCPU・ディスク負荷が発生することも、人が事前に把握すべき規模の変更だと考えています。無人化するのは「変化を検知して知らせるところまで」、実際に取り込むかどうかの最終判断は人が行う——このすみ分けを、今回あらためて明確にしました。
品質チェックと回帰チェック
全国対応にあたって、既存の九州分データを壊さないことと、投入するデータそのものの品質を保つことの両方に、それぞれ別の仕組みを設けています。
fail-closedな検品ゲート: PLATEAUの建物投入では、245自治体のうち238自治体は成功しましたが、残り7自治体は建物の構造種別コードに公式コード表に存在しない値を含んでいたため、検品ゲートが自動的に止めました。未知のコードに遭遇したときに推測で対応表を拡張するのではなく、投入自体を保留し、人が原典を確認してから判断する、という設計です。実際、この保留判断のおかげで、根拠のない対応表を本番に持ち込まずに済んでいます。
投入前後の非接触確認: 不動産取引データの投入では、6バッチそれぞれについて投入前後の全都道府県別件数を突き合わせ、変化したのは当該バッチの対象県のみであることを確認しました。地盤ボーリング柱状図の投入処理にも、九州データが1件でも混入していたら即座に処理を中断する安全ガードを組み込んでいます。
独立監査: 土地利用細分メッシュでは、生成処理自身の完了報告を鵜呑みにせず、配信先のデータを直接取得して検証する、別系統の監査スクリプトを走らせています。内水浸水想定区域では、除外対象の自治体(データが存在しないはずのエリア)に対しても実際にタイルリクエストを送り、正しく「データなし」の応答が返ることを確認する陰性対照を行いました。
これらはどれも地味な作業ですが、「投入が完了しました」という報告そのものを信用せず、実際のデータで機械的に裏取りする、という姿勢を貫くことで、公開してから気づく不具合を減らせると考えています。
おわりに
今回ご紹介した8つのレイヤーの全国対応と、その裏側で起きた19時間52分のタイル生成の記録は、派手さはありませんが、地図データという「終わりのない」情報を扱ううえで避けて通れない作業です。地図データは、位置という共通の軸を通じて、統計・地価・災害履歴・建物・地盤といった性質の異なる情報を1つの場所に積み重ねられる、ビッグデータの宝庫だと考えています。継続的に積み重ねてきた歴史を定量化し、デジタルとAIの力でさまざまな角度から分析できるようにすることで、その恩恵をより多くの人に届けられるシステムを、これからも地道につくっていきます。
ご意見・ご質問は info@maprise.jp までお気軽にお寄せください。
本記事で紹介した各データは、国土交通省・法務省・国土地理院・総務省統計局等が公開するオープンデータを情報源としています。件数・容量・所要時間は、いずれも一次資料である各タスクの完了報告書に記載の実測値に基づいており、本記事公開時点のものです。今後の運用により変動する可能性があります。
タグ: #全国展開 #データ品質 #監視 #回帰テスト
他言語のシェアテキスト (例外運用向け)
通常は上の Quick share をご利用ください (X 系は日本語、LinkedIn は英語に固定)。下の 4 ペインは「英語記事を X で日本語紹介したい」「日本語記事の LinkedIn 投稿を日本語で出したい」等の例外運用に使えます。各テキストはコピー編集してから投稿することも、そのまま投稿画面を開くこともできます。
📝 8レイヤー全国化と、土地利用メッシュが動いた19時間52分の記録 地盤ボーリング・浸水想定・自然災害伝承碑・不動産取引履歴など8つのレイヤーを全国対応させました。もっとも重かった土地利用細分メッシュ(全9年度・約64GB)がなぜ19時間52分かかったのか、途中で起きた2件のインシデントと、無人化と人の判断を切り分けた運用設計を、実録としてまとめます。 https://maprise.jp/ja/blog/nationwide-sprint-eight-layers/ #全国展開 #データ品質
🆕 新しいブログ記事を公開しました。 《8レイヤー全国化と、土地利用メッシュが動いた19時間52分の記録》 地盤ボーリング・浸水想定・自然災害伝承碑・不動産取引履歴など8つのレイヤーを全国対応させました。もっとも重かった土地利用細分メッシュ(全9年度・約64GB)がなぜ19時間52分かかったのか、途中で起きた2件のインシデントと、無人化と人の判断を切り分けた運用設計を、実録としてまとめます。 👉 詳しくはこちら: https://maprise.jp/ja/blog/nationwide-sprint-eight-layers/
📝 Eight Layers Nationwide, and the 19-Hour-52-Minute Land-Use Mesh Build We took eight layers nationwide — borehole logs, flood inundation zones, disaster monuments, real-estate transaction history, and more. The heav… https://maprise.jp/en/blog/nationwide-sprint-eight-layers/ #Nationwideexpansion #Dataquality
🆕 New on the MAPRISE blog. 《Eight Layers Nationwide, and the 19-Hour-52-Minute Land-Use Mesh Build》 We took eight layers nationwide — borehole logs, flood inundation zones, disaster monuments, real-estate transaction history, and more. The heaviest of the eight, the land-use detailed mesh (all 9 fiscal years, roughly 64GB), took 19 hours and 52 minutes. Here's why, the two incidents we hit along the way, and how we split zero-touch automation from human judgment in the operating design. 👉 Read the full post: https://maprise.jp/en/blog/nationwide-sprint-eight-layers/ #Nationwideexpansion #Dataquality #Monitoring #Regressiontesting