PostGIS হল PostgreSQL ডাটাবেসের একটি এক্সটেনশন যা ভৌগলিক ডেটা অবজেক্টের জন্য সমর্থন যোগ করে। এটি আমাদের একটি স্থানিক ডেটা সঞ্চয় এবং অনুসন্ধান করতে PostgreSQL ডাটাবেস ব্যবহার করতে দেয়। আপনি যেমন অনুমান করতে পারেন, পোস্টজিআইএস এবং ডকার একত্রিত করা একটি স্থানিক ডেটা পরিচালনার একটি দক্ষ এবং বিস্তৃত পদ্ধতি সরবরাহ করে।
এই টিউটোরিয়ালে, আমরা শিখব কিভাবে আমরা দ্রুত একটি ডকার কন্টেইনারের মধ্যে একটি পোস্টজিআইএস ইন্সট্যান্স সেটআপ করতে পারি। আমরা কিছু পোস্টজিআইএস বেসিকগুলিও কভার করব এবং কীভাবে একটি স্থানিক ডেটা লোড করতে হয় এবং ধারকটি ব্যবহার করে কিছু মৌলিক প্রশ্ন সম্পাদন করতে হয় তা শিখব।
প্রয়োজনীয়তা:
এই টিউটোরিয়ালটি অনুসরণ করতে, নিশ্চিত করুন যে আপনার নিম্নলিখিতগুলি রয়েছে:
- আপনার সিস্টেমে ডকার ইঞ্জিন ইনস্টল করা হয়েছে। আপনার টার্গেট সিস্টেমে কীভাবে ডকার ইনস্টল করবেন সে সম্পর্কে আপনি আমাদের টিউটোরিয়ালগুলি পরীক্ষা করতে পারেন।
- PostgreSQL এবং স্থানিক ডেটার প্রাথমিক জ্ঞান
প্রদত্ত প্রয়োজনীয়তা পূরণের সাথে, আমরা টিউটোরিয়ালের সাথে এগিয়ে যেতে পারি।
ডকারে পোস্টজিআইএস চালান
আসুন আমরা এগিয়ে যাই এবং পোস্টজিআইএস কন্টেইনার সেটআপ করি। আমরা নিম্নলিখিত কমান্ড দিয়ে ডকার হাব থেকে পোস্টজিআইএস কন্টেইনার টেনে শুরু করি:
$ ডকার পুল পোস্টগিস/পোস্টগিস
একবার আমাদের ছবিটি ডাউনলোড হয়ে গেলে, আমরা নিম্নলিখিত কমান্ডে দেখানো চিত্রটি ব্যবহার করে কন্টেইনার চালাতে পারি:
$ docker চালান --name postgis-server -e POSTGRES_PASSWORD =password -d -p 5432:5432 postgis/postgis
প্রদত্ত কমান্ডে, আমরা নিম্নলিখিত পরামিতিগুলি নির্দিষ্ট করি:
- -নাম - এটি আমাদের কন্টেইনারের নাম নির্দিষ্ট করতে দেয়।
- -e – এটি আমাদেরকে একটি পরিবেশ পরিবর্তনশীল হিসাবে PostgreSQL পাসওয়ার্ড সেট করতে দেয়। এটিই পাসওয়ার্ড যা পোস্টগ্রেস ব্যবহারকারীর জন্য ব্যবহৃত হয়।
- -d - এটি ডকারকে পটভূমিতে বা বিচ্ছিন্ন মোডে কন্টেইনার চালাতে বলে।
- -p 5432:5432 - এটি আমাদের পোর্ট 5432 পোর্টে হোস্টের সাথে কন্টেইনারের ভিতরে পোর্ট 5432 ম্যাপ করতে দেয়।
ধারকটি চলছে তা যাচাই করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
$ docker psআপনার তালিকাভুক্ত পোস্টজিআইএস কন্টেইনার দেখতে হবে।
পোস্টজিআইএস-এ স্থানিক ডেটা লোড করুন
এখন যেহেতু আমাদের পোস্টজিআইএস কন্টেইনার চলছে, আমরা বিভিন্ন সরঞ্জাম এবং ফর্ম্যাট যেমন জিওজেএসএন, সিএসভি ইত্যাদি ব্যবহার করে স্থানিক ডেটা লোড করতে পারি।
এই ক্ষেত্রে, আমরা নিম্নলিখিত কমান্ডগুলিতে দেখানো হিসাবে একটি শেপফাইল ব্যবহার করি:
$ mkdir -p ~/ডেটা$ cd ~/ডেটা
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' ইউটিলিটি ব্যবহার করতে পারি।
postgres=# shp2pgsql -I -s 4326 ne_110m_admin_0_countries | psql -U postgres -d postgresপূর্ববর্তী কমান্ডে, আমরা স্থানিক ডেটার দ্রুত অনুসন্ধানের জন্য একটি স্থানিক সূচক তৈরি করতে -I বিকল্পটি ব্যবহার করি। আমরা -s প্যারামিটার ব্যবহার করে 4326 হিসাবে স্থানাঙ্ক সিস্টেমকে নির্দিষ্ট করি। EPSG:4326 হল WGS 84-এর স্ট্যান্ডার্ড কোঅর্ডিনেট স্টেট সিস্টেম।
পোস্টজিআইএস কোয়েরি ডেটা
একবার আমরা ডেটা লোড করার পরে, আমরা '\q' কমান্ড চালিয়ে PSQL ইউটিলিটি থেকে প্রস্থান করতে পারি বা প্রস্থান করতে পারি।
এরপরে, আমাদের যে ডেটা লোড হয়েছে তা যাচাই করতে, আমরা নিম্নলিখিত কমান্ডটি চালিয়ে ডাটাবেসের সাথে পুনরায় সংযোগ করতে পারি:
$ docker exec -it postgis-ধারক psql -U postgres -d postgresএরপরে, আপনার কাছে ডেটা সংরক্ষিত আছে তা যাচাই করতে আপনি মৌলিক স্থানিক প্রশ্নগুলি চালাতে পারেন।
উপসংহার
এই টিউটোরিয়ালে, আপনি শিখেছেন কিভাবে পোস্টজিআইএস সার্ভারকে ডকার কন্টেইনার হিসেবে চালাতে হয় এবং ডাটাবেসে ডেটা লোড করতে হয়।