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. Ну а мы объединили всё в единый список и, как видите, поместили в контекст Образования.
Slack Channel (упоминают: Райт, Лэмберт, Шербаум, Буз);
PG US User groups (Райт, Шербаум);
Mastodon (Лэмберт, Тисьё, Шербаум - ну а я сам впервые услышал о таком);
Twitter #postgresql #pghelp #postgresfriends (Тисьё, Буз);
Discord (Лэмберт, Буз);
Linkedin (Тисьё);
Postgresql.life, Social Media Links (Фритчи, Буз);
PG Conferences (примерно все) и отдельно:
Pg NYC – Postgres-конференция в Нью-Йорке (Райт);
PG Chicago 04-20-23 – впервые в Чикаго (Райт);
PGConf NYC (Буз);
Scale20x (Буз);
Percona Live (Буз);
PASS Data Community Summit (Фритчи, Буз);
FOSDEM & FOSDEM PGDay (Буз);
PGConf EU (Буз);
Nordic PGDay (Буз);
PGDay Paris (Буз);
PG Mailing lists - почтовые рассылки (примерно все);
PostgreSQL IRC - ссылка на разные каналы (Шербаум);
PGSQLPhriday.com (Буз, конечно);
Planet.postgresql.org (Буз);
Postgres.fm (Буз);
Postgresweekly.com (Буз).
Райан Буз решил подытожить 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), а подгружались и масштабировались при необходимости. Используются:
Amazon Simple Storage Service (Amazon S3),
Amazon Elastic File System (Amazon EFS),
При этом сам PgBadger работает в инкрементальном режиме и свои отчёты отдаёт тоже инкрементально. Работает он в docker-контейнере.
Много этапов и составляющих, много схем и кусков кода, диаграммы. Основательно изложено.
Тема бессерверности всплывает и в рождественском/новогоднем контексте:
Santa Paws: Gift exchange sample app for dogs
Да, это действительно приложение для подарков собачкам - мячиков, мягких игрушек, подверженных быстрому разрушению. Подарки отсылают друг другу их хозяева, воспроизводя структуру финансовых пирамид - отошли игрушку сейчас, через какое-то время получишь много игрушек, когда сеть разрастётся.
Эта статья о собачках опубликована в блоге CockroachDB. Автор, Aydrian Howard, использует стек Remix, Prisma, CockroachDB serverless, и Tailwind.
Миграция
Это управляемая событиями (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), и в этом качестве он всех более чем устроил.
Конференции
Конференция состоится 3-4 апреля в московской гостинице Редиссон-Славянская. Регистрироваться и подавать заявки можно уже сейчас.
Ссылки на европейские и американские конференции есть в списке ресурсов сообщества (см. выше). Чуть подробней о некоторых:
Открыт приём заявок на доклады (закроется 6 января). Мероприятие состоится 23-го марта, 22-го пройдут мастер-классы.
Citus Con 2022 (и 2023)
Выложили плейлист с 38 докладами. Открывал конференцию Энди Павло (Andy Pavlo). Что касается 2023, то прём заявок на доклады открыт до 5-го февраля.