PostgreSQL

Configuración de PostgreSQL con PostGIS en Debian GNU / Linux 10

Configuración de PostgreSQL con PostGIS en Debian GNU / Linux 10
Como lo simboliza el elefante azul con su distintivo símbolo de proyecto, PostgreSQL pertenece al sistema de gestión de bases de datos SQL (DBMS) de código abierto más estable de todos los tiempos: se sabe que un elefante tiene una gran memoria y nunca olvida lo que ha observado.

Disponible desde hace más de 20 años, PostgreSQL ha demostrado su notable confiabilidad en casos de uso que van desde conjuntos de datos pequeños a enormes. La lista de usuarios comerciales y no comerciales satisfechos es bastante larga y, entre otros, incluye el Fondo de las Naciones Unidas para la Infancia (UNICEF), el archivo Creative Commons, Skype y BMW Group.

Su modelo de gestión de transacciones incorporado, así como el conjunto de tipos de datos geométricos, ayudaron a destacar el software de otros desarrollos como MySQL / MariaDB, Redis o SQLite . En este artículo nos centramos en la configuración de PostgreSQL 11.5 en combinación con PostGIS 2.5 .

PostGIS es la extensión espacial de PostgreSQL que agrega funciones geométricas y características geográficas a PostgreSQL. Simplemente hablando, estos tipos de datos espaciales actúan como formas, y abstraen y encapsulan estructuras espaciales como límites y dimensiones. Entre otros, los tipos de datos recientemente disponibles son Punto, Superficie, y Curva.

Uno de los usuarios más destacados de PostGIS es el Institute Géographique National (IGN) de Francia que recopila, integra, gestiona y distribuye información geográfica de referencia para todo el país. Desde julio de 2006, PostGIS se utiliza ampliamente. Hasta ahora, la base de datos del IGN contiene más de 100 millones de objetos espaciales.

Configuraremos PostgreSQL / PostGIS en Debian GNU / Linux 10 "Buster" utilizando el entorno de escritorio XFCE .

Configuración de PostgreSQL

La configuración del DBMS PostgreSQL en Debian GNU / Linux requiere solo un nivel moderado de conocimientos de administración de sistemas. El desafío aquí es el orden correcto de los pasos que se requieren (consulte la lista completa con imágenes). Al igual que con cualquier otra distribución de Linux, existen configuraciones predeterminadas y nombres de paquetes que pueden ser un poco problemáticos. No gemimos, y simplemente comenzamos, en su lugar.

Instalación de PostgreSQL como software

El primer paso es la instalación del paquete PostgreSQL. En una terminal, puede hacerlo de la siguiente manera:

# apt-get install postgresql

Utilizando el sistema de gestión de la configuración de Chef, una receta básica que conduce al mismo resultado contiene solo las siguientes líneas:

paquete 'postgresql' hacer acción: instalar final
servicio 'postgresql' hacer acción: [: habilitar,: inicio] fin

Estas líneas conducen a la instalación del paquete postgresql (más las dependencias del paquete) y habilitan el servicio correspondiente. Para verificar si el servicio PostgreSQL se está ejecutando, este comando debería darle un resultado positivo, luego:

# service postgresql status

Completando la configuración de la cuenta del administrador

El usuario postgres administra las bases de datos PostgreSQL. El segundo paso es finalizar esta cuenta y comienza agregando una contraseña a sus credenciales de la siguiente manera:

# passwd postgres
Nueva contraseña:
Reescriba nueva contraseña:
passwd: contraseña actualizada correctamente
#

Iniciar sesión como usuario postgres le permite otorgar a otros usuarios acceso a la base de datos PostgreSQL. Posteriormente, tenemos que agregar un usuario en el paso tres. Tenga en cuenta el hecho de que tanto el sistema Linux como PostgreSQL mantienen sus bases de datos de usuario por separado. Es por eso que debe asegurarse de que exista un usuario regular de Linux con el mismo nombre en su sistema antes de permitirle el acceso a PostgreSQL.

Agregar una cuenta de usuario

El paso cuatro se realiza cuando el usuario postgres. Cambie de root a postgres y cree una nueva cuenta para el usuario linuxhint en la base de datos PostgreSQL con la ayuda de este comando:

postgres $ createuser -interactive linuxhint
¿El nuevo rol será un superusuario?? (s / n) n
¿Se le permitirá al nuevo rol crear bases de datos?? (s / n) n
¿Habrá permitido el nuevo rol crear nuevos roles?? (s / n) n
postgres $

A continuación, establezca una contraseña para el usuario recién creado linuxhint. Inicie sesión en el shell de la base de datos usando psql y establezca la nueva contraseña usando el comando \ contraseña. Después de eso, escriba \ q para salir del shell de la base de datos y volver al shell en la terminal:

postgres $ psql psql (11.5 (Debian 11.5-1 + deb10u1)) Escriba "ayuda" para obtener más ayuda.
postgres = # linuxhint Ingrese nueva contraseña: Vuelva a escribir la nueva contraseña: postgres = # postgres $

El quinto paso es la creación de una base de datos separada para el usuario linuxhint. Para hacerlo, escriba el comando createdb como usuario postgres:

postgres $ createdb linuxhint

Ahora, el usuario linuxhint tiene su propia base de datos y puede trabajar con ella según sus necesidades.

Agregar PostGIS

El paso seis consiste en la instalación del paquete PostGIS. Como se hizo antes para PostgreSQL, se puede hacer de la siguiente manera usando apt-get:

# apt-get install postgis

Alternativamente, una receta simple para Chef sería esta:

paquete 'postgis' hacer
acción: instalar
final

El paquete PostGIS tiene una dependencia para el paquete Debian postgresql-11-postgis-2.5 scripts (instalados automáticamente) que conecta PostGIS a PostgreSQL y elimina una serie de pasos manuales necesarios en otras distribuciones. No importa cuál de los dos métodos de instalación elija, apt-get o Chef, la administración de paquetes Debian se asegurará de que todos los paquetes dependientes estén instalados y configurados correctamente.

El paso siete es la habilitación de la extensión PostGIS. Como se explica en la documentación de PostGIS, no lo instale en la base de datos llamada postgres, ya que esta está en uso para las estructuras de datos internas de PostgreSQL, y solo habilítela en cada base de datos de usuario en la que realmente la necesite. Inicie sesión como usuario postgres, conéctese a la base de datos deseada y cree las dos extensiones postgis y postgis_topology como se muestra a continuación. El comando \ c lo conecta a la base de datos deseada y CREAR EXTENSIÓN hace que la extensión deseada esté disponible:

postgres = #

Ahora está conectado con la base de datos "linuxhint" como usuario "postgres".

linuxhint = # CREAR EXTENSIÓN postgis;
CREAR EXTENSIÓN
linuxhint = # CREAR EXTENSIÓN postgis_topology;
CREAR EXTENSIÓN
linuxhint = #

El paso siete es para validar que la activación de la extensión fue exitosa. El comando \ dx de PostgreSQL enumera las extensiones que están instaladas, y tanto postgis como postgis_topology deberían estar en la lista, ahora.

PostGIS también proporciona otras extensiones. Recomendamos instalar solo lo que necesita. Consulte la documentación de PostGIS para obtener más información sobre las extensiones.

Agregar datos

Después de haber configurado PostGIS con éxito, es hora de agregar tablas y llenarlas con datos. Hay una gran cantidad de datos geográficos disponibles en línea de forma gratuita, por ejemplo, de Geofabrik. Los datos se proporcionan como archivos de forma, que es un formato de datos vectoriales común para el software GIS.

Una vez descargado el archivo de forma, cargue el contenido del archivo de forma en PostGIS con la ayuda de la herramienta especial de línea de comandos shp2pgsql. El siguiente ejemplo demuestra cómo convertir el archivo de forma en una secuencia de comandos SQL, primero, y luego cargar la lista de comandos SQL en la base de datos usando psql, a continuación:

linuxhint $ shp2pgsql -cDiI ferrocarriles.ferrocarril shp> ferrocarril.sql
Tipo de archivo de forma: arco
Tipo de Postgis: MULTILINESTRING [2]
linuxhint $
linuxhint $ psql -f ferrocarril.sql

La siguiente figura muestra la salida que se imprime en la pantalla tan pronto como carga los datos.

Ahora, PostgreSQL / PostGIS está a su servicio y listo para recibir sus consultas SQL. Por ejemplo, pgadmin le permite echar un vistazo debajo del capó en cuestión de minutos. La siguiente figura muestra esto para los datos cargados. La columna de la derecha tiene un tipo geométrico MultiLineString.

Conclusión

Configurar PostgreSQL / PostGIS no es ciencia espacial. Con los pasos explicados anteriormente, puede hacer esto en menos de una hora y obtener resultados rápidamente. Et voila!

Enlaces y referencias
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...
Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...
Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...