Postgresso 48 (11)

a6e320432ac7316bd84b321bbf26ff2f.jpg

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), а подгружались и масштабировались при необходимости. Используются:

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

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

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

Santa Paws: Gift exchange sample app for dogs

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

Эта статья о собачках опубликована в блоге CockroachDB. Автор, Aydrian Howard, использует стек Remix,  Prisma,  CockroachDB 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-го февраля.

© Habrahabr.ru