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
.
Системные пакеты, необходимые для работы расширений:
-
Для Альт СП 10:
- 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.
Установка
Установка системных зависимостей
Установите системные пакеты, необходимые для работы расширений:
-
Для Альт СП 10:
sudo apt-get install libtiff5 json-c libpcre16 libmpfr6
-
Для RedHat 7:
sudo yum install libtiff json-c pcre
Установка поддерживающих библиотек
Для Astra Linux, Альт СП 10:
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 |
Как меняется | ALTER system SET max_connections=\<value> Правкой файла postgresql.conf .Правкой файла config.yml в случае управления через Pangolin Manager |
Где хранится | postgresql.conf |
Диапазон значений | 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/.