postgis. Поддержка геоданных#
Версия: 3.4.4.
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: См. раздел «Системные требования» этой статьи.
Схема размещения:
ext;
topology;
tiger;
tiger_data.
Примечание:
Расширение
PostGISраспространяется по лицензии GNU GPL и не является составной частью продукта Pangolin.Для версий 4.6.1, 5.2.1 (и более новых) были собраны и включены в дистрибутив расширения и поддерживающие библиотеки.
Расширение PostGIS представляет собой реализацию стандарта OpenGIS на основе стандарта SQL/MM.
Для реализации требований вводятся новые типы данных:
geometry;geography;bod2d;box2df;box3d;raster;spheroid.
Добавляются также функции для работы с этими типами.
Функциональное обеспечение позволяет работать с геометрическими, географическими и растерными объектами.
Данные могут быть представлены в двумерной, трехмерной или четырехмерной системе координат.
Расширение PgRouting предоставляет дополнительную функциональность к PostGIS, позволяющую определять расстояние между географическими объектами.
Тип данных geography предусматривает указание SRID (Spatial Reference Identifier) системы SRS (Spatial Reference System).
Системные требования#
В поставку продукта как библиотеки третьей стороны (3rd Party) добавляются расширения:
postgis;postgis_topology;postgis_sfcgal;postgis_raster;postgis_tiger_geocoder;address_standardizer;address_standardizer_data_us;pgrouting.
Системные пакеты, необходимые для работы расширений:
Для ALT 8 SP:
libtiff5;
json-c;
libpcre16;
libmpfr6.
Команда установки:
sudo apt-get install libtiff5 json-c libpcre16 libmpfr6Для RedHat 7:
libtiff;
json-c;
pcre.
Команда установки:
sudo yum install libtiff json-c pcre
Для работы расширений требуются библиотеки:
GDAL;
PROJ;
SFCGAL;
cgal;
geos.
Доработка#
Доработка: Убраны инструменты Imp/Exp данных.
Версия: 4.4.0.
В СУБД Pangolin включены инструменты для работы с геоданными (Spatial).
Вводимая функциональность исключает инструменты командной строки и GUI для загрузки и выгрузки данных, в отличие от свободно распространяемой версии. Исключение связано с фактом необходимости указывать пароль пользователя в открытом виде. Загрузка и выгрузка данных в систему производится стандартным образом при работе с доверенным ресурсом.
Ограничения#
Текущие ограничения расширения:
в поставку не добавляются инструменты для загрузки или конвертации данных, а также пользовательские GIS-системы. Это связано с тем, что они используют пароли БД в открытом виде;
в поставку не добавляется jdbc драйвер PostGIS по причине наличия у драйвера лицензии GPL;
расширения входят в состав дополнительной части продукта (3rd Party) и могут быть лицензированы «вирусными» лицензиями GPL, AGPL;
из поставки исключены функции ST_AsMVTGeom, ST_AsMVT, ST_AsGeobuf, поскольку они используют protobuf, отсутствующий в RHEL7. Аналогичное исключение применяется в свободно распространяемом Postgresql для RHEL7.
Установка#
Установка системных зависимостей#
Установите системные пакеты, необходимые для работы расширений:
Для ALT 8 SP:
sudo apt-get install libtiff5 json-c libpcre16 libmpfr6Для RedHat 7:
sudo yum install libtiff json-c pcre
Установка поддерживающих библиотек#
Для AstraLinux, ALT 8 SP:
sudo apt-get install /usr/pangolin-6.3/3rdparty/postgis/pangolin-postgis-3.4.2_{OS}.x86_64.rpm -y
sudo apt-get install /usr/pangolin-6.3/3rdparty/pgrouting/pangolin-pgrouting-3.6.1_{OS}.x86_64.rpm -y
Для SberLinux 8:
sudo dnf install /usr/pangolin-6.3/3rdparty/postgis/pangolin-postgis-3.4.2-sberlinux8.x86_64.rpm -y
sudo dnf install /usr/pangolin-6.3/3rdparty/pgrouting/pangolin-pgrouting-3.6.1-sberlinux8.x86_64.rpm -y
Перезагрузка сервера#
Перед использованием расширений необходимо выполнить перезагрузку сервера СУБД Pangolin (restart --force).
Настройка#
Настройка max_connections#
В max_connections хранится максимальное число конкурентных подключений к серверу PostgreSQL. Под каждое фактическое подключение создается отдельный процесс в операционной системе. По умолчанию обычно это 100 подключений, но это число может быть меньше, если ядро накладывает свои ограничения (это определяется в процессе initdb). Этот параметр можно задать только при запуске сервера.
Для standby сервера значение этого параметра должно быть больше или равно значению на primary. В противном случае на standby сервере не будут разрешены запросы.
Свойство |
Описание |
|---|---|
Тип значения |
Числовой |
Значение по умолчанию |
100 |
Как меняется |
|
Где хранится |
|
Диапазон значений |
1-262143 |
Рекомендуемое значение |
GREATEST (5 x CPU cores, 100) |
Рекомендации#
max_connections устанавливается как максимальное количество соединений, которое, будет израсходовано при пиковой нагрузке. Обратите внимание, что каждое соединение использует shared_buffer память, а также дополнительную неразделяемую память. Поэтому будьте осторожны, чтобы полностью не исчерпать память системы, исходя из доступных ресурсов на хосте.
Оптимальное максимальное количество max_connections примерно в 5 раз превышает количество процессоров ядра. Эта формула часто дает очень небольшое число, что непрактично в большинстве реальных случаев.
Помимо этого, следует использовать пул соединений, например через Pangolin Manager.
Использование расширения#
Отключение аудита#
На момент создания расширения рекомендуется отключить аудит, если он был включен. Если этого не сделать, процесс включения расширения займет значительное время и потребует большого количества оперативной памяти (не менее 24 ГБ).
Отключить аудит можно выполнив SQL запрос:
ALTER ROLE current_user SET pgaudit.log='none';
После этого необходимо переподключиться к сервису.
Включение расширения#
Подключитесь к базе данных и выполните команды по загрузке всех или только необходимых расширений:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_raster;
CREATE EXTENSION postgis_sfcgal;
CREATE EXTENSION postgis_tiger_geocoder CASCADE; -- needed extension fuzzystrmatch
CREATE EXTENSION postgis_topology;
CREATE EXTENSION address_standardizer;
CREATE EXTENSION address_standardizer_data_us;
CREATE EXTENSION pgrouting;
Включение аудита#
После создания расширения необходимо включить аудит, если он был включен до установки:
ALTER ROLE current_user RESET pgaudit.log;
После этого необходимо переподключиться к сервису.
Ссылки на документацию разработчика#
Дополнительно поставляемый модуль postgis: https://postgis.net/docs/manual-3.1/.