Дайджест новостей из мира PostgreSQL. Выпуск №15



    Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL.

    Новости


    Главное событие месяца — это, конечно, Feature Freeze. Мартовский коммитфест закрыт. Основной облик версии PostgreSQL 12 определился. Дальше будут доработки и исправления, но не изменения в функциональности. О наиболее важных фичах 12 версии в ближайшее время мы сделаем отдельную публикацию.

    Уязвима ли «уязвимость»


    Под загадочным кодом CVE-2019-9193 скрывается политически важная для сообщества причина беспокойства. Речь о конструкции COPY… PROGRAM, появившейся еще в 9.3, которая дает возможность исполнять в запросе файлы ОС и писать в стандартный ввод или читать из стандартного вывода программы.

    When a vulnerability is not a vulnerability

    Однако, классик PostgreSQL Магнус Хагандер (Magnus Hagander) разъясняет в своем блоге:
    Эта «уязвимость» эквивалентна тому факту, что в типичной Unix-системе вы можете залогиниться рутом и создавать или редактировать файлы, и исполнять команды как root. <...> Будучи суперюзером, можно запускать файлы в ОС отнюдь не только при помощи COPY… PROGRAM." <...> Итак, уязвимости в PostgreSQL нет, зато однозначно есть уязвимые инсталляции PostgreSQL.

    Релизы


    pgAdmin4 V4.5

    В этой версии совсем мало изменений. Среди них поддержка адаптера для Python psycopg2 v2.8 (о нем ниже) и поддержка ESLinter. Загрузить можно с этой страницы.
    До этого в версии pgAdmin4 4.4 (вышедшей после предыдущего обзора) было исправлено 35 багов. Среди нового в 4.4:

    • история запросов в Query Tool доступна из разных сессий;
    • поддержка колонок IDENTITY;
    • документы можно строить в формате ePub
    • для каталога хранения данных используется в качестве базового полный email, а не только его левая часть.

    Подробности на странице PgAdmin.
    До этого в версии 4.3 были добавлены в том числе кнопки Commit и Rollback в Query Tool; появилась возможность запускать в контейнерах несколько версий утилит PostgreSQL. О других 5 новых возможностях той версии можно узнать на странице PgAdmin.

    repods

    Появилась облачная платформа repods на базе PostgreSQL. Основное назначение — аналитика. Интересная визуализация схем БД и прочего.

    pg_activity 1.5.0

    В этой версии средства мониторинга появилось новое:

    • сводка активных соединений;
    • имя приложения;
    • можно сохранять список активных запросов в файл CSV;
    • поддержка PGSERVICE;
    • при потере соединения пытается снова соединиться с PostgreSQL-кластером.

    Скачать можно и с github, и с pyri.

    Barman 2.7

    Исправлены ошибки параллельного копирования. Раньше неустранимая ошибка при параллельном бэкапе приводила к тому, что процесс надо было убивать вручную и затем очищать сервер от последствий неудачного бэкапа.

    При работе в режиме гео-избыточности раньше падал cron при обрыве сети в процессе синхронизации. Соответственно следующие задания не выполнялись. Также исправлен баг в работе ввода-вывода в UTF-8. Подробности и файлы для скачивания на сайте sourceforge.

    Pgpool-II

    Вышла версия 4.0.4, а с нею и 3.7.9, 3.6.16, 3.5.20 и 3.4.23. Из новшеств: можно задать клиентский список шифров — ssl_ciphers. Таким образом в Pgpool-II поддержана соответствующая возможность PostgreSQL. Про релиз здесь, а RPMы можно скачать отсюда. В разделе «статьи» мы упоминаем две публикации ветерана PostgreSQL Тацуо Ишии (Tatsuo Ishii) о новшествах будущего релиза — Pgpool-II 4.1.

    padnag 1.2.4

    В новой версии этого инструмента синхронизации ролей PostgreSQL с пользователями и группами Active Directory появилось в том числе:

    • Ubuntu 1604 вместо Ubuntu 1804 LTS;
    • переход на AWS CodeCommit и CodeBuild;
    • автоматическое тестирование на правильную интеграцию с Windows 2012R2;
    • больше нет тестирования версий PostgreSQL до 9.4.
    Подробности есть здесь.

    temboard 3.0

    В средстве удаленного мониторинга PostgreSQL от Dalibo Labs появился плагин Maintenance, который следит за базами данных, схемами, таблицами и индексами. Помогает обнаружить распухание базы и эффективно управлять VACUUM, ANALYZE или REINDEX.

    psycopg 2.8

    Эта версия PostgreSQL-адаптера для Python (полностью реализующего интерфейс Python DB API 2.0) — примечательное событие: предыдущая версия вышла аж 2 года назад. В этой версии в числе прочего появился

    • мэпинг ошибок PostgreSQL на исключения Python;
    • некоторые улучшения обогащают информацию о статусе соединения и результатах запроса;
    • улучшено асинхронное взаимодействие и параллелизм;
    • отказ от поддержки устаревших версий Python (2.6, 3.2, 3.3) позволил существенно переработать код.

    pg2arrow

    Утилита, которая отсылает запрос PostgreSQL и упаковывает результат в формат Apache Arrow.

    pgMustard

    Интерфейс для «explain analyse», способный еще и давать рекомендации по ускорению запросов. pgMustard — коммерческий софт, испытательный срок 7 дней. Отзывы приветствуются — говорят разработчики. Версия 1.0 работает с PostgreSQL 9.6 и более поздними.

    pg_snakeoil 1.0

    Антивирусное расширение PostgreSQL. Для сканирования оно использует ClamAV, который не тормозит работу PostgreSQL.

    vipsql

    Плагин к vim для работы в psql.

    migra

    Этот инструмент работает со схемами PostgreSQL в духе diff.

    dbdot

    Утилита командной строки, которая генерит DOT-описание на основе схемы БД. Распространяется в бинарных пакетах под различные платформы.

    Zedstore — compressed in-core columnar storage

    Это довольно сырой патч, но на него стоит обратить внимание. Буквально за пару недель было сделано колоночное хранилище. В будущем в PostgreSQL будут подключаемые хранилища разного типа (pluggable storages), для чего сейчас сделан и прошел коммитфест патч tableam (table access method) — важная часть API для подключения хранилищ. Одно из новых хранилищ уже достаточно хорошо известно: Zheap с UNDO, оно в работе. Теперь — колоночное (а есть еще расширение VOPS для векторизованных вычислений).

    Статьи и блоги


    Benchmarking connection poolers

    Пуллеры для Постгреса. Сравнительное тестирование производительности различных пуллеров для Постгреса: начиная с популярного pgbouncer-а и до новичка — Odyssey и новой разработки — встроенных пуллеров от Postgres Professional. Тестировал Константин Книжник.

    Imperative to Declarative to Imperative

    Брюс Момджан по-прежнему с удовольствием высказывается на философские темы СУБД-строения: на этот раз в поле его зрения попала цепочка «генерация декларативного кода императивным кодом, который [в конечном счете] опять будет исполнен как императивный код» (imperative language that generates declarative output that can be converted into an imperative program and executed).

    Брюс обнародовал здесь свои соображения, имея в виду обсуждение соответствующего треда, в котором высказались Питер Гёйган (Peter Geoghegan) и Крис Траверс (Chris Travers).

    Uniting SQL and NoSQL for Monitoring: Why PostgreSQL is the ultimate data store for Prometheus

    Подзаголовок этой статьи (тоже не слишком короткий) поясняет: «Как использовать Prometheus, PostgreSQL + TimescaleDB и Grafana для хранения, анализа и визуализации метрик».

    What’s new in PostgreSQL 11

    Маркус Винанд (Markus Winand), автор книжки PostgreSQL Performance Explained, пишет не о будущем (PostgreSQL 12), а о настоящем: «о главной теме PostgreSQL 11 — оконных функциях». До 2018 PostgreSQL в одиночестве сражался с ними (если говорить об опен-сорс СУБД), но с тех пор некоторые из них догнали и перегнали. И вот в 11 снова рывок вперед. Разъяснено на примерах, со схемами и матрицами функциональности.

    Why SQL is beating NoSQL, and what this means for the future of data

    На сайте TimescaleDB большая статья об истории битв SQL и NoSQL за господство над данными — начиная с 70-х и примеров из реляционной алгебры.

    Be careful with CTE in PostgreSQL

    Статья Хаки Бенита (Haki Benita), независимого разработчика, об опасностях CTE. Сравнивает с Oracle, говорит о материализации, подзапросах как альтернативе, CTE inlining, о хинтах и прочем. Статья опубликована еще осенью, и кое-какие изменения с тех пор произошли, но многие проблемы по-прежнему актуальны.

    JOIN LATERAL

    Элейн Мастейн (Elein Mustein), до этого популярный автор GeneralBits, напоминает в блоге 2ndQuadrant о возможностях JOIN LATERAL. А также об ограничениях, о мониторинге соответствующих запросов и о том, где имеет смысле использовать JOIN LATERAL, а где — нет.

    Postgres-XL and global MVCC

    Коичи Сузуки (Suzuki Koichi), работавший в NTT и перешедший в 2ndQuadrant, задаёт интересные вопросы по поводу распределенных транзакций и собирается их в будущих статьях обсуждать.

    Waiting for PostgreSQL 12 – REINDEX CONCURRENTLY

    Depecz, то есть Хуберт Любашевски, рассказывает и приводит примеры использования этого важного новшества.

    GeoJSON Features from PostGIS

    Пол Рэмси (Paul Ramsey) рассказывает, как из уже существующих в PostgreSQL средств и собственного коротенького скрипта конвертировать таблицы в GeoJSON.

    Metrics to Monitor in Your PostgreSQL Database

    Эта статья продолжает тему другой статьи — «Руководство: как мониторить PostgreSQL, используя Telegraf и InfluxDB».

    PostgreSQL for a SQL Server DBA: The Tooling Stinks

    В этой не слишком лояльной Постгресу статье — «Инструменты для админа PostgreSQL тухловаты» — наблюдения человека с бэкграундом MS SQL, так что его опыт и импровизированный сравнительный анализ могут оказаться интересными для некоторых читателей-постгресистов. Автор считает главным препятствием для перехода MS SQL -> PostgreSQL относительную бедность (у меня это мягче сказано) инструментария, а не недостатки самой СУБД. Соответственно речь идет о PgAdmin, но также и о DataGrip и Novicat.

    Shared Relation Cache и Statement Level Load Balancing

    В своем блоге Playing with PostgreSQL and Pgpool Тацуо Ишии (Tatsuo Ishii) пишет о разделяемом процессами Pgpool-II кэше системного каталога, который появится в версии 4.1.

    В продолжении — речь о балансировке нагрузки, которая в Pgpool-II 4.1 возможна на уровне сессии. Поведение определяется новым параметром: statement_level_load_balance в pgpool.conf.

    Конференции


    Saint HighLoad++ 2019 (Санкт-Петербург)

    На прошедшей конференции много говорили о будущем. Вот слайды доклада, где Олег Бартунов суммирует новшества грядущей версии. Конференция прошла 8-9 апреля.

    German-speaking PostgreSQL Conference 2019

    Для желающих поупражняться в немецком и посетить Лейпциг: эта конференция состоится 10 мая.

    PGDay Warsaw

    Эта конференция проходит в контексте OpenSource Day 14-го мая.

    PGDay.IT 2019

    Итальянский PG-день пройдёт в Болонье 16-17 мая.

    PGCon 2019 Ottawa

    Канадская конференция состоится 28-31 мая.

    Swiss PGDay 2019

    На эту конференцию, которая состоится 28 июня в Раппертсвиле, около Цюриха, еще можно (до 18 апреля) присылать заявки на доклады и регистрироваться.

    PostgresLondon 2019

    Эта конференция пройдет 1-3 июля (1-го необязательный день для мастер-классов).

    PGConf.Brazil 2019

    Сан-Паулу ждет гостей 1-3 августа.

    Austrian pgDay

    Новое мероприятие, оно состоится 6 сентября.

    PostgresConf South Africa 2019

    Пройдет в Йоханнесбурге 8-9 октября. Заявки принимаются до 30 июля.

    А также есть конференции в корпоративном стиле:

    Percona Live Open Source Database Conference 2019

    Percona проводит эту конференцию в Техасе (Остин, столица) 28-30 мая.

    Postgres Vision 2019

    Эта конференция проводится EnterpriseDB в Бостоне 24-26 июня.

    На этом все. До новых встреч!




    Подписывайтесь на канал postgresso!

    Идеи и пожелания присылайте на почту: news_channel@postgrespro.ru
    Предыдущие выпуски: #14, #13, #12, #11 (спец), #10, #9, #8, #7, #6, #5, #4, #3, #2, #1
    • +24
    • 4.3k
    • 2
    Postgres Professional
    200.04
    Разработчик СУБД Postgres Pro
    Share post

    Similar posts

    Comments 2

      +1
      Спасибо за подборку.

      What’s new in PostgreSQL 11
      Как вы считаете 11 версию уже можно использовать на проде?
        0
        Коллеги в большинстве своем считают, что «Да, можно, но после тщательного тестирования».

      Only users with full accounts can post comments. Log in, please.