© OpenStreetMap contributors
QGISとCloud SQLのPostgreSQL&PostGISを利用してジオデータを表示してみました!
前提条件としてDBはGCPのサービスを利用するので、
- GCPのアカウント取得
- Cloud SDKのインストール
が必要になります。
Cloud SDKのインストールについては、下記リンクを参考にしてみてください。
GCE #003 - Cloud SDKをインストール
事前準備ができている場合は、まずローカル(Mac)からCloud SQLを利用するために、「Cloud SQL Proxy」をダウンロードします。
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
chmod +x cloud_sql_proxy
ローカル環境が整ったら、実際にGCPのコンソールでCloud SQLを構築していきます。
Cloud SQLメニュー → インスタンスを作成
今回は、PostgresSQLを利用します。
インスタンスID、パスワード、リージョン、ゾーン、DBのバージョンを設定 → 作成
今回は、PostgresSQL 11 ベータ版を利用します。
しばらく待つとインスタンスが立ち上がります。
インスタンスの詳細を確認し、あとで利用する「インスタンス接続名」をコピーしておきます。
最後に、任意のデーターベースを作成しておきます。
Cloud SQLのインスタンスが立ち上がったので、「Cloud SQL Proxy」をコマンドで実行します。
./cloud_sql_proxy -instances="インスタンス接続名"=tcp:3306
次に、DBツールを利用してCloud SQLへの接続確認をしてみます。今回は、PhpStormを利用します。
接続確認ができたら、PostGISを有効化します。
これでCloud SQLのPostgreSQL&PostGIS環境準備と、ローカルからの接続確認ができました。
CREATE EXTENSION postgis;
次にQGISでCloud SQLに接続してみます。
接続が確認できたらDBマネージャーを利用して、試しにOSMのポイントデータをとインポートしてみます。
今回は、作成するテーブル名を「sample」としてみます。インポートされるまでしばらく待ちます。
インポートが完了したら、レイヤで読み込んでみます。
QGISにCloud SQLにインポートしたデータが無事表示されました。
ローカルにDBを構築することなく、クラウドサービスのDBを構築しQGISで表示することができました!!
クラウドサービスなので、フルマネージドデータベースを実現し、GAE等との組み合わせ次第でWebサービスで利用できたり、ローカルからも接続できたりするので、色々とやれることの幅が広がる気がします。
デメリットとしては、ローカルでDBを用意するのと違って従量課金がかかってしまいます。かつ、Cloud SQLは他のサービスに比べて割高です… 利用する場合は従量課金にお気をつけください。