قم بتشغيل PostGIS Server كحاوية Docker

Qm Btshghyl Postgis Server Khawyt Docker



لا شك أن Docker أصبحت إحدى أدوات التطوير الأكثر استخدامًا في السنوات الأخيرة. يتيح لنا Docker تطوير التطبيقات وتعبئتها وشحنها وتشغيلها في بيئات معزولة تحتوي على جميع التبعيات المطلوبة لتشغيل التطبيق.

PostGIS هو امتداد لقاعدة بيانات PostgreSQL التي تضيف الدعم لكائنات البيانات الجغرافية. يتيح لنا ذلك استخدام قاعدة بيانات PostgreSQL لتخزين البيانات المكانية والاستعلام عنها. كما يمكنك أن تتخيل، فإن الجمع بين PostGIS وDocker يوفر طريقة فعالة وشاملة لإدارة البيانات المكانية.

في هذا البرنامج التعليمي، سنتعلم كيف يمكننا إعداد مثيل PostGIS بسرعة داخل حاوية Docker. سنغطي أيضًا بعض أساسيات PostGIS ونتعلم كيفية تحميل البيانات المكانية وتنفيذ بعض الاستعلامات الأساسية باستخدام الحاوية.







متطلبات:

لمتابعة هذا البرنامج التعليمي، تأكد من أن لديك ما يلي:



  1. تم تثبيت Docker Engine على نظامك. يمكنك مراجعة برامجنا التعليمية حول كيفية تثبيت Docker على نظامك المستهدف.
  2. المعرفة الأساسية بـ PostgreSQL والبيانات المكانية

بعد استيفاء المتطلبات المحددة، يمكننا المضي قدمًا في البرنامج التعليمي.



قم بتشغيل PostGIS في Docker

دعونا نتابع ونقوم بإعداد حاوية PostGIS. نبدأ بسحب حاوية PostGIS من Docker Hub باستخدام الأمر التالي:





عامل الإرساء $ يسحب postgis/postgis

بمجرد الانتهاء من تنزيل الصورة، يمكننا تشغيل الحاوية باستخدام الصورة كما هو موضح في الأمر التالي:



$ docker run --name postgis-server -e POSTGRES_PASSWORD =password -d -p 5432:5432 postgis/postgis

في الأمر المحدد، نحدد المعلمات التالية:

  1. –الاسم – يسمح لنا هذا بتحديد اسم الحاوية.
  2. -e - يتيح لنا ذلك تعيين كلمة مرور PostgreSQL كمتغير بيئة. هذه هي كلمة المرور المستخدمة لمستخدم postgres.
  3. -d - هذا يخبر Docker بتشغيل الحاوية في الخلفية أو في الوضع المنفصل.
  4. -p 5432:5432 - يتيح لنا ذلك تعيين المنفذ 5432 داخل الحاوية للمضيف على المنفذ 5432.

للتحقق من أن الحاوية قيد التشغيل، استخدم الأمر التالي:

$ عامل ميناء ملاحظة

يجب أن تشاهد حاوية 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
$ فك الضغط ne_110m_admin_0_countries.zip

في الأوامر المقدمة، نبدأ بإنشاء دليل لتخزين البيانات التي نرغب في تحميلها. نقوم بعد ذلك بتنزيل البيانات الجغرافية من الرابط المحدد واستخراجها في الدليل.

والخطوة التالية هي تحميل البيانات في قاعدة البيانات. نبدأ بالاتصال بقاعدة بيانات PostgreSQL باستخدام الأمر التالي:

$ docker exec -it postgis-server psql -U postgres -d postgres

إذا تمت مطالبتك بكلمة مرور، قم بتوفير كلمة المرور التي قمت بتكوينها عند تشغيل الحاوية. من المفترض أن يقوم هذا بمصادقتك وإسقاطك في غلاف PostgreSQL.

بمجرد الاتصال بقاعدة البيانات، يمكننا استخدام الأداة المساعدة “shp2pgsql” لاستيراد البيانات من ملفات الأشكال التي استخرجناها في الخطوات السابقة.

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 وتحميل البيانات إلى قاعدة البيانات.