PostgreSQL 16: Часть 3 или Коммитфест 2022-11

Вышел очередной обзор Павла Лузанова. Самое интересное из первых коммитфестов можно прочитать в предыдущих статьях серии: 2022-07 (ru / en), 2022-09 (ru / en).

В этот обзор попало 17 разработок. Среди них:

Но лучше прочитайте все 17.

Postgres-сообщество и образование

Что для вас PostgreSQL-комьюнити?

Живёт своей жизнью затея Райана Буза (Ryan Booz) - его Пятнецы (PGSQL-Phridays). На 3-м этапе этого флеш-моба ход Пэта Райта (Pat Wright). В отличие от обычных пятниц и PG-пятнец Шона Томаса, PGSQL-пятнецы случаются раз в месяц, и эта, 3-я пятнеца - последняя в 2022-м. И вот: желающих приглашают ответить на вопрос: What is the PostgreSQL community to you?

Откликнулся, например, Андреас Шербаум (Andreas 'ads' Scherbaum). Андреас - член совета директоров PostgreSQL Europe. Вероятно, ему есть что сказать на тему. К тому же он ведёт рубрику PostgreSQL Person of the Week. Но он не слишком разговорчив: все постгресисты суть друзья (если пересказать совсем коротко). Об этом говорит и зачинатель движа - Буз, но более пространно: PostgreSQL Community: Passionate, Knowledgeable, and Thoughtful.

Райан Лэмберт (Ryan Lambert) из RustPruf Labs отвечает на тот же вопрос. Райан вводит тему PostGIS, из-за которого он и перешёл лет 10 назад с MySQL на Postgres.

К флэшмобу присоединяется и Грант Фритчи (Grant Fritchey из Red Gate Software). Он автор книжки SQL Server 2022 Query Performance Tuning: Troubleshoot and Optimize Query Performance. И рассказывает, в том числе, об "агрессивно-дружеской" обстановке в PASS Data Community Summit.

Имя Франческо Тисьё (Francesco Tisiot) мелькает в наших обзорах. В своём вкладе в моб он даёт ссылку на интересную страничку: Social Media Links | PostgreSQL. Там как раз набор из полусотни, наверное, контактов - известных и не очень в соцсетях деятелей сообщества. Среди соцсетей Facebook встречается редко, а вот загадочный Мастодонт - часто.

Самое важное тут, мне кажется, не медоточивая лирика, а другое: среди предложенных направлений развития темы есть пожелание назвать список любимых Postgres-ресурсов. Отвечали кто как. Грант Фритчи, например, не стал мудрить, просто дал ссылку на страничку Community на postgresql.org. Ну а мы объединили всё в единый список и, как видите, поместили в контекст Образования.

Райан Буз решил подытожить 3-й этап моба. Но, между прочим, посчитал не всех участников. Даём итоги всех трёх этапов:

PGSQL Phriday #003 Summary: What is the PostgreSQL Community to me?

PGSQL Phriday #002 Summary: PostgreSQL Backup and Restore

PGSQL Phriday #001 Wrap-up and review!

PostgreSQL 14 internals

Переведена на английский 4-я часть PostgreSQL 14 internals Егора Рогова. Осталось перевести 5-ю часть и Заключение. Постоянная ссылка здесь. Русский вариант - PostgreSQL 14 изнутри - здесь. На русском почти готово новое издание. Его уже можно заказать здесь. Текст обновится с учетом того, что появилось в версии 15. И, конечно, в электронном виде книга будет доступна бесплатно

Малютка

Вышла обновлённая до PostgreSQL 15 версия "Малютки", то есть Postgres: первое знакомство. Соответственно, теперь есть глава "Что нового в PostgreSQL 15". Это уже 9-е издание. Как и обычно, можно скачать в формате PDF. Подробней об этой малютке здесь.

PostgreSQL-ecosystem: Some things about PostgreSQL

Энтузиаст из Китая под ником xiongcc опубликовал в своём гитхабе список ресурсов по Postgres. Попытался охватить всю экосистему Postgres. Ресурс в помощь соотечественникам - в некоторых разделах всё по-китайски, есть ссылки на переводы на китайский книжек и статей. Переведена вот эта книжка - PostgreSQL for Data Architects (2015) Джайадевана Маймала (Jayadevan Maymala) - по нашей ссылке O’Reilly предлагает 10-дневную бесплатную версию для чтения.

Приятно, что среди книг упоминается и PostgreSQL 14 Internals (части 1-3) Егора Рогова. Автор написал нам, что книгу он уже переводит на китайский язык!

В разделе Документы много на английском. Есть, например, PostgreSQL Internals Through Pictures - презентация Брюса Момджана (Bruce Momjian, EDB). Там же и переводы на китайский.

DBA2-13

Обновленный курс DBA2-13 (администрирование, настройка и мониторинг) доступен на сайте Postgres Professional. В новом курсе:

  • учтены нововведения версий PostgreSQL 11, 12 и 13;

  • вместо сборки из исходных кодов используется установка из пакета;

  • материал многих тем переработан, чтобы демонстрации чередовались с теорией.

Все материалы можно скачать одним архивом.

NoSQL: Малыш Ахиллес пока не догнал Большую Черепаху

NoSQL Databases Gain Usability, Speed

Пишут, что за 6 следующих лет рынок NoSQL будет расти в среднем на 31.3% (по CAGR), а РСБУД всего лишь на 12%. Но пока что абсолютные объёмы рынков имеют значение: NoSQL $5.7 дорастет за это время до $29.3 против $62 -> $122.4 (но за 5, а не за 6 лет) у РСУБД. То есть всё ещё будет в 4 раза меньше, хоть и не на порядок как сейчас.

Автор, Алекс Вуди (Alex Woodie) останавливается конкретно на Aerospike и Couchbase. Первая уже доступна в облаках: в AWS, а будет и в Azure и Google Cloud.

Cassandra to Get ACID Transactions via New Accord Consensus Protocol

Ещё одна статья Вуди. В ней он пишет отнюдь не только о Cassandra. Приобритение NoSQL-базами статуса ACID-совместимых - вот что его интересует. Особенно сами принципы, пути - как получить ACID, не особенно жертвуя преимуществами NoSQL - гибкостью, параллелизмом, производительностью. Фактически речь об SQLизации и ACIDизации NoSQL.

Для ACID-изации нужны протоколы, алгоритмы. Протокол Paxos + атомные часы = Spanner, распределённая БД с согласованными данными. А вот Cassandra до недавнего времени, хоть и использовала Paxos, могла гарантировать всего лишь легковесные (lightweight) транзакции. Raft, наследующий Paxos, работает в CockroachDB, обеспечивая ACID, также в MongoDB, в YugaByte, в графовой Neo4j. А есть ещё Calvin, который в FaunaDB, которую создавали бывшие инженеры Twitter, в FoundationDBприобретенной Apple в 2015, и открывшей свой код в 2018.

Архитектура Cassandra - shared-nothing. Поверх её выстроили базу DataStax. Разработчики утверждают, что придумали, как полностью поддерживать ACID, используя протокол Accord, придуманный в Apple и Университете Мичигана. Они, в лице Патрика МакФаддина (Patrick McFadin), утверждают, что с Accord можно получить глобальных консенсус за один обмен сообщениями (round trip). Подробней об Accord можно почитать здесь.

Тот же автор рассказывает, что:

Databricks SQL Now GA, Bringing Traditional BI to the Lakehouse

Самая перспективная компания на рынке озёр данных позаботилась об аналитиках, привыкших исследовать данные SQL-запросами. Databricks утверждает, что при этом удалось добиться очень хорошей производительности, обгоняя на бенчмарках другую перспективную - Snowflake. Эта другая, уже собравшая $4.5 млрд на IPO, начинала как создатель "очередной" аналитической базы с вертикальным хранением и массовым параллелизмом, но стала - в маркетинговых манифестах и, говорят, на деле - площадкой для торговли данными.

Волшебное слово: бессерверный

Neon's Serverless Postgres Platform Now Live to All

Проект, о котором мы относительно подробно писали в Postgresso #5 (42), продолжает развиваться. Приглашения теперь больше не нужны, можно регистрироваться просто с экаунтом Google или Githab.

Запустив проект Neon, пользователь получает:

  • 10 веток (branches) базы данных для промышленного использования, разработки и тестирования, на каждую до 3 ГБ;

  • 3 вычислительных инстансов, каждый с виртуальным процессором (vCPU) и до 4 ГБ памяти;

  • Возможность PITR на 7 дней "при разумном использовании";

  • API управления своими проектами, ветками и базами.

В базу Neon можно импортировать данные из Postgres, в отличие от, скажем, PlanetScale, ориентированной на MySQL. Планету они приводят как пример ветвящейся базы данных. Или, можно сказать, базы ветвящихся данных.

A Serverless Architecture for Analyzing Postgres Logs with pgBadger

Темы бессерверной архитектуры касаются и Кришна Сарабу, Чираг Дайв и Марк Таунсенд (Krishna Sarabu, Chirag Dave и Mark Townsend, Amazon AWS). Они написали большую статью о том, как для анализа логов использовать pgBadger и - более широко - бессерверный стек. То есть так, чтобы никакие вычислительные ресурсы не висели бы постоянно в памяти (persistent), а подгружались и масштабировались при необходимости. Используются:

При этом сам PgBadger работает в инкрементальном режиме и свои отчёты отдаёт тоже инкрементально. Работает он в docker-контейнере.

Много этапов и составляющих, много схем и кусков кода, диаграммы. Основательно изложено.

Тема бессерверности всплывает и в рождественском/новогоднем контексте:

Santa Paws: Gift exchange sample app for dogs

Да, это действительно приложение для подарков собачкам - мячиков, мягких игрушек, подверженных быстрому разрушению. Подарки отсылают друг другу их хозяева, воспроизводя структуру финансовых пирамид - отошли игрушку сейчас, через какое-то время получишь много игрушек, когда сеть разрастётся.

Эта статья о собачках опубликована в блоге CockroachDB. Автор, Aydrian Howard, использует стек RemixPrismaCockroachDB serverless, и Tailwind.

Миграция

DBConvert Streams v0.5.0

Это управляемая событиями (event-driven) платформа репликации с нулевым временем простоя во время миграции. Её разработчик - компания Slotix из Словакии. Репликация данных продолжается без пауз по мере того, как нагрузка перемещается в облака, и требуется более интенсивная передача данных. При чтении данных используется технология Change Data Capture (CDC).

При миграции таблица делится на несколько частей, которые переносятся параллельно. Утверждается, что разница в архитектурах и диалектах SQL учитывается автоматически, а о проблемах с конвертацией система предупреждает заранее. Но автоматически можно конвертировать запросы MS Access в представления Postgres, в том числе для основных облачных Postgres. Oracle, MS SQL, MySQL или DB2 автоматически конвертировать не получится. Надо будет сначала разобраться с разницей в схемах данных и типах у конвертируемой базы. Но DBConvert поможет в этом. Смотрите, например, Oracle to PostgreSQL Conversion and sync.

Настройки миграции гибкие. Можно, скажем, переносить не все данные, а только отфильтрованные фильтрами WHERE.

В блоге пишет в основном Дмитрий Нарижных (Dmitry Narizhnykh), в том числе, например, о Event Driven real-time Replication between MySQL and PostgreSQL, PostgreSQL Change data capture (CDC) + golang sample code, Migrate data from SQL Server to PostgreSQL. Open source tools vs. DBConvert, Bidirectional Database synchronization. Двунаправленная синхронизация (на триггерах) будет работать в том числе для:

Поддерживаются:

  • Linux/ amd64,

  • Linux/ arm64

  • macOS/ amd64

  • Windows/ amd64

Byte Relay

Мы не раз писали о подкастах Н.Самохвалова-И.Космодемьянского и Н.Самохвалова-М.Кристофайдиса (Michael Christofides, pgMustard). Надеемся, вы следитите за ними и без наших напоминаний. На этот раз представим серию встреч Byte Relay, организованную Андреем Бородиным из Яндекса. Пересечения есть: он тоже приглашал Александра Короткова по поводу OrioleDB, Стаса Кельвича по поводу Neon. На сегодняшней день в серии 8 роликов.

А вот здесь Дмитрий Долгов, он же erthalion (я чуть не сказал: из Zalando - но Дмитрий с январая работает в Red Hat) рассказывает о необычных для Postgres-подкастов материях - о перспективах квантовых вычислений в БД, об Алгоритме_Гровера, категориальных базах и о шахматах. Кстати, вот интервью с Дмитрием Долговым в бесконечной серии Андреса Шербаума Персона недели. Андрей, кстати, давний ценитель докладов Дмитрия. Вот доклад на более земные темы, который предлагал послушать Андрей, а мы присоединяемся: Modern B-Tree techniques.

Разное

Amazon's Trusted Language Extensions for Postgres

На Aurora и RDS Postgres, которые есть у Amazon, можно запускать 85 popular Postgres extensions. Немало, но это предел, граница. Amazon, говорят, чтобы любопытные пользователи эту границу переходили. Но вот появился опенсорсный пакет Trusted Language Extensions for PostgreSQL (pg_tle), для создания расширений на trusted-языках, не нарушающих политику безопасности платформ RDS и Aurora. Чэнни Юн (Channy Yun) показывает, как конфигурировать RDS, устанавливать расширение pg_tle, настраивать его и тестировать.

pgvector: Vector Similarity Search Extension

Это расширение поддерживает Эвклидово расстояние L2, скалярное (внутреннее) произведение (inner product) и косинусное сходство (cosine distance). Оно полезно при текстовом поиске с нечётким соответствием. Создаются соответствующие индексы. Есть много клиентских библиотек на Python, Node.js, Go, Ruby, PHP, Rust и других языках.

Отступники

Instacart on Dropping Postgres for Amazon DynamoDB

Компания Instacart перешла с Postgres на DynamoDB. Разобраться в причинах этого неприятного перехода было бы полезно. Джессика Уочтел (Jessica Wachtel) рассказывает, что Postgres на Amazon EC2 плохо работал с пуш-сообщениями. Пуш-сообщения не просто росли количественно, у них были всплески, зависимые от времени суток, Postgres не смог адекватно масштабироваться. Решили не возиться с оптимизацией, а перешли (после тестирования разных вариантов) на DynamoDB - что-то много у нас в этом выпуске Амазона, но так уж вышло.

При этом пришлось полностью переписать схему и модель данных, чтобы сделать запись более эффективней. Об этом Джессика и рассказывает, показывая старую и новую схемы. Этот проект рассматривался как "первопроходческий" (trailblazer), и в этом качестве он всех более чем устроил.

Конференции

PGConf.Russia 2023

Конференция состоится 3-4 апреля в московской гостинице Редиссон-Славянская. Регистрироваться и подавать заявки можно уже сейчас.

Ссылки на европейские и американские конференции есть в списке ресурсов сообщества (см. выше). Чуть подробней о некоторых:

pgDay Paris 2023

Открыт приём заявок на доклады (закроется 6 января). Мероприятие состоится 23-го марта, 22-го пройдут мастер-классы.

Citus Con 2022 (и 2023)

Выложили плейлист с 38 докладами. Открывал конференцию Энди Павло (Andy Pavlo). Что касается 2023, то прём заявок на доклады открыт до 5-го февраля.

Комментарии (1)


  1. eri
    22.12.2022 03:01

    когда же добавят реплейс)