PostGIS on PostgreSQL-i andmebaasi laiendus, mis lisab geograafiliste andmeobjektide toe. See võimaldab meil ruumiandmete salvestamiseks ja päringute tegemiseks kasutada PostgreSQL-i andmebaasi. Nagu võite arvata, pakub PostGIS-i ja Dockeri kombineerimine tõhusa ja ulatusliku meetodi ruumiandmete haldamiseks.
Selles õpetuses õpime, kuidas saame kiiresti Dockeri konteineris PostGIS-i eksemplari seadistada. Samuti käsitleme mõningaid PostGIS-i põhitõdesid ja õpime, kuidas laadida ruumiandmeid ja teha konteineri abil põhipäringuid.
Nõuded:
Selle õpetuse järgimiseks veenduge, et teil on järgmised asjad.
- Teie süsteemi installitud Docker Engine. Saate vaadata meie õpetusi Dockeri installimise kohta oma sihtsüsteemi.
- PostgreSQL-i ja ruumiandmete baasteadmised
Kui etteantud nõuded on täidetud, saame õpetusega edasi minna.
Käivitage Dockeris PostGIS
Jätkame ja seadistame PostGIS-i konteineri. Alustuseks tõmbame Docker Hubist PostGIS-i konteineri järgmise käsuga:
$ docker pull postgis/postgis
Kui pilt on alla laaditud, saame konteineri käivitada, kasutades pilti, nagu on näidatud järgmises käsus:
$ docker run --name postgis-server -e POSTGRES_PASSWORD =password -d -p 5432:5432 postgis/postgis
Antud käsus määrame järgmised parameetrid:
- –nimi – see võimaldab meil määrata konteineri nime.
- -e – See võimaldab meil määrata keskkonnamuutujaks PostgreSQL-i parooli. See on parool, mida kasutatakse postgresi kasutaja jaoks.
- -d – see käsib Dockeril käitada konteinerit taustal või eraldatud režiimis.
- -p 5432:5432 – see võimaldab meil kaardistada konteineris oleva pordi 5432 pordi 5432 hostiga.
Konteiner töötamise kontrollimiseks kasutage järgmist käsku:
$ docker psPeaksite nägema loendis PostGIS-i konteinerit.
Laadige ruumiandmed PostGIS-i
Nüüd, kui meil töötab PostGIS-i konteiner, saame laadida ruumiandmeid erinevate tööriistade ja vormingute (nt GeoJSON, CSV jne) abil.
Sel juhul kasutame Shapefile'i, nagu on näidatud järgmistes käskudes:
$ mkdir -p ~/andmed$ cd ~/andmed
wget https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ unzip ne_110m_admin_0_countries.zip
Antud käskudes loome alustuseks kataloogi, kuhu salvestada andmed, mida soovime laadida. Seejärel laadime määratud lingilt alla geoandmed ja ekstraheerime need kataloogi.
Järgmine samm on andmete laadimine andmebaasi. Alustuseks loome ühenduse PostgreSQL-i andmebaasiga, kasutades järgmist käsku:
$ docker exec -it postgis-server psql -U postgres -d postgresKui küsitakse parooli, sisestage parool, mille konfigureerisite konteineri käitamisel. See peaks teid autentima ja viima teid PostgreSQL-i kesta.
Pärast andmebaasiga ühendamist saame kasutada utiliiti 'shp2pgsql', et importida andmed eelmistes sammudes ekstraheeritud kujufailidest.
postgres=# shp2pgsql -I -s 4326 ne_110m_admin_0_countries | psql -U postgres -d postgresEelmises käsus kasutame ruumiandmete kiiremaks päringu tegemiseks ruumiindeksi loomiseks suvandit -I. Samuti määrame koordinaatide süsteemiks 4326, kasutades parameetrit -s. EPSG:4326 on WGS 84 standardne koordinaatide olekusüsteem.
PostGIS-i päringuandmed
Kui oleme andmed laadinud, saame PSQL-i utiliidist väljuda, käivitades käsu „\q” või väljudes.
Järgmiseks saame andmete laadimise kontrollimiseks andmebaasiga uuesti ühenduse luua, käivitades järgmise käsu:
$ docker exec -it postgis-container psql -U postgres -d postgresJärgmisena saate käivitada põhilised ruumipäringud, et kontrollida, kas andmed on salvestatud.
Järeldus
Selles õpetuses õppisite, kuidas käivitada PostGIS-server Dockeri konteinerina ja laadida andmed andmebaasi.