1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pbfをMSSQLにインポートする手順(Windows)

Posted at

はじめに

この記事では、Windows環境におけるpbf形式のデータをMicrosoft SQL Serverにインポートする方法を解説します。

  1. Microsoft SQL Serverのインストール
  2. SQL Server Management Studioのインストール
  3. SQL Serverに接続
  4. pbfファイルのインポート
  5. 参考

PBFについての基本情報

PBF(Protocolbuffer Binary Format)は、地図データを効率的に保存、転送するためのバイナリ形式です。主にOpenStreetMap(OSM)プロジェクトで使用されており、OSMデータを圧縮し、サイズを小さくするためにProtocol Buffers(Googleによって開発されたデータシリアライズ形式)を利用しています。PBF形式は、XML形式のOSMデータに比べて読み込みや書き込みが高速で、ストレージの効率も向上します。PBFファイルは、地図レンダリングや分析、マッピングアプリケーションで広く利用されています。

手順

1.Microsoft SQL Serverのインストール

Microsoftの公式サイトから、MSSQLのインストーラーをダウンロードします。

自分の場合はSQL Server Version 2022をインストールしました。
https://www.microsoft.com/ja-jp/evalcenter/download-sql-server-2022

インストーラーを実行します。

Basic, Custom, Download Mediaの3種類がありますが、自分の場合はBasicを選択したので下記はBasicを選択した場合の手順となります。

Terms&Conditionを確認し、Installを実行します。

2.SQL Server Management Studioのインストール

SQL Serverのインストール完了後に表示されるポップからSSMSのインストールしても同じ作業になります。
コマンドベースでSQL Serverを操作される方はこの手順は必要ありませんが、この記事ではコマンドベースでの操作に関しては説明しておりません。

  • Install先を確認し、Installを実行します。
    自分の場合は、AuthenticationはWindows Authenticationを指定し他はデフォルトのまま使用しました。

  • Trust Server Certificateにチェックを入れ、接続します。

  • 念のため、SQL Serverが起動しているか確認します。
    SQL Server Configuration Managerを起動します。
    左側のツリーの[SQL Server Configuration Manager(Local)] - [SQL Services] - [SQL Server (Server名)]がRunningになっていることを確認します。

3.SQL Serverに接続

SQL Server Management Studioを起動し、Serverに接続します。

  • Server Type: Database Engine
  • Server name: Your Server Namae
  • Authentication: Windows AUthentication
  • Encryption: Mandatory
  • Trust server certificate: ON

SQL Server Management Studioのインストール時のAuthenticationでSQL Serverを選択した場合は、作成したアカウントでServerに接続してください。

4.PBFファイルのインポート

本記事では、ODBC Driver 17 for SQL Serverを使用しております。環境に合わせて変更してください。

本記事では、以下のオプションを指定していますが、必要に応じて使い分けでください。

-a_srs
出力データの座標参照系(SRS)を指定するオプションです。 EPSG:4326は、WGS84(世界測地系)を示し、緯度・経度の座標系です。
--config
SQL Server内でジオメトリカラムを使用することを指定しています。
-nln
新しいテーブル名を指定するオプションです。ただし、対象ファイル内のすべてのレイヤーをインポートする場合は、このオプションは指定しません。
指定するレイヤー名
特定のレイヤーを指定する場合はレイヤー名を指定します。レイヤー名の検索については[5.参考]に記載します。ただし、対象ファイル内のすべてのレイヤーをインポートする場合は、このオプションを指定しません。
-oo
Open Optionの略です。
使用例:OGR_GEOMETRY_ACCEPT_UNCLOSED_RING=NO
  • AuthenticationがWindows Authenticationの場合
ogr2ogr -f "MSSQLSpatial" "MSSQL:driver={ODBC Driver 17 for SQL Server};server=localhost;database=[データベース名];Trusted_Connection=yes" [.gdbのファイルパス] -a_srs EPSG:4326 --config MSSQLSPATIAL_USE_GEOMETRY_COLUMN YES -nln [テーブル名] [指定するレイヤー名]
  • AuthenticationがSQL Serverの場合
ogr2ogr -f "MSSQLSpatial" "MSSQL:driver={ODBC Driver 17 for SQL Server};server=localhost;database=[データベース名];uid=[ユーザID];pwd=[パスワード]" [.gdbのファイルパス] -a_srs EPSG:4326 --config MSSQLSPATIAL_USE_GEOMETRY_COLUMN YES -nln [テーブル名] [指定するレイヤー名]

5.参考

SQL Server認証を追加

自分が直面したエラーについて記載します。
SQL Serverセットアップ時にWindows Authenticationを指定した場合かつ

  • SQL Server認証も追加したい

  • ogr2ogrコマンドで、UserID/Passwordでコマンド実行したい
    場合は、下記を参考にしてください。

  • Serverの認証方法を変更します。

    • サーバーを右クリック
    • Securityタブを選択
    • Server authenticationを[SQL Server and Windows Authentication mode]を選択します。

ログインユーザーを作成

サーバー直下の[Security - Logins]を右クリックし、[New Login]をクリックします。
必要な情報を記入し、[OK]をクリックします。

ODBCドライバの確認

  • 「スタート」メニューを開き、「ODBC」と入力します。
  • 「ODBCデータソース(32ビット)」または「ODBCデータソース(64ビット)」を選択します。
  • ODBCデータソースアドミニストレーターが開いたら、「ドライバ」タブをクリックします。
  • インストールされているODBCドライバの一覧が表示されます。

PBFのレイヤー一覧を取得

一部のレイヤーのみを抽出したい場合に、レイヤー名を知る必要があります。レイヤー名を調べるには、下記のコマンドを実行します。

-al
allの略です。このオプションを使用すると、指定したデータソース内のすべてのレイヤー情報を表示します。
-so
summary onlyの略です。このオプションを使用すると、レイヤーの簡潔な概要情報のみを表示します。詳細な情報を見る場合は、このオプションは指定しません。
ogrinfo -al -so [.pbfファイルパス]

インポート時の警告

  • Non closed ring detected
    ジオメトリデータにおいて「閉じていないリング」が検出されたことを示しています。リングは、ポリゴンの境界を形成する点の集まりで、最初の点と最後の点が一致しない場合、閉じていないと見なされます。このエラーを避けるためには、設定オプション OGR_GEOMETRY_ACCEPT_UNCLOSED_RING を NO に設定することが推奨されています。

まとめ

本手順で、PBFをMSSQLのデータベースにインポートすることができました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?