Postgresso 20


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

    Главная новость


    Feature Freeze
    Функциональность 13-й версии PostgreSQL заморожена. Теперь только доработки и исправления багов. Список нового, вопреки многим ожиданиям, довольно обширный. Читайте нашу статью
    Много ли нового в «Чёртовой дюжине», где много примеров. Но и в разделе Статьи Postgresso есть ссылки на статьи, посвященные отдельным фичам.

    Релизы


    Postgres Pro Enterprise 12.2.1

    В этой версии совмещены новшества PostgreSQL 12 и особенности ветки Enterprise.
    Расширение multimaster: как и в 11.x, и в других версиях Enterprise, рекомендуется использовать в конфигурации 2+1, когда один из узлов рефери. Подробнее в документации. А ещё теперь можно проверить согласованность данных на узлах кластера, используя функцию mtm.check_query().

    В CFS теперь можно выбирать алгоритмы сжатия. Поддерживаются zstd (по умолчанию), zlib и pglz, но можно добавить другие алгоритмы.

    Ещё одна ударная фича Enterprise — механизм PTRACK, необходимый для эффективной работы нашего приложения pg_probackup, — был основательно переработан и получил новый внешний API. Чтобы резервные копии, уже созданные с PTRACK в pg_probackup, работали в Postgres Pro Enterprise 12.x, нужно обновить pg_probackup до версии 2.2.6 или выше и настроить копирование PTRACK заново.

    Важный патч дедупликации индексов B-tree (автор Анастасия Лубенникова, Postgres Professional) в PostgreSQL 13, но его функциональность уже есть в Enterprise 12.2.1. Причем исключение дубликатов можно отключить для создаваемых индексов, воспользовавшись параметром deduplicate_items команды CREATE INDEX. Об этом есть здесь.

    Ещё о нескольких новшествах кратко:

    • Встроенный пул был экспериментальной фичей, теперь доработан до штатного режима.
    • Добавлено расширение pgpro_stats, которое не только собирает статистику выполнения SQL-операторов, но и подсчитывает статистику событий ожидания.
    • Для улучшения мониторинга в представление pg_stat_activity добавлено поле wait_state_id.
    • В PostgreSQL 12 сокращен объём записей в WAL, генерируемых при создании индексов GiST, GIN и SP-GiST, в Postgres Pro это учли, но внесли изменения так, чтобы при этом формат индексов не поменялся.
    • Добавлен параметр plan_cache_lru_memsize, ограничивающий объём памяти, которая может быть выделена для подготовленных операторов. По умолчанию это ограничение теперь равно 8 МБ, а если задан и «старый» параметр plan_cache_lru_size, который задает не объем, а количество подготовленных операторов, то действовать будет ограничение, достигаемое первым.

    Вышла и Postgres Pro Standard 12.2.1. Поскольку отличия от PostgreSQL в Standard не столь радикальны, как в Postgres Pro Enterprise, то просто отсылаем к чейнджлогу.

    pgAdmin 4 version 4.20

    В этом релизе добавлены Collation, FTS Configuration, FTS Dictionary, FTS Parser, FTS Template, Domain, Domain Constraints, и Types для Schema Diff.

    О релизе читайте здесь, а загрузить можно отсюда.

    WAL-G v0.2.15

    В новой версии яндексовского бэкапа можно сокращать отставание (lag) реплики командами catchup-push и catchup-fetch, создавая инкрементальный бэкап от заданного LSN с отставшей реплики. Появилась поддержка шифрования Libsodium, повторной попытки (Retryer) для AWS.

    repmgr 5.1

    Бэкап от 2ndQuadrant обогатился существенными доработками: теперь требование, чтобы пользователь repmgr был суперюзером базы данных убрали отовсюду, откуда возможно. Обычный пользователь базы может копировать свою базу, а пользователь с ролью REPLICATION будет задавать соединения и слоты (если нужно). Но некоторые операции все же требуют опции -S | --superuser. Загружать отсюда.

    pgBackRest 2.25

    Главная новость этого релиза — LZ4-сжатие. Добавлена полезная опция: --dry-run для команды expire: можно просмотреть какие бэкапы/архивы будут удалены этой командой, ничего не удаляя. Можно ограничить размер бэкапа величиной, сообщенной в начале копирования, полагаясь на проигрывание WAL в случае распухания файла.

    check_pgbackrest 1.8

    Вышла и новая версия утилиты мониторинга BackRest-а (ее разрабатывает не CrunchyData, как сам pgBackRest, а Dalibo). Появилась опция --list-archives: распечатать список всех заархивированных сегментов WAL.

    pgmetrics v1.9

    Появился сбор метрик с AWS RDS и Aurora, сбор определений индексов, типов и количества бэкендов, проверка версий и окружения перед вызовом функций. И можно SET ROLE перед началом сбора метрик опцией --role. Релиз на гитхабе.

    pg_show_plans

    Расширение, которое предлагает испробовать Ханс-Юрген Шёниг (Hans-Jürgen Schönig) из Cybertec, позволяет смотреть одновременно сразу все планы инстанса, активные в данный момент — прямо пока они еще исполняются. Он поясняет их работу в собственном блоге и на сайте компании. И не только он. pg_show_plans даже уже обсудили на Вторниках у Самохвалова (см. наш раздел Вебинары). Кстати, расширение pg_query_state, которое доступно в Postgres Pro Standard/Enterprise, интересная альтернатива. Но к ванильному PostgreSQL придется приложить патч.

    Joe 0.6.2/1/0

    Каемся: о появлении этой утилиты с интерфейсом чат-бота мы написали по две строчки в прошлом и позапрошлом Postgresso, хотя она достойна большего. Этот DBA-бот, как его называют разработчики из Postgres.ai, представляет собой инструмент для тестирования изменений в базе, не подвергая опасности промышленную базу, но и без долгого копирования в тестовую среду (терабайтные базы копируются за секунды). К тому же этот тестовый ресурс разделяемый: десяток разработчиков могут работать одновременно. Подробности Анатолий Станслер рассказал в докладе на Highload++, советуем посмотреть.
    В версиях 0.6.2 и 0.6.1 только багфиксы, но зато в 0.6.0 появились интересные вещи: работа с гипотетическими индексами (с расширением HypoPG). С гипотетическими индексами работают составные команды, начинающиеся на hypo. Например: hypo reset — убить все гипотетические индексы. Новая команда plan отдаёт план, не исполняя запрос.

    Pyrseas 0.9.1

    Эта версия расширения-утилиты для описания схемы БД на YAML/JSON, сверки схем БД с заданной отличается от предыдущих версий в основном поддержкой PostgreSQL 12. Вот страничка на PGXN.

    pgFormatter 4.3

    Добавлены две опции, починены баги:

    • -r | --redshift для ключевых слов AWS Redshift;
    • -N | --numbering добавляет к каждой строчке префикс вида /* Statement # n */;
    • поправили форматирование внутри предложения с WITH;
    • поправили форматирование скриптов при работе с psql;
    • кроме того добавлено несколько встроенных функций к списку PostgreSQL-функций.

    pg_timeout 0.0.1

    И еще одно расширение: с ним можно установить для сессии таймаут бездействия, определив его в двух GUC:

    • pg_timeout.naptime: сколько секунд фоновый процесс спит между проверками бездействия (10 сек. по умолчанию)
    • pg_timeout.idle_session_timeout: сколько секунд сессии разрешено жить в бездействии (60 сек. по умолчанию).

    Соответствующие уведомления появятся в логе. Номер релиза говорит за себя.

    pg_logqueryid

    А это расширение включает логирование идентификаторов запросов в pg_stat_statements, когда включен auto_explain.

    Psycopg 2.8.5

    Этот Python-коннектор теперь поддерживает платформу AIX.

    pg_timetable 2.0

    В этот планировщик заданий (scheduler) добавлены возможности управления: можно пометить задания как @reboot, @every или @after.

    pgBadger 11.2

    В популярный анализатор логов Жиля Дароля (Gilles Darold) добавлены:

    • поддержка и автораспознавание формата логов AWS Redshift;
    • поддержка нового формата логов pgbouncer 1.11;
    • поддержка сжатия zstd и lz4;
    • можно запускать утилиту вот так: pgbadger -I -O "/out-dir/data" --noreport /var/log/postgresql*.log или
    • так: pgbadger -I -l "/out-dir/data/LAST_PARSED" -H "/out-dir/reports" /out-dir/data/2020/02/19/*.bin.


    PAF v2.3.0

    Версия этого очень популярного в России отказоустойчивого решения от ClusterLabs, основанного на Pacemaker+Corosync, отличается прежде всего поддержкой PostgreSQL 12. Она не будет работать с версиями более древними, чем Pacemaker 1.1.13 + corosync 2.x.

    pgagroal 0.5.1
    Новую версию пулера можно скачать отсюда: исходники, RPM.

    Облака


    Amazon RDS Now Supports PostgreSQL 12

    В анонсе говорится, что вместе с релизом вы получите (в числе прочих) обновленные расширения:
    PostGIS 3.0,
    PGAudit 1.4,
    wal2json 2.1,
    PLV8 2.3.14,
    Orafce 3.8,
    pg_repack 1.4.5,
    pg_hint_plan 1.3.5.22a77c,
    pglogical 2.3.0.

    How to Authenticate Postgres Users Against Amazon AWS Cognito

    Не найдя удовлетворительного ответа по аутентификации в Cognito для PostgreSQL, Эрнст-Георг Шмид (Ernst-Georg Schmid) ака ergo сам написал скрипт cognito_PAM.py облегчающий аутентификацию пользователей PostgreSQL и pgbouncer.

    Статьи


    Начнем со статей на лютую злобу дня. Но эти две статьи интересны отнюдь не только актуальной повесткой, они познавательны в техническом смысле.

    Charting the spread of COVID-19 using data

    В блоге Timescale по шагам показывают, как составлять запросы для построения карт распространения вируса. Данные автор брал с гитхаба Университета Джонса Хопкинса, заливал в TimescaleDB, а для визуализации на карте использовал Grafana.

    Intersecting GPS-Tracks to identify infected individuals

    Статья на Cybertec с множеством картинок и листингов. Для обнаружения контактов зараженных используются оконные функции, а для визуализации траекторий движения обладателей вируса — QGIS.

    Create and Visualize Machine Learning Models Using 2UDA

    2ndQuadrant (эта компания необыкновенно активна в эти непростые времена: вебинары и статьи прибывают потоком) в этой статье предлагает испробовать свой набор приложений для аналитики, где есть в том числе и пакет машинного обучения. 2UDA интегрируется в среду Orange и обменивается данными с PostgreSQL вплоть до последней его версии — 12.2. На этот раз учат работе со Случайным Лесом. В предыдущих статьях серии учили SVM (он же Метод Опорных Векторов) и искать ближайших соседей (KNN).

    А вот их же серия о разработке PostgreSQL для Windows: части 3 2 1.

    Comparing MongoDB vs Postgres over JOINs

    Надо бы начать не с названия статьи, а с авторов: Майкл Стоунбрейкер (Michael Stonebraker, тот самый) и Альваро Эрнандес (Álvaro Hernández). Альваро, впрочем, тоже «тот самый» — он неоднократно выступал на конференциях в Москве: вот, например, его доклад о StackGres на PGConf.Russia 2020. Ну а тема сравнения NoSQL с Postgres пока не потеряла актуальности.

    10 Things I Hate About Postgres

    Очередная холодная фаза контрастного душа Postgres vs Другие СУБД. Некоторые высказывания Рика Брэнсона (Rick Branson) весьма жестки. Например: масштабируемость процессов всё лучше и лучше с каждым мажорным релизом. Но в конце концов есть жесткий предел производительности, обусловленный архитектурой Postgres в сравнении с тем же MySQL с его один тред на соединение.

    Parallel Query Inside Function

    Абдул Йади (Abdul Yadi) анализирует происходящее внутри функций SQL и PL/pgSQL. Он обнаружил, что параллельное исполнение запроса, работающее в SQL запросах без функций, отключено при исполнении функций SQL и PL/pgSQL. И показывает уловку, как включить параллелизм и в PL/pgSQL.

    Monitoring the query planner

    Жульен Руо (Julien Rouhaud) пишет в своем Домике Жужу о мониторинге Планировщика.

    Waiting for PostgreSQL 13 – Allow pg_stat_statements to track planning statistics
    Хуберт «Депеш» Любашевский пишет об этом патче, и о том, как тестировал его на pgbench и о том, как можно нарваться на долгое планирование запроса (план не используется повторно). Кстати, в нашем обзоре тоже есть примеры с pg_stat_statements.

    PostgreSQL Person of the Week: Michael Paquier

    Мишель Пакье (он родился и учился во Франции, а последнее работает в Японии), многим хорошо знакомый по рассылке hackers, начинал работать еще с версией 8.3. На вопрос о любимом расширении отвечает: pg_stat_statement! (восклицательный знак его), а из фич последних версий выбирает TableAM.

    А вот выбор персоной недели Айларии Баттисон (Ilaria Battiston) был непредсказуем: она 22-летняя студентка-итальянка, изучающая Data Engineering в Техническом Университете Мюнхена. Чем она заслужила титул — читайте.

    Пишем в PostgreSQL на субсветовой: 1 host, 1 day, 1TB

    Кирилл Боровиков ака Kilor (компания «Тензор») пишет о том, как можно сделать более эффективной запись в БД, правильно организовав потоки данных. Спойлер: начинают с секционирования. Эту тему автор трогал и в предыдущей статье, но тогда в теории, а теперь на собственном опыте.

    PostgreSQL's 'Related Projects'

    Андреас Шербаум (Andreas Scherbaum) напоминает, что на postgresql.org появилась новая страничка о проектах, имеющих отношение к PostgreSQL, такие как pgweb, pglister, PostgreSQL Build Farm и других.

    A Beginners Guide to Basic Indexing in Postgres

    Действительно для начинающих. Для продолживших, напомним, есть серия статей Егора Рогова erogov об индексах (впрочем, у нас есть и малютка, она же Первое знакомство, где, конечно, можно прочитать и об индексах).

    Useful Queries for Postgres Index Maintenance

    Ибрар Ахмед (Ibrar Ahmed) из Percona в недлинной статье дает основы слежки за работой индексов при помощи типичных запросов к таблицам каталога.

    Здоровье индексов в PostgreSQL глазами Java-разработчика

    Иван Вахрушев (Яндекс) написал библиотеку pg-index-health, а в этой статье он и рассказывает, как использовать его скрипты [UPD: автор актуализировал ссылки в статье]. Иван признается, что устроил великую чистку, воодушевившись докладом Олега Бартунова и Александра Короткова. Все нужные SQL-скрипты можно найти по ссылкам в статье и в репозитории.

    Образование на дому


    «Вспомнить всё» или #сидимдома с пользой

    На этой странице сейчас собраны ссылки на все курсы отдела образования Postgres Professional.
    Но курсы можно смотреть и как плейлисты Youtube.

    Вебинары и митапы


    Postgres-вторники
    Их проводят Николай Самохвалов (Postgres.ai) и Илья Космодемьянский (DataEgret).

    #16: c участием Максима Богука и Викторв Егорова (оба DataEgret). Обсуждалось: как добиться того, чтобы приложение исправно работало даже при неожиданном скачке нагрузки в 5 раз.

    #15. Обсуждалось темы: PostgreSQL is the Linux of databases; ещё раз о GiST; несколько отличных улучшений в PostgreSQL 13 — у pg_stat_statements и EXPLAIN; Macro-analysis: Planning stats in pg_stat_statements; Micro-analysis: WAL stats in EXPLAIN; pg_show_plans от Cybertec.
    #14: Ошибки разработчиков при работе с Postgres. Гость: Павел Биссе.

    #13: Пример работы с JSON в Postgres (+CTE, LATERAL, интервалы, GiST-индекс).

    2ndQuadrantовские ближайшие вебинары

    Date/Timestamp types in PostgreSQL

    22 апреля, Эндрю Данстэн (Andrew Dunstan).

    KNN Indexing in PostgreSQL

    29 апреля, Кирк Ройбал (Kirk Roybal).

    Регистрация и список на страничке их вебинаров.

    Конференции


    PGCon 2020

    Пройдет 26-29 мая в режиме онлайн.

    Из материалов прошедших конференций, например:

    Easy And Correct High Availability Postgres with Kubernetes

    Postgres Open выкладывает видео с конференций Postgres Open, которые проводит (проводило и, надеемся, будет проводить после деизоляции) комьюнити в США. В этом докладе с Postgres Open 2019 Стивен Паусти (Steven Pousty) из Crunchy Data рассказывает о высокодоступном PostgreSQL от распаковки контейнеров до практических действий.

    PGConf.Russia

    Имейте в виду, что бОльшая часть видео, не говоря о слайдах, доступна на сайте конференции.

    Highload++

    Доклады, видимо, удобней смотреть на youtube-канале конференции.

    Новости этики


    The Code of Conduct Committee 2019 Annual Report

    17 марта Комитет по Кодексу Постгресиста отчитался о проделанной работе. Из широко известных в кругах российских постгресистов можно увидеть Илью Космодемьянского. Из отчета, к счастью, следует, что пока ни один прогресист не был забанен.

    Slave — всё

    Напоминаем, что окончательно упразднены рабы по всей документации Postgres: Slave стал Standby в репликации. В секционировании master стал root, а slaveleaf.



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

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

    Похожие публикации

    Комментарии 2

      0
      Спасибо за обратную связь. Ссылки в статье обновил.
        0
        спасибо и вам. тогда сейчас проадейчу.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое