PostGISは、「地理情報システム」オブジェクトをPostgreSQLオブジェクトリレーショナルデータベースに追加できるオープンソースソフトウェアです。 PostGISは、サーバーが物理ディスクストレージからRAMに移行されるデータの量を増やすのに役立つ軽量ジオメトリを使用するように特別に設計されています。これは、ジオメトリおよび地理データ型を使用して空間データを格納するために使用されるPostgreSQLの拡張機能です。また、面積、距離、長さ、周囲長を決定し、データにインデックスを作成するための特別なクエリを実行するためにも使用されます。
このチュートリアルでは、Debian10にPostGISをインストールする方法を学びます。
- Debian10を実行しているサーバー。
- ルートパスワードがサーバーに設定されています。
開始する前に、システムのパッケージを最新バージョンに更新することをお勧めします。次のコマンドを使用して更新できます:
apt-get update -y
apt-get upgrade -y
すべてのパッケージが更新されたら、システムを再起動して変更を適用します。
PostgreSQLをインストール
開始する前に、PostgreSQLリポジトリをシステムに追加する必要があります。
まず、次のコマンドを使用してGPGキーをダウンロードして追加します。
apt-get install gnupg2 -y
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
次に、次のコマンドを使用してPostgreSQLリポジトリを追加します。
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
次に、リポジトリを更新し、次のコマンドを使用してPostgreSQLサーバーをインストールします。
apt-get update -y
apt-get install postgresql-11 -y
インストールが完了したら、次のコマンドを使用してPostgreSQLサーバーのステータスを確認できます。
systemctl status postgresql
次の出力が得られるはずです:
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2020-04-12 04:58:43 UTC; 15s ago Main PID: 2665 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2359) Memory: 0B CGroup: /system.slice/postgresql.service Apr 12 04:58:43 debian10 systemd[1]: Starting PostgreSQL RDBMS... Apr 12 04:58:43 debian10 systemd[1]: Started PostgreSQL RDBMS.
この時点で、PostgreSQLサーバーがインストールされて実行されています。それでは、PostGISをインストールしましょう。
次のコマンドを実行するだけでインストールできます:
apt-get install postgis postgresql-11-postgis-2.5 -y
インストールしたら、次のステップに進むことができます。
次に、空間データを保存する前に、PostgreSQLデータベースとユーザーを作成し、データベースでPostGIS機能をアクティブ化する必要があります。
まず、次のコマンドを使用してPostgreSQLにログインします。
su - postgres
次に、次のコマンドを使用してユーザーとデータベースを作成します。
[email protected]:~$ createuser postgisuser
[email protected]:~$ createdb postgis_db -O postgisuser
次に、作成したデータベースに接続します。
[email protected]:~$ psql -d postgis_db
次の出力が得られるはずです:
psql (12.2 (Debian 12.2-2.pgdg100+1), server 11.7 (Debian 11.7-0+deb10u1)) Type "help" for help.
次に、データベースでPostGIS拡張機能を有効にします:
postgis_db=# CREATE EXTENSION postgis;
次に、PostGISが機能しているかどうかを確認します:
postgis_db=# SELECT PostGIS_version();
次の出力が得られるはずです:
postgis_version --------------------------------------- 2.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1 (1 row)
最後に、次のコマンドを使用してPostgreSQLシェルを終了します。
postgis_db=# \q
[email protected]:~$ exit
PostgreSQLは、小さなデータベースから大きなデータベースまで実行できるように設計されています。 PostGISデータベースオブジェクトはテキストデータに比べて大きいです。したがって、PostGISオブジェクトでより適切に機能するようにPostgreSQLを最適化する必要があります。
ファイル/etc/postgresql/11/main/postgresql.confを編集することで、PostgreSQLサーバーを最適化できます。 :
nano /etc/postgresql/11/main/postgresql.conf
システムのRAMに応じて、次のパラメータを変更します。
#This value should be around 75% of your server’s RAM. shared_buffers = 1500M #This allows PostgreSQL to cache more data in memory while it performs its sorting work_mem = 64MB #A checkpoint is a periodic action that stores information about your system checkpoint_segments = 6 #This setting essentially is the amount of time that your optimizer should spend reading memory before reaching out to your disk. random_page_cost = 2.0
終了したら、ファイルを保存して閉じます。次に、PostgreSQLサービスを再起動して変更を実装します。
systemctl restart postgresql
おめでとう!これで、PostgreSQLサーバーにPostGISが正常にインストールされました。これで、空間クエリ用にデータベースが構成されました。詳細については、PostGISのPostGISドキュメントをご覧ください。