Как стать автором
Обновить
213.35
Postgres Professional
Разработчик СУБД Postgres Pro

Postgresso #2

Время на прочтение24 мин
Количество просмотров1.8K

TDE и философия open source

Началось всё с того, что Брюс Момджан написал в своём блоге:

Wish I Was Wrong About Tde

Брюс говорит, что по переписке в декабре 2024 стало понятно, что для дальнейшей разработки требуются изменения в буферах чтения/записи, в WAL, к тому же нужно придумать способ хранения секретных ключей. Я считал, - говорит он, - что такие изменения оправданы важностью TDE для вопросов безопасности. Баланс мнений склонялся к тому, что слишком много кода надо менять, и что в ближайшее время ждать TDE в версии сообщества не приходится. Брюс далее цитирует свой прошлогодний пост.

А вот комментарий  Грега Сабино Маллейна (Greg Sabino Mullane) в переписке, который Брюс счёл философским:

Количество форков TDE заставляет меня думать, что это вопрос не если, а когда. Была ли вообще сложная функциональность, породившая столько форков/реализаций? Разве что колоночное хранение?

Брюс: да, это говорит о том, что реализация TDE неизбежна, поскольку почти не было случаев, чтобы важные фичи в коммерческих форках не попали потом в основную ветку. Есть контраргумент: TDE может не последовать этой тенденции из-за связи с законодательством (regulatory). Да и не такая уж и сложная разработка, чтобы не осилить самостоятельно (ease-of-deployment). Время покажет.

Джереми Шнайдер (Jeremy Schneider): А что даёт TDE? Иногда это даёт админу базы ощущение, что он защищает данные от "сисадмина, закусившего удила" (what-if-a-sysadmin-goes-rogue). Но тогда с чего бы нам доверять админу базы, если мы не доверяем сисадмину? Я думаю, что шифрование на уровне хранения сейчас вполне доступно во всех основных ОС, а, если дополнить это шифрованием чувствительных данных на уровне приложения, то ничего больше и не нужно.

Лауренц Альбе (Laurenz Albe) формулирует жёстко: Я думаю, что TDE так плохо продвигается потому, что есть коммерческие форки, где TDE есть. Зачем компаниям продвигать TDE в сообщество, подрывая собственный бизнес?

Брюс не согласен: И EDB и Crunchy много делают для продвижения TDE именно в сообщество.

Брюс подводит оптимистический итог дискуссии: Да, я думаю в конце концов расширяемость или переписывание ввода/вывода сделают возможным TDE.

Сообщество: продолжается массовый переезд институций сообщества из X в другие соцсети.

Недавно мы писали о переезде pgPedia Week с X на BluSky:

Мы решили, что больше не подобает нам постить в место, которое раньше называлось «твиттером». Пусть он провалится. Следуйте за нами на BlueSky.

Теперь переезжает PosgreSQL Europe, ну а PostgreSQL Europe Diversity Task Force сам бог велел. DTF учредили совсем недавно на афинской конференции PostgreSQL Conference Europe 2024.

Итак: Social Media Channels - PostgreSQL Europe

PostgreSQL Europe больше не будет постить на Twitter/X. Речь не только о нашем основном аккаунте, но и о всех аккаунтах конференций. Недавние изменения в политике (policies, не politics) этой платформы планомерно превращают Twitter/X в пространство, где, как мы считаем, распространяется много ненависти. Это не соответствует духу и ценностям нашей организации.

Теперь следите за нашими новостями на этих соцмедиа:

Конференции

Перед тем, как перейти собственно к конференциям: Стефани Янин Стёлтинг (Stefanie Janine Stölting) в ProOpenSource OÜ Blog в статье Conference CfP And Submissions делится опытом (она немало посидела в комитетах, принимающих заявки). Предлагает и организаторов пощадить, и себя не забыть.

Начнём двигаться в направлении с юга не север. На югах происходит интересное.

PGConf India 2025

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

Бриллиантовыми спонсорами были: AWS, Microsoft, EDB, Google Cloud, платиновыми IITM Pravartak и Postgres Professional. Соответственно у нас был стенд, заместитель генерального директора Андрей Флейта (Andrey Fleyta) выступал на открытии, Леонид Альбрехт (Leonid Albreht) рассказывал о Бихе (BiHA), на стенде отвечал на вопросы Борис Пищик.

Проходила она 5-7 марта в Бангалоре. Это не 1-я Postgres-конференция в Индии, но 1-я PGConf - предыдущие назывались PGDay India 2015-2024. С ключевым докладом выступал Питер Зайцев (Peter Zaitsev) из Percona, а от IITM Pravartak Баладжи Венкат (Balaji Venkat), также выступили Том Кинсаид (Tom Kincaid, EDB), Суджатха Мандава (Sujatha Mandava, Google), Суджит Курувилла (Sujit Kuruvilla, Microsoft) и Джим Млодженски (Jim Mlodgenski, Amazon Web Services).

А вот что было в прошлом году: PGDay Hyderabad 2024 Reflections. Рефлексии Павло Голуба (Pavlo Golub) не то, чтобы рефлексии. Это, скорее, PGDay Hyderabad 2024 Impressions. Это про атмосферу, не о докладах. В 2 словах: всё понравилось.

PgConf.Nepal 2025

Должна состояться 5-6 мая на курорте Дуликхель в 30 км от Катманду, всего-то на высоте 1550, но красота неземная, судя по фото. Организаторы конференции - Nepal PostgreSQL User Group (NP-PUG) и Postgres Professional.

Регистрация уже идёт и заявки на доклады уже принимаются. Разумеется, будут и прогулки в горы.

Плавно переходим к делам российским:

PGConf.Russia 2025

Плавность обеспечивается там, что из Индии, с PGConf India 2025 привезли полезные контакты и реализовали их в докладчиках и их докладах уже на московской конференции, которая пройдёт с 31 марта по 1 апреля.

В появившемся расписании видим:

Massive Data Ingestion: A Head-to-Head Comparison of Oracle and PostgreSQL Performance and Scalability - Премнат Джангам (Premnath Jangam, CSG International) и

Migrating from Oracle PL/SQL to PostgreSQL PL/pgSQL : Navigating Differences and Optimization Challenges. - Абхинав Сагар (Abhinav Sagar, CSG International).

По миграции ещё целых 6 докладов (один даже туда-обратно):

Михаил Жилин из Postgres Professional расскажет Как PostgreSQL может сделать больно, когда не ожидаешь.

Один из докладов привлёк моё внимание - признаюсь - удивительным названием их тулзы:

Кинцуги — новый инструмент администратора БД - Владимир Комаров (Сбербанк-Технологии). Кстати, Владимир - автор книги, изданной при участии нашего отдела образования: Путеводитель по базам данных. Её можно купить или скачать в PDF.

Не Pgbouncer, но пулер. Не Odyssey, но с корутинами - Тофиг Алиев (Postgres Professional). Позволим себе спойлер: это расширение Proxima - пулер и прокси. Впрочем, это есть в описании доклада.

Но о пулерах есть ещё один доклад - об озоновском пулере: Новый opensource-пулер pg_doorman - Дмитрий Васильев (Ozon).

Ну пусть будет здесь ещё одна парочка:

Движемся на север, как обещано:

Nordic PGDay 2025

Состоится в Копенгагене 18 марта. Появилось расписание. А через день - 20-го будет

pgDay Paris 2025

9-я парижская конференция. Вот расписание. Вот регистрация.

Есть, кажется, такая тенденция: европейские события специально планируют так, чтобы удобно было переместиться с одного на другое. Ниже будет про турне Брюса Момджана.

PGConf.dev 2025

Конференция состоится 13-16 мая в Монреале (не сверял широты Монреаля и Копенгагена, ну и ладно). Организаторы - институция с трогательным названием  Slonik Events Canada плюс дюжина известных инициативных людей из сообщества.

Появилось расписание. Не хотел вдаваться в детали, но нет, невозможно: названия докладов звучат очень завлекательно. Вот лишь некоторые:

Не все мероприятия и выступления технические, есть социальные тоже: 14-го будет Студенческий завтрак, а 15-го - Завтрак Постгресовых Женщин. За 25 минут всё, что нужно знать о Diversity расскажет Стейси Хейслер (Stacey Haysler).

Extension Ecosystem Summit 2025

Конечно, это было сообщение Дэвида Уилера (David E. Wheeler). Саммит пройдёт в рамках PGConf.dev в Монреале 13 мая. Кроме Дэвида в организации его участвуют Флоор Дреес (Floor Drees), Юрий Рашковский (Yurii Rashkovskii), Кит Фиске (Keith Fiske), которые проведут unconference-сессию. Чтобы туда попасть, надо выбрать Additional Option при регистрации, или скорректировать регистрацию.

До этого состоится серия "виртуальных собраний" под маркой Postgres Extension Ecosystem Mini-Summit 2.0. Каждую среду, начиная с 12 марта, стартуют примерно часовые посиделки - контрибьюторы будут говорить о проблемах, способах их решения, что обнаружилось по ходу, и о мечтах об идеальной экосистеме расширений будущего. Вот примерный график::

  • 12 марта: Дэвид Уилер (David Wheeler, PGXN): Состояние экосистемы расширений.

  • [пока без даты]: Питер Айзентраут (Peter Eisentraut, Core Team): Создавая Extension Search Path (“Implementing Extension Search Path").

  • [пока без даты] Кристоф Берг (Christoph Berg, Debian): “Упаковывание расширений в Apt (Apt Extension Packaging.

  • [пока без даты и без темы].

  • 7 мая: Габриэле Бартолини (Gabriele Bartolini, CNPG) Управление расширениями в CloudNativePG.

Все эти сессии будут записаны и выложены на канале PGConf.dev YouTube, а будут ещё и расшифровки. Чтобы узнать детали, присоединяйтесь к meetup.

PostgreSQL Conference Europe 2025

15-я по счёту. На этот раз состоится в Риге 21-24 октября.

прошедшие

Postgresql at FOSDEM 2025

В этом году FOSDEM PGDay прошёл в Брюселе 31 января. Это однодневное и однопоточное мероприятие, вот доклады. Postgres давно застолбил на FOSDEM свой стенд и Devroom (там выступления будут 2 февраля). А вообще PGDay там по счёту уже 11-й.

Список докладов есть в расписании. На самом PGDay есть такой, например, доклад:

What did I learn running Postgres on Windows - Илья Космодемьянский (Ilya Kosmodemiansky, Data Egret).

А есть и такое на Devroom:

From Queries to Pints: Building a Beer Recommendation System with pgvector - Анжей Новицки (Andrzej Nowicki) работает в CERN в команде, отвечающей за базы данных.

Tuning Postgres for Analytics - Карен Джекс (Karen Jex). Из Interview with: Karen Jex на PostgreSQL Person of the Week мы знаем, что Карен переехала с мужем из Англии во французские Альпы из-за страсти к маунтин-байку.

PostgreSQL Berlin February 2025 Meetup

Андреас Шербаум (Andreas 'ads' Scherbaum) пишет о небольшом, но понравившемся ему мероприятии, которое 4 февраля традиционно устраивала Zalando.

Андреас говорит, что Брюс заехал в Берлин после FOSDEM. Всем, говорит Андреас, очень понравилось. Доклад назывался Databases in the AI Trenches - выложены слайды. У Андреаса на каждого, практически, есть досье (очень удобно), есть и на Брюса: PostgreSQL Person of the Week interview with Bruce Momjian. Ещё он отметил и такой доклад Каарела Моппела (Kaarel Moppel) - фрилансера из Эстонии: Spot VMs and Postgres. И Neon-овского Алексея Кондратова (Alexey Kondratov) тоже послушал: Serverless PostgreSQL: the journey from ~1s startup time to 10s and back.

PUG Inaugural Meetup 2024

Эмма Сароян (Emma Saroyan) создала группу сообщества Armenia PUG и организовала в Ереване их первый Митап. Помогли его организовать Элизабет Кристенсен (Elizabeth Christensen, Crunchy Data) и Валерия Каплан (Valeria Kaplan, Data Egret). Конечно, было выступление Брюса Момджана. А Кристина Момджан поработала в качестве фотографа. Вот видео и фото.

Новости коммитфестов

Commitfest 2025-03

Мартовский коммитфест должен закрыться 31 марта. Обратите внимание, как переделали страничку:

Наглядности явно прибавилось. Йелте Феннема-Нио (Jelte Fennema-Nio) в этом письме насчитал аж 15 улучшений по этой части.

В PgPedia Week есть раздел Интересные коммиты. За эту неделю, например, в их списке 40 коммитов. Но это только список.

А мы напоминаем об аналитических обзорах коммитов, которые делает Павел Лузанов.

PostgreSQL 18: Часть 4 или Коммитфест 2025-01

Много новшеств в наглядности мониторинга:

Кроме того:

И не только.

На английский Александром Мелешко переведён PostgreSQL 18: Part 2 or CommitFest 2024-09.

Итого:

  1. 2024-07 (ru/en),

  2. 2024-09 (ru/en),

  3. 2024-11 (ru),

  4. 2025-01 (ru).

Шарды, распределённые и железные базы

Postgres Professional обновила СУБД Postgres Pro Shardman

В версии 14.15.4 - поправки, в версии 14.15.3 немало нового.

Среди ключевых изменений в ядре и в расширении:

  • Добавлено представление shardman.pg_indoubt_xacts, которое отображает информацию о транзакциях в состоянии InDoubt.

  • Добавлены глобальные представления для системного каталога и статистики. системного каталога и статистики.

  • Добавлена возможность вынесения на удалённый сервер операций преобразования типов.

  • Добавлено ограничение для сегментированных таблиц, которые могут ссылаться на самих себя, только если внешний ключ ссылается на ту же секцию сегментированной таблицы.

Также модуль etcd обновлён до версии 3.5.18.

В утилитах управления:

Полный список обновлений Postgres Pro Shardman можно увидеть в замечаниях к выпускам 14.15.314.15.4.

Distribute PostgreSQL 17 with Citus 13

Найсила Пука (Naisila Puka), разработчица в команде Postgres & Citus в Microsoft, знакомит с деталями поддержки версии 17 PostgreSQL в версии 13 Citus, а точнее 17.2 в 13.0. Она выделяет 4 пункта как самые важные:

Кроме того Найсила анонсировала Citus 13 elastic clusters (preview) feature на Azure Database for PostgreSQL - Flexible Server с поддержкой PostgreSQL 17 - это в ближайшем будущем.

pg-sharding/spqr: Stateless Postgres Query Router

Такое любопытное расширение появилось не сейчас. Ещё на Highload++ 2022 Денис и Кирилл сделали 50-минутный доклад SPQR: горизонтальное масштабирование PostgreSQL. На сайте PostgreSQL.org сообщение о версии 1.0.0 появилось в декабре 2023. Сейчас вышла версия 2.4.1, а мажорная 2.4.0 вышла 3 недели назад, и в ней много нового.

Разрабатывают это расширение Денис Волков aka Denchik и Кирилл Решке aka reshke из команды Yandex Cloud. Недавно прибавился новый контрибьютор - Мохамад Фадайл (кажется так, Mohamad Fadhil) aka sdil, живёт в столице Малайзии.

Железная база

Не в смысле ПАК - программно-аппаратного комплекса (о нём будет ниже). В номере Postgresso Postgresso 8-9 (45-46), то есть осенью 2022 года мы писали:

FerretDB (бывшая MangoDB — через a!) создавалась как де-факто опенсорсная замена MongoDB. Это прокси, конвертирующий запросы протокола MongoDB 5.0+ в SQL, используя PostgreSQL как движок базы данных. Технический директор — Алексей Палажченко (Alexey Palazhchenko), организатор конференции по Go GopherCon Russia. Самая свежая версия — 0.5.4. Технические детали по ссылке.

Чуть позже - в Postgresso 10 (47) - выяснилось, что Чи Фуджи (Chi Fujii) пишет о способе, каким FerretDB решают проблему совместимости монговского BSON и постгресового JSONB (PostgreSQL — движок FerretDB, понимающей протокол MongoDB). BSON существенно отличается от JSONB. Например, BSON содержит длину документа и в нём важен порядок полей. Поэтому BSON сначала сериализуется в некий PJSON, изобретённый FerretDB, а тот уже дальше сохраняется с использованием типа JSONB. Для сохранения порядка полей используется массив. Основатель компании, Алексей Полажченко в комментариях поясняет, что есть трудности с дублированием имён полей и с построением индексов, но идеи есть, работа идёт.

Ну что же, мы дожили до FerretDB 2.0 GA: Open Source MongoDB alternative, ready for production, об этом пишет всё тот же Полажченко в блоге FerretDB в соавторстве с сооснователем компании Питером Фаркасом (Peter Farkas). На сегодня Алексей - технический директор (CTO), а Питер - гендир (CEO).

FerretDB 2.x использует майкрософтовское расширение DocumentDB PostgreSQL. Azure Cosmos DB for MongoDB (vCore) использует то же расширение. В результате интеграции пользователи могут бесшовно перемещать нагрузки между FerretDB и Cosmos DB. Есть roadmap и говорится, что обратная связь от читателей и пользователей поможет этот роудмеп скорректировать.

Среди статей в блоге компании есть и о OpenTelemetry context propagation in FerretDB. Это нам интересно с точки зрения того, что поддержка OTEL сейчас появилась в PPEM:

Postgres Pro Enterprise Manager 2.0.1: новые возможности для управления и мониторинга СУБД

В версии 2.0.1 платформа получила обновленную архитектуру и совершенно новый технологический стек. Сохранив ключевые возможности предыдущей версии, в PPEM 2.0.1 реализованы:

  • Повышенная производительность благодаря преимуществам языка Golang в многопоточных задачах и эффективной работе с ресурсами.

  • Упрощенная дистрибуция и инсталляция за счет отсутствия необходимости в установке дополнительных зависимостей по сравнению с предыдущей версией PPEM.

  • Гибкость мониторинга и интеграция с новым продуктом компании — Postgres Pro OpenTelemetry Collector, который позволяет собирать метрики и логи с экземпляров СУБД, а также показатели операционной системы и работать с внешними хранилищами.

  • Значительная оптимизация и устранение ошибок.

Также для PPEM разработана первая версия пользовательской документации, которая уже доступна в репозитории Postgres Professional в пакетах для установки.

С выходом версии 2.0.1 PPEM возвращается к графику квартальных обновлений. В ближайших релизах будут добавлены: поддержка встроенных отказоустойчивых кластеров BiHA, профилирование ожиданий, нотификации по триггерам, интеграция с инструментами оптимизации планов запросов, новые дашборды и многое другое.

Если всё же хочется чего-то этакого на тему голого железа, то вот статья о необычном решении, которое мы сейчас не будем расписывать - там много надо уяснять самим и объяснять, начиная с концепции Unikernel: Cloudflare, Unikernels & Bare Metal: Life of a Prisma Postgres Query. Да и железо там не такое уж голое.

А вот это уже самый настоящий ПАК: железо + Postgres = Postgres Pro Machine. О нём (о ней) скоро расскажут.

Книги, инфоресурсы, олимпиады, стажировки

Postgres Professional обновила популярные книги по PostgreSQL

У брошюры «Postgres: первое знакомство» для начинающих специалистов вышло уже 11-е издание, а совокупный тираж «книжки-малышки» превысил 11 000 книг. В текущем варианте обновлена традиционная глава о новинках в PostgreSQL 17. В скором времени ожидается перевод на английский язык.

Легендарная книга «PostgreSQL 17 изнутри» от Егора Рогова, директора по разработке образовательных программ Postgres Professional, ориентирована на более опытных читателей. Обновленное издание также учитывает изменения в PostgreSQL 17, добавлен материал про использование ресурсов при планировании запросов.

«PostgreSQL. Профессиональный SQL» – вторая книга Евгения Моргунова, доцента СибГУ им. М.Ф. Решетнева, по совместительству – сотрудника Postgres Professional, который использует в работе PostgreSQL более 25 лет.

Первая книга «PostgreSQL. Основы языка SQL» охватывала базовую часть учебного курса по языку SQL, а новая описывает расширенные возможности открытой СУБД. Материал дополнен практическими примерами, заданиями и упражнениями после основного текста каждой главы. Изучать пособие можно как под руководством преподавателя, так и самостоятельно. Книгу уже можно купить в издательстве ДМК Пресс, а бесплатная электронная версия будет выложена на нашем сайте в разделе Книги.

Отдел образования Postgres Professional разработал более 15 образовательных курсов и книг, свободно доступных на сайте компании.

Introduction to PostgreSQL for the data professional

Авторы - регулярно упоминаемый у нас Райан Буз и нередко упоминаемый Грант Фритчи (Ryan Booz & Grant Fritchey). Приглашают: от первого запущенного Postgres, к бэкапам, конфигурированию серверов. Обещано, что читатель узнает о процедурных языках Postgres, о мониторинге, индексах и многом другом. Книга электронная и бесплатная. Но надо будет заполнить анкетку.

Free eBook: Migrating your SQL Server Workloads to PostgreSQL

Тема, думаю, многих заинтересует. Тут есть нюанс: в мае 2020 вышло 1-е издание этой книги Шамиля Ахмеда (Shameel Ahmed) и его можно скачать бесплатно. А вот 2-е издание вышло в октябре прошлого года, и оно пока за денюжку. Вот что туда добавил автор:

Гл.1: Начинаем.

Гл.2: Введение в PostgreSQL (новая)

Гл.3: Сравнение платформ.

Гл.4: Процесс миграции.

Гл.5: PostgreSQL в облаке/PaaS (новая)

Гл.6: Мониторинг и высокая доступность (отчасти новая)

Гл.7: Безопасность (новая)

Гл.8: Советы по миграции (новая).

Между прочим, читатели нам присылают интересные ссылки. Присоединяйтесь к этому движению. Эту ссылку и следующую, например, нам прислала Анастасия Ростова. Спасибо, Настя.

PCI - PostgreSQL Compatibility Index

  • PostgreSQL : 100%

  • Neon : 100%

  • pgEdge_platform : 100%

  • AlloyDB : 95.25%

  • AuroraServerlessV2 : 95.25%

  • YugabyteDB : 85.08%

  • CockroachDB : 40.21%

  • AuroraDSQL : 21.05%

Всё понятно из названия. Но дело не в % и не в списке - он пока коротенький. Интересно вот что: можно выбрать вендора и категорию функциональности и увидеть матрицу с галочками и крестиками. Например, берём AuroraServerlessV2 и performance. Видим, что нет Unlogged tables.
А можно взять несколько баз. Добавим, скажем, YugabyteDB. Поищем, что не так. А вот что: у YugabyteDB проблемы в разделе data types: нет геопространственных типов.

Интересная игра, и она будет ещё интересней, когда добавятся (сами? админами?) другие СУБД.

А занимается этим некто secp256k1-sha256 он же Mayur. Да, Майур - есть такое индийское имя. О себе он говорит необычное: 15 Years of Database Mastery and Comedy. Ничего себе: СУБД-комедиант. У него есть блог Drunk DBA.

Там ничего такого особо алкогольного и шокирующего нет. Можно найти такое:

Schrödinger’s Backups: A Lesson in Uncertainty или такое:

Oracle to Postgres : Happily Ever After edition, где есть вполне нетривиальные рассуждения и случаи.

PostgreSQL Compatibility Index: The Fellowship of the Database - здесь дополнение к его же PCI, разбор некоторых конкретных недостатков СУБД и о тестах, которыми он эти недостатки обнаруживает.

По образованию этот СУБД-комедиант физик: M.Sc. in Phisics (магистр), хобби - астроном. Почти как основатели Postgres Professional, только у тех научные степени посолидней.

«Универсиада Алтая» — открытая межрегиональная олимпиада по программированию

12 апреля Алтайский государственный технический университет им. И.И. Ползунова при поддержке Postgres Professional проведет открытую межрегиональную олимпиаду по программированию. 

  • Рабочие языки конкурса — C/С++ и Python3, примеры заданий универсиады доступны на сайте.

  • Олимпиада включает 1 тур, он пройдет очно 12 апреля. Для отработки навыков  предусмотрена тренировочная сессия 7 апреля.

  • Участники — студенты и школьники от 15 лет до 21 года включительно.

  • Победители и призеры получат +5 баллов при поступлении в АлтГТУ им. И.И. Ползунова, также финалистов ждут денежные и ценные призы, приглашения на стажировки.

Для участия необходимо зарегистрироваться на сайте до 31 марта, количество мест ограничено. Универсиада пройдет очно в АлтГТУ им. И.И. Ползунова. Регистрация.

Курсы DBA2 теперь по 16-й версии PostgreSQL

Материалы DBA2 выложены на сайте. В новой версии был переработан материал ряда тем и добавлены новинки версий PostgreSQL 14-16. Обновление выполнили Игорь Гнатюк и Илья Баштанов. Для чтения курса преподавателям потребуется сдать переходный тест DBA2-13 → DBA2-16. Для записи преподаватели могут связаться с нами по адресу edu@postgrespro.ru.

PGStart 2025 — открыт прием заявок на стажировку в Postgres Professional

Вот прием заявок. До 15 апреля открыт прием заявок по направлениям:

  • Инженер по производительности,

  • Инженер по отказоустойчивости СУБД,

  • DevOps-инженер,

  • QA-инженер.

После рассмотрения заявки кандидатам придет тестовое задание, которое нужно решить и отправить до 20 апреля. Далее отклик рассмотрят и до 6 июня стажеру отправят ответ и приглашение на собеседование. 

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

Некоторые релизы

Вышли Postgres Pro Enterprise 17.4.1 и его собратья. Пусть на этот раз наше сообщение будет в такой форме:

Остановимся на 17.4.1. Не пропустите такие важные вещи, которых многие ждут:

Добавлено расширение pgpro_gbtree, позволяющее создавать и использовать глобальные индексы для секционированных таблиц. Глобальный индекс создаётся для одного или нескольких столбцов секционированной таблицы и не включает ключ секционирования. Это позволяет выполнять сканирование индекса без перебора всех секций

Обновлено решение BiHA — включены следующие возможности, усовершенствования и исправления:

Реализован параметр bihactl init --enable-proxima, позволяющий включить расширение proxima при создании BiHA-кластера.

Реализована возможность уменьшения параметра конфигурации max_connections в BiHA-кластере без отключения расширения biha. Теперь можно уменьшить значение параметра на узле-лидере и перезапустить его, чтобы изменения вступили в силу. Ранее значение max_connections можно было уменьшить только при временном удалении расширения biha из shared_preload_libraries.

SynchDB 1.0

Это расширение с открытым кодом, которое разработала Hornetlabs Technology. С ним возможна прямая репликация в PostgreSQL из гетерогенной среды с MySQL, MS SQLServer, Oracle и др. Оно обеспечивает синхронизацию, так что ничего больше для этого не требуется, работает - как утверждают - надёжно и эффективно.

Не путать с pgsync: Postgres to Elasticsearch/OpenSearch sync. Тоже интересная вещь, но это для удобства интеграции Postgres с Elasticsearch/OpenSearch.

Немного о миграции

Replacing Oracle Hints: Best Practices with pg_hint_plan on PostgreSQL

Лукас Фиттл (Lukas Fittl, pganalyze) начинает с главного: когда (и когда не надо) использовать хинты. Просто взять все хинты Oracle и перенести их в Postgres это из пушки по воробьям (overkill), а иногда и вредно (контрпродуктивно). Надо смотреть, где хинты хорошо вписываются в контекст хорошо настроенного окружения Postgres.

Далее идут главки:

  • полагаясь на стоимостную модель планировщика,

  • основная проблема планировщика,

  • когда хинты помогают,

  • отображение (mapping) оракловых хинтов на pg_hint_plan.

Ну а дальше он разбирает хинты более конкретно и по категориям.

ИИ

Ce Gao
Сооснователь компании Tensorchord.ai Си Гао

VectorChord: Store 400k Vectors for $1 in PostgreSQL

Си Гао (Ce Gao, я пока далёк от освоения китайской транслитерации - догадки) - сооснователь компании Tensorchord.ai. Не мог отказать себе поместить эту выразительную фотографию. Там, кажется, все молодые и все с китайскими фамилиями. Пишут статьи. В этой говорится: представляем VectorChord - наследника pgvecto.rs, которого он быстрей в 26 раз. А Pinecone, с которым сравнивают все, он опередил в 6 раз (то есть предшественник заметно уступал Pinecone). Всё это в пересчёте на $1. Но дело (как утверждают в Тензоркорде) даже не в этом. HNSW-индексы нормально работают, когда порядок - 1 млн векторов, а с 10 и 100 млн они не справляются за разумное время и отжирают слишком много памяти.

Поэтому разработчики вспомнили о IVF и применили к нему алгоритмы RaBitQ. Сначала работают с компактными 32-битными векторами, а потом для отобранных векторов-счастливчиков уже полноценно переранжируют (reranking). Кстати, Гао один из авторов научной статьи о RaBitQ: RaBitQ: Quantizing High-Dimensional Vectors with a Theoretical Error Bound for Approximate Nearest Neighbor Search.

В статье немало графиков, иллюстрирующих испытание на бенчмарке Myscale single thread benchmark с датасетом сначала LAION 5M, а потом и 100M. И замахиваются на миллиард векторов. И, конечно, есть облачное решение - PGVecto.rs Cloud.

Выбор именно этой статьи в их блоге почти случаен, вас, может, заинтересует другая статья. Скажем, VectorChord 0.2: 60K-Dimensional Vectors, 50% Faster Indexing with ARM его соавтора по той статье о RaBitQ.

Automating Data Summarization in PostgreSQL With Claude

Статья от Timescale выглядит как-то более привычно и мучиться с транслитерированием имени автора не надо: автор - команда Timescale. Саммаризация это просто составление саммари - будь то научная статья или отзыв на товар. Модель -  Claude 3.5 Sonnet от Anthropic. Для работы с ней используются расширение pgvector и таймскейловское расширение pgai, где есть нужные функции для работы с Anthropic (и не только). О pgai есть, например, здесь: A suite of tools to develop RAG, semantic search, and other AI applications more easily with PostgreSQL.

Building a semantic movie search demo with pgvector and Next.js

Фатих Алтинок (Fatih Altinok) использует для этого Slonik, бесплатную Supabase, в которой хранятся сами фильмы из The Movies Dataset и соответствующие им эмбеддинги, скромную модель gte-small, даёт ссылку на 350-страничный труд Relevant Search (c Solr и Elasticsearch), который можно читать бесплатно.

Smarter Postgres LLM with Retrieval Augmented Generation

в блоге Crunchy Data Пол Рэмзи (Paul Ramsey) пишет на тему, исписанную до дыр - RAG. Но делает это изящно, ненавязчиво, как он умеет. Он берёт Llama3-8B, своё расширение pg-openai - OpenAI API access extension for Postgres - и начинает издеваться над моделью, спрашивая её о Звёздном Пути (Стартреке). Модель мало того, что пересказывает несуществующий эпизод, ещё и придумывает своих героев - хотя, признаёт Пол, - вполне в духе фильма ('treckish'). Покончить с глюками, сузить расширившееся её сознание можно просто: подкормить модель "фактами". В финале мы уже имеем дело с излеченной Llama3-8B.

(ГЕО)Графы

Postgres as a Graph Database: (Ab)using pgRouting

Статья гендира и сооснователя Supabase Пола Копплстоуна (Paul Copplestone). Идея статьи в том, что нередко использовать для работы с графами такие специальные расширения как Apache AGE или графовые СУБД как Neo4j - это бить из пушки по воробьям. Можно обойтись расширением Postgres PostGIS, а в нём pgRouting, в котором есть всё для полноценной работы с графами, хотя изначально создавалось это расширение для решения геозадач.

Статья не столько о том, как реализовать графовые возможности, сколько о главном - зачем. И он в качестве главок приводит "юзкейсы":

  • социальные сети,

  • планирование задач (шедулер),

  • маршрутизация с обратным прокси-сервером, учитывающая размещение ресурсов (reverse proxy routing based on resource allocation),

  • рекомендательные движки в духе YouTube,

Конечно, первое, что приходит в голову - действительно анализ соцсетей. Но есть и другие - дополним автора - вполне актуальные, даже модные задачи: использование в технологиях ИИ, например, в прошлом номере мы писали:

Савелий Батурин использовал промежуточное кодирование информации в графы, для чего использовался язык графовых запросов Cypher.

О самом расширении документация pgRouting расскажет подробней. Ну и на сайте Supabase тоже есть документация, чтобы запускали Supabase database.new в облаке и экспериментировали с графами в том числе.

Representing graphs in PostgreSQL with SQL/PGQ

Джон Невин (John Nevin) из EDB отталкивается от статьи Representing graphs in Postgresql своего коллеги Ричарда Тауэрса (Richard Towers), который предлагает способы обхода графа с помощью SQL. Ричард использует рекурсивные CTE и предлагает читателям прислать свои способы обхода графов.

Джон напоминает, что в стандарт SQL:2023 ISO вошёл SQL Property Graph Queries (SQL/PGQ). Поэтому работа над реализацией таких запросов вовсю идёт и обсуждается в списках рассылки pgsql-hackers. И хотя до официальной готовности ещё, видимо, далеко, уже можно попробовать пропатчить PostgreSQL и посмотреть, как это будет работать.

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

 Дальше происходит нечто ещё более странное: автор говорит, что, поскольку SQL/PGQ ещё недоделан, то и документация хромает. Поэтому ... почитайте документацию Oracle.

Как бы то ни было, Джон применяет операторы <-[]- и -[]->, выясняя кто чей родитель и кто чей ребёнок, расправляется с френдами френдов и показывает, насколько компактней код SQL/PGQ на типично графовых задачах.

Заодно вам ссылка на исторический экскурс Пола Рэмзи (Paul Ramsey): The Early History of Spatial Databases and PostGIS.

Некоторые статьи

В этом выпуске получилось мало статей. Попробуем исправить собранием статей Меллани20 (melanny20). В собрании уже 6 статей, и, может, пока я это пишу, вышла 7. Они то на английском, то на русском, происхождение их тоже, как выяснилось, разное. Общее то, что они входят в хаброблог Postgres Professional.

What's New in Postgres Pro Enterprise 17: From Proxima to Intelligent Data Management

Есть русский оригинал, он доступен: Что нового в Postgres Pro Enterprise 17: от Proxima до интеллектуального управления данными. Автор - Дмитрий aka LesnoyChelovek. Между прочим, не просто человек и не просто лесной, а Head of Technical Editorial Board. Proxima - это новый важный продукт компании. Он развивается, но уже многое может.

The Future of PostgreSQL: How a 64-bit Transaction Counter Solves Scaling Issues

А у этой статьи Будущее PostgreSQL: как 64-битный счетчик транзакций решает проблему масштабирования автор оригинала - Loxmatiy Mamont, вы видели ссылки на его статьи в прошлых выпусках.

Он же автор статьи Что будет интересного в pg_probackup 3. Или у Меллани20:

What’s in Store for pg_probackup 3

Иногда меняется даже жанр: Asymmetric Join в PostgreSQL как эволюция Partitionwise Join

Это - туториал, учебное пособие. Автор оригинала - Андрей Лепихов. Мы его нередко цитируем. Статью можно увидеть и на сабстеке: PostgreSQL Asymmetric Join technique as a Further Evolution of Partitionwise Join.

И вот это тоже туториал: pg_profile и pgpro_pwr: анализируем производительность БД,

но получается, что это уже сама (сам?) Меллани20. Как и в этом туториале: Устраняем эффект шумного соседа в PostgreSQL с помощью cgroups.

Паркет

Incremental Archival from Postgres to Parquet for Analytics

Марко Слот (Marco Slot) в блоге Crunchy Data пишет об интересном расширении для взаимодействия с Паркетом. Вообще расширений два:

  • pg_parquet - для экспорта и импорта результатов запросов в формат файлов Parquet для объектного хранилища с использованием обычной команды COPY.

  • pg_incremental - это расширение может запускать команду для бесконечного числа временных интервалов или файлов; она работает поверх pg_cron.

Марко демонстрирует, что, используя второе из этих расширений, можно написать простенькую функцию на PL/pgSQL, которая ещё и принимает параметры (интервал времени прежде всего). Ну а первое, кронообразное расширение её в нужные моменты запускает.

После этого он говорит об аналитических запросах к S3, но это уже со специальным пакетом от своей фирмы: Crunchy Data Warehouse.

Некоторые полезные инструменты

Postgress Query Plan Visualization Tools

  1. Текстовый формат - по умолчанию.

  2. Explain Depesz.

  3. Tatiyants PEV. *)

  4. Explain Dalibo (PEV2) **)

  5. pgMustard (of course) ***)

  6. Другие ****)

*) В 2016, Алекс Татьянц (Alex Tatiyants) PEV (Postgres Explain Visualizer), web-версия тоже свободная, лежит на tatiyants.com/pev. Себе в заслуги он ставит, однако, JS.js и придуманные им движения: MoreSQL и GDD (Guilt Driven Development). Ещё и музыку сочиняет (не в моём вкусе).

**) Of Course потому, что автор как раз из pgMustard - это хорошо знакомый читателям Майкл Кристофайдес (Michael Christofides). Соведущий (с Николаем Самохваловым - Nikolay Samokhvalov) нашего любимого Postgres.FM.

***) Вышла pev2 (Postgres Explain Visualizer 2,

****) То есть pganalyze, Google Cloud SQL, MySQL Explain (автор не обещал эксклюзив Postgres) и "довольно популярный русский инструмент визуализации планов, которые я в данный момент не буду продвигать".

rsql от Тесея

Это простенький интерфейс командной строки. Зачем он, когда есть psql? Ответ очевиден, если почитать раздел Источники данных: Arrow, Avro, CockroachDB, CSV, Delimited, DuckDB, Excel, FWF, JSON, JSONL, LibSQL (Turso), MariaDB, MySQL, ODS, Parquet, PostgreSQL, Redshift, Snowflake, SQLite3, SQL Server, TSV, XML, YAML. Умеет работать с emacs и vi.

Эту утилиту предлагает Тесей (который сокрушил Минотавра). Ещё на его гитхабе есть встраиваемый Postgres - чтобы упаковать его вместе с приложением, или подкачивать из интернета.

sqldef

Эта утилита общается с куда более узким кругом: MySQL, PostgreSQL, SQLite3, SQL Server. Зато предназначена для идемпотентной работы со схемами данных. Опциями можно задавать, что можно, а что нельзя. С Postgres работает через psqldev, почти psql:

# Run without dropping existing tables and columns
$ psqldef -U postgres test < schema.sql
Skipped: 'DROP TABLE users;'

# Run dropping existing tables and columns
$ psqldef -U postgres test --enable-drop-table < schema.sql
Run: 'DROP TABLE users;'

sq | wrangle data

Мол, sq - это швейцарский нож (сделанный в штате Колорадо Нилом О`Тулом (Neil O'Toole), выложен в открытый доступ на его гитхабе. Поможет исследовать данные, экспортировать их, составлять запросы к ним. Работает с разными базами. Умеет, например, Import Excel worksheet into Postgres table.


На этом пока всё. До встречи. Особенно до встречи на PGConf.Russia 2025!

Теги:
Хабы:
Всего голосов 7: ↑7 и ↓0+9
Комментарии0

Публикации

Информация

Сайт
www.postgrespro.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Иван Панченко