Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL.
Главные новости
Релиз-кандидат PostgreSQL 12
В релизе-кандидате вся функциональность идентична грядущему официальному релизу. Если вновь выявленные и недоисправленные баги будут закрыты в срок, то официальный релиз выйдет 3 октября. По сравнению с PG 12 beta 4 исправлено несколько багов, в основном связанных с ECPG — SQL, встраиваемом в C. Релиз-кандидат доступен.
- Подробно о релизе здесь;
- а здесь изменения в PG относительно PG 11;
- нерешенные проблемы (Open Issues) PG 12;
- сообщить о найденном баге.
Очередной коммитфест завершился
Напомним, что сентябрьский коммитфест перешел в фазу Closed. Это значит, что новые патчи в него не могут быть добавлены. Следующий, ноябрьский коммитфест в фазе Open. Он активно заполняется.
Релизы
Pgpool-II 4.0.6
Вышли также версии 3.7.11, 3.6.18, 3.5.22 и 3.4.25. Среди новшеств есть изменение поведения
shutdownall
: теперь он ждет завершения работы Pgpool-II. Исправлено много багов. Об изменениях можно прочитать здесь.dbForge Studio for PostgreSQL 2.2
Не далее как вчера вышел этот релиз со встроенным SQL форматтером, Generate Script AS CREATE for Source objects, поддержкой PostgreSQL 12 и другими изменениями (см. по ссылке).
Ajqvue 3.0
В новой версии этой графической среды для работы с различными СУБД переделаны библиотеки JRE в соответствии с новыми версиями Java. Теперь можно выбирать директорию для JDBC-драйверов для JAR-файлов. Все библиотеки, имеющие отношение к работе с базой, обновлены и протестированы с PostgreSQL 11. Про Ajqvue можно прочитать здесь.
PGXN Client 1.3
Это написанный на Python клиент к PostgreSQL Extension Network, то есть к он-лайновой библиотеке опен-сорсных расширений, где можно найти, например, citus 8.3.0 или PostgreSQL_Anonymizer 0.3.0.
pgAdmin 4 v 4.13
В последней версии 46 исправленных багов и добавленных пунктов. Среди изменений:
- добавлены иконки в модуле EXPLAIN для
Gather Merge, Named Tuple Store Scan
иTable Function Scan
; - теперь рендеринг Query Tool не ждет, когда установится соединение;
- в контейнерных дистрибутивах теперь можно установить опции конфигурации через переменные окружения.
В предыдущей версии были добавлены:
- поддержка Compound Triggers в EPAS 12+ (EDB Postgres Advanced Server версии 12 и выше);
- поддержка функций, обеспечивающих работу планировщика в PostgreSQL 12+;
- поддержка генерируемых столбцов (generated columns) в PostgreSQL 12+;
- добавлено много тестов по новой функциональности: Reverse Engineered SQL. Проверяются столбцы, триггеры, констреинты и прочее.
Подробности последней версии здесь. Пакеты для Windows, macOS, Python Wheel, Docker Container, а также исходные коды в тарболах уже доступны.
PostGIS 3.0.0beta1
Этот релиз уже рассчитан на работу с (или, в кулинарной лексике авторов: «лучше всего подавать с») PostgreSQL 12RC1 и GEOS 3.8.0beta1, но работает с PostgreSQL не древнее 9.5 и GEOS начиная с версии 3.6.
Отличия от вышедшей чуть больше месяца назад beta4: ускорена, например, конверсия геометрических типов в/из GEOS. Напомним, что по сравнению с 2.x изменения серьёзные: вся растровая функциональность вынесена в отдельное расширение.
temboard 4.0
Вышла новая версия temboard, утилиты управления и мониторинга PostgreSQL, которую поддерживает Dalibo. Инструкции по установке здесь, а почитать можно на этой странице.
pg_probackup 2.1.5
В версии pg_probackup 2.1.5 (разработчик — Postgres Professional) появились новые возможности: теперь метаданные обновляются каждые 10 секунд в процессе бэкапа, поэтому можно следить за его выполнением. Раньше метаданные обновлялись только при старте и окончании бэкапа; SSH-соединение закрывается после передачи всех файлов данных. Документацию к последней версии можно найти на GitHub.
barman 2.9
Менеджер бэкапа и восстановления barman (2ndQuadrant), обзавёлся нативной поддержкой PostgreSQL 12 и теперь конфигурировать PITR надо по-другому (некоторые подробности здесь). А вывод можно теперь получить в форме JSON для удобной интеграции со специализированными средствами мониторинга.
pg_dumpbinary 1.0
Вышел первый официальный релиз этой программы Жиля Дароля (Gilles Darold). Она использует команду SQL COPY для дампа в двоичном формате. Восстановление происходит с прилагающейся утилитой
pg_restorebinary
. pg_dumpbinary
полезна, когда:- есть bytea, которого не сможет экспортировать
pg_dump
, так как общий объем в представлении escape/hex превысит 1ГБ; - у вас есть пользовательский тип, который содержит `\0` внутри bytea, но данные возвращаются как char/varchar/text, а это значит, что данные обрежут после '\0'.
pg_dump
не справится с этой ситуацией.
Slony 2.2.8
Старейший инструмент репликации (работает на триггерах) теперь поддерживает PostgreSQL 12.
slonik
конфигурируется не совсем как раньше, о чем можно прочитать в файле документации. Исправлены ошибки. Скачивать слонов можно отсюда.PgBouncer 1.11.0
Главная новость — поддержка SCRAM-аутентификации. Также этот пулер соединений научился работать с GSSENCRequest, появившимся в PostgreSQL 12. Подробнее в чейнджлоге. Ссылка для скачивания здесь.
pg_partman 4.2.0
В этой версии появилась (предварительная) поддержка PostgreSQL 12. Теперь pg_partman по-другому работает с нелоггируемыми секциями (партициями). Если секция создана как нативная и у нее статус UNLOGGED, то этот статус не меняется в соответствии с изменением статуса родительской таблицы, как было раньше. Еще разработчиком (то есть Crunchy Data) объявлено, что, как только выйдет официальная версия PG12, поддержка PostgreSQL 9.4 будет прекращена. Чейнджлог здесь, скачать можно отсюда.
pgBadger 11.1
Эта версия популярного анализатора логов Жиля Дароля считается минорной, но кроме исправлений багов, накопившихся за 3 месяца, в ней есть и новое:
- можно получить отчет о том, сколько запросы проводят времени в фазах prepare/bind/execute. Можно попросить назвать N запросов, которые больше всех тратят время в одной из этих фаз;
- добавлена поддержка форматов логов у RDS и CloudWatch (их формат определяется автоматически);
- опция
--month-report
включает режим ежемесячных инкрементальных отчетов.
pgCluu 3.0
На острове Бали, где проходила конференция PGConf.Asia (о чем ниже), была представлена 3-я версия pgCluu — утилиты, написанной на Perl, расшифровывающейся как PostgreSQL Cluster Utilization и претендующей на полный аудит PG-кластера. В этой версии отчеты по заданным промежуткам времени теперь можно получать в режиме CGI (фича проходит бета-тестирование), а в пакетах Debian этот режим установлен уже по умолчанию. Другая новость — инкрементальный режим отчетов. Есть новое в конфигурировании и в опциях. Автор всё тот же — опять Жиль Дароль.
cryptokey
Брюс Момжан (Bruce Momjian) пишет в своем блоге о том, что 9 месяцев назад начал разрабатывать расширение, которое будет контролировать работу криптографического расширения pgcrypto в Postgres. И вот инструмент, который он назвал pgcryptokey, готов к бета-тестированию. В нем двухуровневое шифрование: для использования криптоключей нужен пароль. Ключей может быть несколько, их можно ротировать и уничтожать. Пароль передается от клиента на сервер без появления в текстовом виде внутри SQL-запросов.
ldap2pg 5.0
Новая версия утилиты, для синхронизации ролей и привилегий PG и LDAP-совместимых каталогов. Для конфигурирования используется файл в формате YAML. Относительно версии 4.0: появилась поддержка PG 9.3, 9.4, улучшилась совместимость с Active Directory и RDS, появился официальный имидж-файл для Docker. Об изменениях есть в чейнджлоге.
Облака
Postgre Pro Enterprise появилась в облаках Яндекс и Azure. В обоих случаях предлагаются версии 11.x.x. В каталоге Яндекс-облака всего две СУБД. В Ажуре Postgres Pro Enterprise 11 среди многих и многих.
Статьи
PostgreSQL 12: A Few Special-Case Performance Enhancements
Статья в блоге 2ndQuadrant. Речь идет о TOAST, конвертации
float
в text
, распараллеливании запросов на уровне изоляции SERIALIZABLE.Why you need plpgsql_check
В своем блоге Павел Штехуле (Pavel Stehule) рассказывает о своем расширении plpgsql_check, которое умеет анализировать исходный код PL/pgSQL. Павел показывает, как, используя
plpgsql_check_function()
, валидировать SQL-идентификаторы; как его расширение работает профайлером; как оно сообщает о причинах плохой производительности, в том числе советует поменять VOLATILE на IMMUTABLE, когда это возможно. plpgsql_check
еще и помогает с защитой от SQL-инъекций. А plpgsql_show_dependency_tb()
разбирается в зависимостях.Блокировки в PostgreSQL: 4. Блокировки в памяти
Егор Рогов (Postgres Professional) завершил серию статей про блокировки. В этой статье есть ссылки на предыдущие статьи этой серии. Другие его серии на Хабре ищите здесь.
pgBackRest to Backup PostgreSQL
В блоге Cybertec по шагам расписано, как установить, сконфигурировать, настроить серверы PostgreSQL, чтобы запустить бэкап под управлением pgBackRest. В том числе дифференциальный бэкап.
OLTP workload performance improvement in Greenplum 6
На сайте Greenplum выложили графики производительности на OLTP версии 6 на фоне версии 5. Разница впечатляет. Революционные изменения связывают с переходом на ядро 9.4(!), что помогло оптимизировать блокировки;
- появилось глобальное обнаружение дедлоков для поддержки параллельных UPDATE/DELETE;
- оптимизированы глобальные транзакции, удалось избежать блокировок в read-only-сценариях, благодаря чему сократилось время начала и окончания транзакции.
Есть и абзац о будущих планах.
Compute day working hours in PL/pgsql
Заметка Луки Феррари (Luca Ferrari), пропагандиста open source и человеческого существа (так он представляет сам себя в блоге), предлагает его вариант задачки, ставшей своеобразным конкурсом в рассылке
pgresql-general
. Там предлагалось посчитать рабочие часы, используя PL/pgsql. Решение Луки не самое короткое, но настраиваемое.Managing High Availability in PostgreSQL – Part III: Patroni
Мадан Кумар (Madan Kumar) из ScaleGrid разбирает плюсы/минусы и тестирует Patroni, делает выводы по HA. А до этого, в ч.I и ч.II разбирал Corosync/Pacemaker и repmgr. Он в том числе ухитряется загнать Patroni в состояние
split brain
(оставаясь в целом сторонником этих кластеров).Time series данные в реляционной СУБД.
Расширения TimescaleDB и PipelineDB для PostgreSQL
Олег Бунин предлагает послушать доклад руководителя отдела разработки в «Первой Мониторинговой Компании» Ивана Муратова о том, как получить полноценную темпоральную БД, установив в Postgres два этих расширения. Доклад с уклоном в обработку данных и аналитику
time series
в экосистеме PG, без сторонних решений.Cloud Vendor Deep-Dive: PostgreSQL on Google Cloud Platform (GCP)
В блоге Severalnines Вьёрель Табара (Viorel Tabara) рассказывает об этом облачном Postgres, довольно своеобразном. Из серверных языков есть PL/pgSQL, но есть и гугловский интерфейс — Cloud SQL, который рекомендуется использовать при написании приложений. Некоторые возможности отключены из-за соображений безопасности: superuser недоступен, некоторые параметры нельзя менять. Некоторые расширения Postgres поддерживаются, некоторые — нет. О совместимости с классическим Postgres есть отдельная главка. Также рассказывается о построении HA-кластеров, о репликации и бэкапе, о многом другом.
Setting up PostgreSQL 12 Beta 3 for Testing in Amazon RDS
Джигнеш Шах (Jignesh Shah), которого многие запомнили по конференции PGConf.Russia 2019, рассказывает, как подготовить PostgreSQL 12 к работе в облаках RDS.
Advanced SQL — window frames
Большая статья Михаля Конарски (Michał Konarski) из Стокгольма. Он пишет про оконные функции, останавливаясь на особенностях режимов ROWS, GROUPS и RANGE.
Using “Row Level Security” to make large companies more secure
Ханс-Юрген Шёниг (Hans-Jürgen Schönig) в блоге Cybertec разбирает RLS на примерах из жизни.
Comparing Distributed SQL Performance – Yugabyte DB vs. Amazon Aurora PostgreSQL vs. CockroachDB
Производительность этих трех баз сравнивают люди заинтересованные: представители проекта Yougabyte – базы, «построенной под впечатлением Google Spanner» и совместимой (с исключениями) с Postgres. Но данные интересные.
Time series данные в реляционной СУБД. Расширения TimescaleDB и PipelineDB для PostgreSQL
Иван Маратов в колонке Олега Бунина на хабре советует забыть об InfluxDB и обо всех темпоральных БД, если есть PostgreSQL с расширениями TimescaleDB и PipelineDB. Речь в основном об аналитике прямо в экосистеме PostgreSQL.
New version of PostgreSQL Anonymizer and more...
Это не формальная сводка багов и фич, а развернутая статья о том, зачем нужен анонимайзер Postgres и на что он способен. Проект, затеянный год назад Дамьеном Клошаром (Damien Clochard), взяла под крыло Dalibo. Дамьен рассказывает, например, как и при помощи чего в новой версии делать анонимный дамп; как надевать на данные маску, на которую разные роли реагируют по-разному, и еще много интересных вещей.
Конференции
PGConf.Asia на Бали
Эта уже вторая «пляжная» конференциия в этом сезоне (первая — на Ибице), прошла 8-9 сентября. Предыдущие PGConf.Asia проходили в Токио. Нынешнюю открывал заместитель губернатора Бали, его сменил министр связи и информации Индонезии.
Из России прилетел зам. ген. дира Postgres Professional Иван Панченко и рассказал о том, какие проблемы решают разработчики Postgres в наши дни, когда конкурировать приходится уже на рынке индустриальных СУБД. Программу можно изучить на этой странице. Деловая часть пляжной конференции была вполне насыщенной: многие из релизов, представленных выше, были обнародованы именно на этой конференции.
PostgresConf South Africa 2019
8-9-го октября эта конференция пройдет в Йоханнесбурге. В программе есть хорошо нам знакомые докладчики (Ханс-Юрген Шёниг, например), но много и новых имен.
PostgreSQL Conference Europe 2019
Конференция, на которой выступит немало докладчиков живущих в России, или родом из России, пройдет 15-18 октября в Милане. В программе двое из Data Egret, двое из Zalando, по одному из credativ и JetBrains и аж четверо из Postgres Professional.
pgDay Santiago 2019
Эта конференция, организована чилийской юзергруппой PostgreSQL. Она пройдет 29 октября. Спонсоры 2ndQuadrant и Vigigo.
PGConf.Сибирь 2019
11-12 ноября в Красноярске состоится третья региональная конференция PGConf.Сибирь 2019. Участие бесплатное, но нужна регистрация на сайте. Заявки на доклады принимаются до 10 октября.
2Q PGConf 2019
Эта конференция пройдет 4-5-го декабря в Чикаго.
PgConf.Russia 2020
Как и в прошлом году, на Экономфаке МГУ в Москве состоится PgConf.Russia 2020 (3-5 февраля). Регистрация открыта. Сейчас программа еще формируется, а заявки на доклады принимаются до 10 декабря.
PGConf India 2020
Пройдет 26-28 февраля в Бангалоре.
Nordic PGDay 2020
Нордический PGDay состоится в Хельсинки 24-го марта. Заявки можно присылать до последних дней сего года.
pgDay Paris 2020
В конце марта, 26-го в Париже, состоится еще одна конференция – День Постгреса.
Образование
Сертификация Postgres, запущенная в мае этого года, набирает обороты. Теперь можно получить сертификат «Администратор PostgreSQL 10. Эксперт», но для этого нужно уже иметь сертификат «Администратор PostgreSQL. Профессионал» и сдать три теста – DBA2-10 (настройка и мониторинг PostgreSQL), DBA3-10 (резервное копирование и репликация PostgreSQL) и QPT-10 (оптимизация запросов). Подробности можно прочитать на сайте компании Postgres Professional.
Подготовиться помогут курсы. Сейчас выложены и общедоступны все видеоуроки по курсам
- DBA1. Администрирование PostgreSQL. Базовый курс;
- DBA2. Администрирование PostgreSQL. Настройка и мониторинг;
- DBA3. Администрирование PostgreSQL. Резервное копирование и репликация;
- DEV1. Разработка серверной части приложений PostgreSQL. Базовый курс.
Курс по оптимизации — PostgreSQL 10. Оптимизация запросов — доступен в виде слайдов, демо и ответов на вопросы.
Также стали полностью доступны все видео курсов "Основы технологий баз данных" Бориса Асеновича Новикова, доктора физико-математических наук, профессор департамента информатики Высшей школы экономики в Санкт Петербурге.
Книги
The Art of PostgreSQL
Вышло 2-е издание книги Mastering PostgreSQL in Application Димитри Фонтейна. Теперь книга называется The Art of PostgreSQL. В новом издании новая глава целиком посвящена PostgreSQL-расширениям. Написана эта глава автором команды CREATE EXTENSION.
Подписывайтесь на канал postgresso!
Идеи и пожелания присылайте на почту: news_channel@postgrespro.ru
Предыдущие выпуски: #16, #15, #14, #13, #12, #11 (спец), #10, #9, #8, #7, #6, #5, #4, #3, #2, #1