PostGIS היא הרחבה של מסד הנתונים PostgreSQL שמוסיפה תמיכה באובייקטי נתונים גיאוגרפיים. זה מאפשר לנו להשתמש במסד הנתונים PostgreSQL כדי לאחסן ולשאול נתונים מרחביים. כפי שאתה יכול לנחש, שילוב של PostGIS ו-Docker מספק שיטה יעילה ונרחבת לניהול נתונים מרחביים.
במדריך זה, נלמד כיצד אנו יכולים להגדיר במהירות מופע PostGIS בתוך קונטיינר Docker. אנו גם נסקור כמה יסודות PostGIS ונלמד כיצד לטעון נתונים מרחביים ולבצע כמה שאילתות בסיסיות באמצעות הקונטיינר.
דרישות:
כדי לעקוב אחר הדרכה זו, ודא שיש לך את הדברים הבאים:
- התקנת את Docker Engine במערכת שלך. אתה יכול לבדוק את ההדרכות שלנו כיצד להתקין את Docker על מערכת היעד שלך.
- ידע בסיסי ב-PostgreSQL ובנתונים מרחביים
עם עמידה בדרישות הנתונות, נוכל להמשיך עם ההדרכה.
הפעל את PostGIS ב-Docker
תן לנו להמשיך ולהגדיר את מיכל PostGIS. אנו מתחילים במשיכת מיכל PostGIS מ- Docker Hub עם הפקודה הבאה:
$ docker pull postgis/postgis
לאחר שהורדנו את התמונה, נוכל להפעיל את הקונטיינר באמצעות התמונה כפי שמוצג בפקודה הבאה:
$ docker run --name postgis-server -e POSTGRES_PASSWORD =סיסמה -d -p 5432:5432 postgis/postgis
בפקודה הנתונה, אנו מציינים את הפרמטרים הבאים:
- –name – זה מאפשר לנו לציין את שם המיכל.
- -e - זה מאפשר לנו להגדיר את סיסמת PostgreSQL כמשתנה סביבה. זוהי הסיסמה המשמשת למשתמש postgres.
- -d - זה אומר ל-Docker להפעיל את המיכל ברקע או במצב מנותק.
- -p 5432:5432 - זה מאפשר לנו למפות את היציאה 5432 בתוך המכולה למארח ביציאה 5432.
כדי לוודא שהמכל פועל, השתמש בפקודה הבאה:
$ docker נ.באתה אמור לראות את מיכל PostGIS ברשימה.
טען את הנתונים המרחביים ב-PostGIS
עכשיו כשיש לנו את הקונטיינר PostGIS פועל, אנחנו יכולים לטעון את הנתונים המרחביים באמצעות כלים ופורמטים שונים כמו GeoJSON, CSV וכו'.
במקרה זה, אנו משתמשים ב- Shapefile כפי שמוצג בפקודות הבאות:
$ mkdir -p ~/data$ cd ~/data
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
בפקודות הנתונות, אנו מתחילים ביצירת ספרייה לאחסון הנתונים שברצוננו לטעון. לאחר מכן אנו מורידים נתונים גיאוגרפיים מהקישור שצוין ומחלצים אותו לספרייה.
השלב הבא הוא טעינת הנתונים למסד הנתונים. אנו מתחילים בחיבור למסד הנתונים PostgreSQL באמצעות הפקודה הבאה:
$ docker exec -it postgis-server psql -U postgres -d postgresאם תתבקש להזין סיסמה, ספק את הסיסמה שהגדרת בעת הפעלת הכלי. זה אמור לאמת אותך ולהכניס אותך למעטפת PostgreSQL.
לאחר חיבור למסד הנתונים, נוכל להשתמש בכלי השירות 'shp2pgsql' כדי לייבא את הנתונים מ- Shapefiles שחילצנו בשלבים הקודמים.
postgres=# shp2pgsql -I -s 4326 ne_110m_admin_0_countries | psql -U postgres -d postgresבפקודה הקודמת, אנו משתמשים באפשרות -I כדי ליצור אינדקס מרחבי לשאילתה מהירה יותר של הנתונים המרחביים. אנו גם מציינים את מערכת הקואורדינטות כ-4326 באמצעות הפרמטר -s. ה-EPSG:4326 היא מערכת מצבי הקואורדינטות הסטנדרטית עבור WGS 84.
נתוני שאילתות PostGIS
לאחר שטענו את הנתונים, נוכל לצאת מתוכנית השירות PSQL על ידי הפעלת הפקודה '\q' או יציאה.
לאחר מכן, כדי לוודא שיש לנו את הנתונים נטענים, נוכל להתחבר מחדש למסד הנתונים על ידי הפעלת הפקודה הבאה:
$ docker exec -it postgis-container psql -U postgres -d postgresלאחר מכן, תוכל להפעיל את השאילתות המרחביות הבסיסיות כדי לוודא שהנתונים מאוחסנים ברשותך.
סיכום
במדריך זה, למדת כיצד להפעיל את שרת PostGIS כמיכל Docker ולטעון את הנתונים למסד הנתונים.