Disponible depuis plus de 20 ans maintenant, PostgreSQL a prouvé sa fiabilité remarquable dans les cas d'utilisation allant des petits ensembles de données. La liste des utilisateurs commerciaux et non commerciaux satisfaits est assez long, et entre autres, il comprend le Fonds pour enfants des Nations Unies (UNICEF), The Creative Commons Archive, Skype et le groupe BMW.
Son modèle de gestion des transactions intégré ainsi que l'ensemble des types de données géométriques ont aidé à me démarquer du logiciel à partir d'autres développements tels que MySQL / MARIADB, Redis ou Sqlite . Dans cet article, nous nous concentrons sur la configuration de PostgreSQL 11.5 en combinaison avec Postgis 2.5 .
Postgis est l'extension spatiale de PostgreSQL qui ajoute à la fois des fonctions géométriques et des caractéristiques géographiques à PostgreSQL. Simplement parlant, ces données spatiales agissent comme des formes, et les structures spatiales abstraites et encapsulées telles que la limite et la dimension. Entre autres, les données nouvellement disponibles sont Indiquer, Surface, et Courbe.
L'un des utilisateurs les plus éminents de Postgis est l'Institute Géographique National (IGN) de la France qui recueille, intègre, gère et distribue des informations géographiques de référence pour l'ensemble du pays. Depuis juillet 2006, Postgis est très utile. Jusqu'à présent, la base de données de l'IGN contient plus de 100 millions d'objets spatiaux.
Nous installerons Postgresql / Postgis sur Debian GNU / Linux 10 «Buster» à l'aide de l'environnement de bureau XFCE .
La configuration des SGBD PostgreSQL sur un Debian GNU / Linux ne nécessite qu'un niveau de connaissance modéré de l'administration du système. Le défi ici est le bon ordre des étapes nécessaires (voir pour une liste complète avec des images). Comme pour toutes les autres distributions Linux, il existe des paramètres par défaut et des noms de packages qui peuvent être un peu gênants. Nous ne gémissons pas, et nous commençons, plutôt.
Installation de PostgreSQL en tant que logiciel
La première étape est l'installation du package PostgreSQL. Dans un terminal, vous pouvez le faire comme suit:
# apt-get install postgresql
En utilisant le système de gestion de la configuration du chef, une recette de base qui mène au même résultat contient uniquement les lignes suivantes:
Package 'PostgreSQL' Do Action: Installer End
Service 'PostgreSQL' Do Action: [: Activer ,: start] fin
Ces lignes conduisent à l'installation du package PostgreSQL (plus les dépendances du package) et à l'activation du service selon. Afin de vérifier le service PostgreSQL pour être en cours d'exécution, cette commande devrait vous donner une sortie positive, puis:
# Statut de service postgresql
Terminer la configuration du compte de l'administrateur
L'utilisateur Postgres administre les bases de données PostgreSQL. La deuxième étape finalise ce compte et commence par l'ajout d'un mot de passe à ses informations d'identification comme suit:
# Passwd Postgres
Nouveau mot de passe:
Re-taper le nouveau mot de passe:
passwd: mot de passe mis à jour avec succès
#
Connexion en tant qu'utilisateur Postgres vous permet d'accorder à d'autres utilisateurs l'accès à la base de données PostgreSQL. Par la suite, nous devons ajouter un utilisateur à la troisième étape. Veuillez être conscient du fait que le système Linux et PostgreSQL conservent leurs bases de données utilisateur séparément. C'est pourquoi vous devez vous assurer qu'un utilisateur de Linux régulier avec le même nom existe également sur votre système avant de permettre l'accès à PostgreSQL pour lui.
Ajout d'un compte utilisateur
La quatrième étape est effectuée en tant que Postgres utilisateur. Passez de la racine à Postgres et créez un nouveau compte pour l'utilisateur LinuxHint dans la base de données PostgreSQL à l'aide de cette commande:
Postgres $ CreateUser -Interactive Linuxhint
Le nouveau rôle sera-t-il un superutilisateur? (O / N) N
Le nouveau rôle sera autorisé à créer des bases de données? (O / N) N
Le nouveau rôle sera-t-il autorisé à créer de nouveaux rôles? (O / N) N
Postgres $
Ensuite, définissez un mot de passe pour l'utilisateur nouvellement créé LinuxHint. Connectez-vous sur le shell de base de données à l'aide de PSQL et définissez le nouveau mot de passe à l'aide de la commande \ Mot de passe. Après ce type dans \ Q afin de quitter le shell de base de données et de retourner dans le shell dans le terminal:
Postgres $ psql psql (11.5 (Debian 11.5-1 + DEB10U1)) Tapez «Aide» pour une aide supplémentaire.L'étape cinq est la création d'une base de données distincte pour l'utilisateur Linuxhint. Afin de le faire, saisissez la commande créée en tant qu'utilisateur postgres:
Postgres $ Createb Linuxhint
Maintenant, l'utilisateur Linuxhint a sa propre base de données et peut travailler avec elle en fonction de ses besoins.
Ajout de postgis
L'étape six consiste en l'installation du package Postgis. Comme le fait pour PostgreSQL auparavant, cela peut être fait comme suit en utilisant APT-GET:
# apt-get install postgis
Alternativement, une recette simple pour le chef serait celle-ci:
Package 'Postgis' faire
Action: installer
fin
Le package PostGIS a une dépendance pour le package Debian PostgreSQL-11-Postgis-2.5 scripts (installés automatiquement) qui connectent PostGIS à PostgreSQL et élimine un certain nombre d'étapes manuelles nécessaires dans d'autres distributions. Peu importe l'une des deux méthodes d'installation que vous choisissez - apt-get ou chef - la gestion de la package Debian s'assurera que tous les packages en fonction sont tous deux installés et configurés correctement.
La septième étape est l'activation de l'extension Postgis. Comme expliqué dans la documentation PostGIS, ne l'installez pas dans la base de données nommée Postgres car celle-ci est utilisée pour les données internes de PostgreSQL, et l'activer uniquement dans chaque base de données utilisateur dans laquelle vous avez réellement besoin. Connectez-vous en tant qu'utilisateur Postgres, connectez-vous à la base de données souhaitée et créez les deux extensions Postgis et Postgis_topology comme indiqué ci-dessous. La commande \ c vous connecte à la base de données souhaitée et Create Extension rend l'extension souhaitée disponible:
postgres = #
Vous êtes maintenant connecté à la base de données «Linuxhint» en tant qu'utilisateur «Postgres».
LinuxHint = # Create Extension PostGis;La septième étape est pour valider que l'activation de l'extension a réussi. La commande PostgreSQL \ DX répertorie les extensions installées, et Postgis et Postgis_topology devraient être dans la liste, maintenant.
Postgis fournit également d'autres extensions. Nous vous recommandons d'installer uniquement ce dont vous avez besoin. Voir la documentation PostGIS pour plus d'informations sur les extensions.
Ajout de données
Avoir configuré PostGIS avec succès, il est temps d'ajouter des tables et de les remplir de données. De nombreuses données géographiques sont disponibles en ligne gratuitement, par exemple de Geofabrik. Les données sont fournies sous forme de fichiers de forme qui est un format de données vectoriel commun pour le logiciel SIG.
Après avoir téléchargé le fichier de forme, chargez le contenu du fichier de forme dans Postgis à l'aide de l'outil de commande spécial SHP2PGSQL. L'exemple ci-dessous montre comment convertir le fichier de forme en une séquence de commandes SQL, d'abord, et télécharger la liste des commandes SQL en base de données à l'aide de PSQL, suivant:
Linuxhint $ shp2pgsql -cdii.SHP Railway> Railway.SQLLa figure ci-dessous montre la sortie imprimée à l'écran dès que vous téléchargez les données.
Maintenant, PostgreSQL / Postgis est à votre service et prêt à recevoir vos requêtes SQL. Par exemple, Pgadmin vous permet de regarder sous le capot en quelques minutes. La figure ci-dessous le montre pour les données téléchargées. La colonne la plus à droite a un type de type géométrique.
La configuration de PostgreSQL / Postgis n'est pas une science des fusées. Avec les étapes expliquées ci-dessus, vous pouvez le faire en moins d'une heure et avoir des résultats rapidement. Et voilà!