PostGIS అనేది PostgreSQL డేటాబేస్ యొక్క పొడిగింపు, ఇది భౌగోళిక డేటా వస్తువులకు మద్దతును జోడిస్తుంది. ఇది ప్రాదేశిక డేటాను నిల్వ చేయడానికి మరియు ప్రశ్నించడానికి PostgreSQL డేటాబేస్ను ఉపయోగించడానికి మమ్మల్ని అనుమతిస్తుంది. మీరు ఊహించినట్లుగా, పోస్ట్జిఐఎస్ మరియు డాకర్లను కలపడం అనేది ప్రాదేశిక డేటాను నిర్వహించడానికి సమర్థవంతమైన మరియు విస్తృతమైన పద్ధతిని అందిస్తుంది.
ఈ ట్యుటోరియల్లో, డాకర్ కంటైనర్లో పోస్ట్జిఐఎస్ ఉదాహరణను త్వరగా ఎలా సెటప్ చేయవచ్చో నేర్చుకుంటాము. మేము కొన్ని PostGIS బేసిక్స్ను కూడా కవర్ చేస్తాము మరియు స్పేషియల్ డేటాను ఎలా లోడ్ చేయాలో మరియు కంటైనర్ని ఉపయోగించి కొన్ని ప్రాథమిక ప్రశ్నలను ఎలా చేయాలో నేర్చుకుంటాము.
అవసరాలు:
ఈ ట్యుటోరియల్తో పాటు అనుసరించడానికి, మీరు ఈ క్రింది వాటిని కలిగి ఉన్నారని నిర్ధారించుకోండి:
- మీ సిస్టమ్లో డాకర్ ఇంజిన్ ఇన్స్టాల్ చేయబడింది. మీ టార్గెట్ సిస్టమ్లో డాకర్ను ఎలా ఇన్స్టాల్ చేయాలో మీరు మా ట్యుటోరియల్లను తనిఖీ చేయవచ్చు.
- PostgreSQL మరియు ప్రాదేశిక డేటా యొక్క ప్రాథమిక జ్ఞానం
ఇచ్చిన అవసరాలను తీర్చడంతో, మేము ట్యుటోరియల్తో కొనసాగవచ్చు.
డాకర్లో PostGISని అమలు చేయండి
మనం కొనసాగించి, PostGIS కంటైనర్ను సెటప్ చేద్దాం. కింది ఆదేశంతో డాకర్ హబ్ నుండి పోస్ట్జిఐఎస్ కంటైనర్ను లాగడం ద్వారా మేము ప్రారంభిస్తాము:
$ డాకర్ పుల్ పోస్ట్గిస్/పోస్ట్గిస్
మేము చిత్రాన్ని డౌన్లోడ్ చేసిన తర్వాత, కింది ఆదేశంలో చూపిన విధంగా చిత్రాన్ని ఉపయోగించి కంటైనర్ను అమలు చేయవచ్చు:
$ docker run --name postgis-server -e POSTGRES_PASSWORD =password -d -p 5432:5432 postgis/postgis
ఇచ్చిన ఆదేశంలో, మేము ఈ క్రింది పారామితులను పేర్కొంటాము:
- –పేరు – ఇది కంటైనర్ పేరును పేర్కొనడానికి అనుమతిస్తుంది.
- -e – ఇది PostgreSQL పాస్వర్డ్ను ఎన్విరాన్మెంట్ వేరియబుల్గా సెట్ చేయడానికి అనుమతిస్తుంది. ఇది పోస్ట్గ్రెస్ వినియోగదారు కోసం ఉపయోగించే పాస్వర్డ్.
- -d – ఇది బ్యాక్గ్రౌండ్ లేదా డిటాచ్డ్ మోడ్లో కంటైనర్ను రన్ చేయమని డాకర్కి చెబుతుంది.
- -p 5432:5432 – ఇది కంటైనర్లోని పోర్ట్ 5432ని పోర్ట్ 5432లోని హోస్ట్కు మ్యాప్ చేయడానికి అనుమతిస్తుంది.
కంటైనర్ రన్ అవుతుందని ధృవీకరించడానికి, కింది ఆదేశాన్ని ఉపయోగించండి:
$ డాకర్ psమీరు జాబితా చేయబడిన PostGIS కంటైనర్ను చూడాలి.
పోస్ట్జిఐఎస్లో ప్రాదేశిక డేటాను లోడ్ చేయండి
ఇప్పుడు మనము PostGIS కంటైనర్ రన్ అవుతున్నందున, మేము వివిధ సాధనాలు మరియు GeoJSON, CSV మొదలైన ఆకృతిని ఉపయోగించి ప్రాదేశిక డేటాను లోడ్ చేయవచ్చు.
ఈ సందర్భంలో, కింది ఆదేశాలలో చూపిన విధంగా మేము Shapefileని ఉపయోగిస్తాము:
$ mkdir -p ~/డేటా$ cd ~/డేటా
wget https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ అన్జిప్ ne_110m_admin_0_countries.zip
ఇచ్చిన ఆదేశాలలో, మేము లోడ్ చేయాలనుకుంటున్న డేటాను నిల్వ చేయడానికి డైరెక్టరీని సృష్టించడం ద్వారా ప్రారంభిస్తాము. మేము పేర్కొన్న లింక్ నుండి జియో డేటాను డౌన్లోడ్ చేసి, దానిని డైరెక్టరీలోకి సంగ్రహిస్తాము.
డేటాబేస్లోకి డేటాను లోడ్ చేయడం తదుపరి దశ. మేము కింది ఆదేశాన్ని ఉపయోగించి PostgreSQL డేటాబేస్కు కనెక్ట్ చేయడం ద్వారా ప్రారంభిస్తాము:
$ docker exec -it postgis-server psql -U postgres -d postgresపాస్వర్డ్ కోసం ప్రాంప్ట్ చేయబడితే, కంటైనర్ను రన్ చేస్తున్నప్పుడు మీరు కాన్ఫిగర్ చేసిన పాస్వర్డ్ను అందించండి. ఇది మిమ్మల్ని ప్రామాణీకరించాలి మరియు మిమ్మల్ని PostgreSQL షెల్లోకి వదలాలి.
డేటాబేస్కు కనెక్ట్ అయిన తర్వాత, మేము మునుపటి దశల్లో సంగ్రహించిన Shapefiles నుండి డేటాను దిగుమతి చేయడానికి “shp2pgsql” యుటిలిటీని ఉపయోగించవచ్చు.
postgres=# shp2pgsql -I -s 4326 ne_110m_admin_0_countries | psql -U postgres -d postgresమునుపటి కమాండ్లో, ప్రాదేశిక డేటాను వేగంగా ప్రశ్నించడం కోసం ప్రాదేశిక సూచికను సృష్టించడానికి మేము -I ఎంపికను ఉపయోగిస్తాము. మేము -s పరామితిని ఉపయోగించి కోఆర్డినేట్ సిస్టమ్ను 4326గా కూడా పేర్కొంటాము. EPSG:4326 అనేది WGS 84 కోసం ప్రామాణిక కోఆర్డినేట్ స్టేట్ సిస్టమ్.
PostGIS ప్రశ్న డేటా
మేము డేటాను లోడ్ చేసిన తర్వాత, “\q” కమాండ్ లేదా నిష్క్రమణను అమలు చేయడం ద్వారా మనం PSQL యుటిలిటీ నుండి నిష్క్రమించవచ్చు.
తరువాత, మనకు డేటా లోడ్ చేయబడిందని ధృవీకరించడానికి, కింది ఆదేశాన్ని అమలు చేయడం ద్వారా మేము డేటాబేస్కు మళ్లీ కనెక్ట్ చేయవచ్చు:
$ docker exec -it postgis-container psql -U postgres -d postgresతర్వాత, మీరు డేటా నిల్వ చేయబడిందని ధృవీకరించడానికి ప్రాథమిక ప్రాదేశిక ప్రశ్నలను అమలు చేయవచ్చు.
ముగింపు
ఈ ట్యుటోరియల్లో, మీరు PostGIS సర్వర్ని డాకర్ కంటైనర్గా ఎలా రన్ చేయాలో మరియు డేటాబేస్లోకి డేటాను ఎలా లోడ్ చేయాలో నేర్చుకున్నారు.