Что нового в Postgresи
что это даёт для 1С
Иван Панченко
PostgresProfessional
postgrespro.ru
2
Небольшое введение
Postgres – СУБД общего назначения
Это семейство продуктов, в которое входит
PostgreSQL – наиболее совершенная open source СУБД
Postgres Pro – российская коммерческая СУБД
Другие продукты
Поддерживается платформой 1С
3
Postgres - №4
https://db-engines.com/en/ranking
4
Что нового в Postgres ?
Версия 10 и то, что в ней появилось
Postgres Pro и 1С
Сертификация Postgres Pro
5
PostgreSQL v 10
Выход – в начале октября
Новая нумерация
Изменения для DBA
«Нативное» секционирование таблиц
Логическая репликация
Повышение производительности
Прочее
6
Изменения для DBA
Переименование каталогов
pg_xlog → pg_wal, pg_clog → pg_xact и т.п.
Поддержка библиотеки ICU
Расширение amcheck для проверки целостности B-Tree
SELECT bt_index_check(oid)
Ещё одно напоминание о важности fsync = on
7
Безопасность
SCRAM-аутентификация
Более безопасный способ аутентификации
password_encryption=scram-sha-256
Теперь невозможно хранить и передавать пароли
незашифрованными
8
Параллельная обработка запросов
9.3: Инфраструктура
background workers
9.6: Появление
Parallel sequential scans
Hash joins
Nested Loops
10.0: Улучшение
Bitmap heap scans
Index scans
Merge joins
Subqueries
>10.0: Продолжение
Create index
Parallel Append
9
Повышение производительности
Улучшенный параллелизм (см пред.слайд)
Параллельная индексная выборка, выборка по bitmap, ….
set max_parallel_workers_per_gather=4;
Многопараметрическая статистика
CREATE STATISTICS name ON col1, col2, ….
Улучшение планировщика и исполнителя запросов
(~20%)
Улучшение FDW Push-down
Задел для JIT-компиляции запросов
10
Логическая репликация
Управляется на уровне отдельных таблиц
Может быть между разными версиями СУБД и разными ОС
Бесшовный upgrade
Реплика не обязательно read-only
Шаг к мультимастеру
SQL интерфейс для управления
Пока не реплицирует:
DDL, TRUNCATE, последовательности
11
Логическая репликация
На мастере: wal_level = logical
CREATE/ALTER/DROP PUBLICATION name
[ FOR TABLE [ ONLY ] table_name [ * ] [, ...]
| FOR ALL TABLES ]
[ WITH ( publication_parameter [= value] [, ... ] ) ]
WITH (publish = ʼinsert, deleteʼ)
На реплике:
CREATE/ALTER/DROP SUBSCRIPTION subscription_name
CONNECTION 'conninfo'
PUBLICATION publication_name [, ...]
[ WITH ( subscription_parameter [= value] [, ... ] ) ]
WITH ( copy_data = false )
12
Потоковая репликация
Quorum commit для потоковой репликации
Полезно при нескольких синхронных репликах:
synchronous_standby_names = ANY 2(node1,node2,node3);
Теперь и для HASH-индексов
13
Для отказоустойчивости
Возможность выбирать один из серверов для
подключения
host=host1,host2,host3 target_session_attrs=read-write
Полезно для работы в отказоустойчивых конфигурациях.
Раньше было только в JDBC.
Traceable commit
INSERT INTO ... RETURNING txid_current();SELECT txid_status(….)
14
Секционирование таблиц (1)
Раньше:
CREATE TABLE some (
created TIMESTAMPTZ NOT NULL,
some_data TEXT
);
CREATE TABLE some_2017 (
CONSTRAINT c2017 CHECK (
created BETWEEN DATE ‘2017-01-01’ AND
DATE ‘2018-01
));
…….
Теперь:
CREATE TABLE some (
created TIMESTAMPTZ NOT NULL,
some_data TEXT
) PARTITION BY RANGE(created);
CREATE TABLE some_2017
PARTITION OF some ….
FOR VALUES FROM DATE ‘2017-01-01’ TO ‘2018-01-
01’
));
…….
15
Секционирование таблиц (2)
PARTITION BY RANGE; PARTITION BY LIST
Внутри почти то же, что и раньше
Скорость такая же
Партиции и индексы создавать (делить, сливать) вручную
Нет работы с внешними партициями
Но есть задел на будущее
Если надо быстрее – расширение pg_pathman
https://github.com/postgrespro/pg_pathman
16
Разное
XMLTABLE (better standard, infrastucture for json_table)
Больше статистики по ожиданиям и репликации
Security Technical Implementation Guide (STIG DoD),
первая из open source СУБД
RLS – запретительные политики
Полнотекстовый поиск для JSONB
И многое другое
17
Postgres Pro
Российский продукт (Реестр, ФСТЭК)
Поддерживает 1С «из коробки»
С 2017 года – официально: http://v8.1c.ru/requirements/
Варианты:
• Standard (PostgreSQL + патчи (1С, фиксы, оптимизации))
• Enterprise (Standard + существенная оптимизация)
18
Postgres Pro Enterprise
Компрессия таблиц
Мультимастер
Адаптивный оптимизатор запросов
Инкрементальный backup
Автоматическое конфигурирование
Оптимизация работы с временными таблицами
64-разрядный счетчик транзакций
Встроенный планировщик и мониторинговый агент…
19
Postgres Pro и 1С
С июля 2017 г – официальное подтверждение
совместимости Postgres Pro и 1C:Предприятия 8
На основе тестов, проводимых Postgres Professional
совместно с ALP Group
Имеется подтверждение для версии Enterprise с 9.6.3.1;
для версии Standard – ожидается (тесты прошли). Будут
тестироваться все новые версии
Самые выгодные условия для партнёров
ALP Group предоставляет комплексную поддержку:
Базальт Linux + Postgres Pro + 1C:Предприятие
20
Postgres Pro и 1С: примеры
Госкорпорация:
Платформа 1С 8.3.8
АСКУ+АСБНУ+ФСЗУП
150 пользователей
APDEX > 0.987
Партнер
На том же оборудовании Postgres
Pro Enterprise поддерживает на
20% больше пользователей
Крупная торговая сеть
Платформа 1С 8.3.8
ТОиР
1500 пользователей
21
Postgres Pro Enterprise для 1С: лицензирование
По аппаратным ядрам или виртуальным ядрам ВМ
1-й год поддержки 24х7 входит в стоимость
Поддержка = 20% от лицензий в год + НДС
Part# Описание Цена, руб
PPC-86-LIC Лицензия СУБД Postgres Pro для 1С на 1 ядро х86 78 000
22
Postgres Pro Enterprise для 1С: лицензирование по пользователям
Лицензия на сервер и на пользователей
1-й год поддержки 24х7 входит в стоимость
Наилучшие условия в 1С:Дистрибуция
Part# Описание Цена, руб
PPC-SRV-LIC Лицензия СУБД Postgres Pro Enterprise для 1C на 1 сервер 16 800 ₽
PPC-USR-1 Лицензия СУБД Postgres Pro Enterprise для 1C на 1 пользователя 8 500 ₽
PPC-USR-5 Лицензия СУБД Postgres Pro Enterprise для 1C на 5 пользователей 42 500 ₽
PPC-USR-10 Лицензия СУБД Postgres Pro Enterprise для 1C на 10 пользователей 85 000 ₽
PPC-USR-20 Лицензия СУБД Postgres Pro Enterprise для 1C на 20 пользователей 170 000 ₽
PPC-USR-50 Лицензия СУБД Postgres Pro Enterprise для 1C на 50 пользователей 425 000 ₽
PPC-USR-100 Лицензия СУБД Postgres Pro Enterprise для 1C на 100 пользователей 850 000 ₽
23
Postgres Pro для 1С: правила лицензирования
Лицензии и поддержка приобретаются на серверы в
промышленной эксплуатации
Серверы разработки и тестирования не требуют
приобретения лицензий
Для получения СУБД для тестов – обратитесь к нам
24
Postgres Pro для 1С: лицензирование по пользователям
Государственные организации
Государственные компании
Заказчики с требованиями по сертификации
Коммерческие организации, желающие сэкономить
Пользователи PostgreSQL