Как стать автором
Обновить
115.91

PostgreSQL *

Свободная объектно-реляционная СУБД

Сначала показывать
Порог рейтинга
Уровень сложности

Обзор пяти докладов конференции PgBootcamp 2025

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.2K

В статье обзор пяти докладов прошедшей в апреле 2025 года конференции PgBootcamp. Даже на тех конференциях, которые я посещал, мне было бы интересно почитать обзор докладов, но я их не встречал. Иногда можно найти статью к докладу, но для большинства докладов на конференциях такого формата нет. По какой-то причине, обзоры докладов с конференций - редкость. Я решил написать обзор, возможно он окажется полезен.

Доклады конференции PgBootcamp недавно выложили в общий доступ и их можно скачать и посмотреть.

 Введение

Доклады конференций полезны тем, что содержат описание того, что актуально при работе с PostgreSQL. Организаторы выбирают наиболее интересные доклады и не пропускают то, что уже всем известно.

О конференции PgConf я знал давно, а о конференции PgBootcamp я узнал год назад. За это время прошли три конференции: в Казани, Минске и Екатеринбурге. Архив докладов есть на сайте pgbootcamp.ru (регистрироваться на сайте не нужно, в "Программе" - список докладов, внизу каждого доклада ссылка на видеозапись доклада).

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

Читать далее

LLM пайплайны укрощают сложность баз данных, или как мы подружили ИИ с БД без ИБД

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров4.7K

Большие языковые модели (Large Language Model, LLM) используют в разных областях: с их помощью генерируют программный код, ищут информацию, озвучивают реплики чат-ботов. А вот при работе с реляционными данными языковые модели часто ошибаются. 

Чтобы справиться с этими ошибками, в мы разработали три пайплайна для работы с базами данных. Эти пайплайны представляют собой цепочку связанных между собой языковых моделей: каждая из них генерирует свой ответ, и следующая модель работает с ответом предыдущей. Таким образом мы получаем дополнительный контекст, и запрос к базе данных становится точнее. 

Читать далее

Использование Daterange для поиска разрывов истории записей SCD2

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров699

Привет, Хабр!

Меня зовут Сергей Аладышев, работаю системным аналитиком на протяжении 10 лет, и в работе часто сталкиваюсь с задачами, в том числе типовыми, решения для которых выглядят понятными, но не всегда оптимальными, а главное затратными по времени.

Появляется непреодолимое желание их оптимизировать. Сегодня хочу обсудить похожую задачу: «поиск разрывов истории записей», она же: «поиск разрывов истории SCD2 в SQL». С задачей сталкивался несколько раз, но статей с её разбором не нашел, поэтому решил, что тема актуальна.

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

Читать далее

Резервное копирование PostgreSQL по-взрослому

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров20K
image

Базы данных — замечательный инструмент, без которого сложно представить современное приложение. И как бы сильно я ни любил использовать БД, я просто ненавижу писать SQL-запросы. Поэтому однажды задался вопросом, кто мог бы делать это за меня, при этом несильно теряя в качестве. И, конечно же, на ум пришёл мой AI-друг. Тогда остаётся одна проблема, как скормить ему мою БД. Тут на помощь приходит резервное копирование! Выполнив все необходимые задачи, я решил углубиться в тему и поделиться с Хабром, какие вообще есть виды и, конечно, сравнить их между собой.
Читать дальше →

D7 — не показатель: ищем правду

Время на прочтение5 мин
Количество просмотров829

Привет, Хабр!

Сегодня поговорим про ретеншн — ту самую метрику, от которой часто пляшут все продуктовые команды. Вы знаете: «вернулся через 7 дней» (D7) — и сказано, что мы класс

Но на деле класс ломается, как только продукт усложняется. В этой статье рассмотрим, почему классический D7 retention не работает, как построить настоящие кривые удержания через когорты, в чём разница между recurring vs one-shot поведением, какие есть альтернативные метрики и сравним три метода.

Читать далее

Шардировать или не шардировать

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.5K

Если ваш сервис рассчитан на миллиарды пользователей, то несомненно возникнет вопрос о масштабировании.

Ранее, автор уже рассмотрел способ масштабирования через партицирование. В данной статье рассмотрим шардирование сервиса Баланс дабы обеспечить его работу с миллиардами пользователей без необходимости использовать суперкомпьютеры, а при желании вовсе запускать на "кофеварках".

В чём вопрос?

О переупорядочении выражений в Postgres

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.9K

Сегодня я хочу затронуть тему дополнительных ухищрений, которые могут позволить ускорить выполнение запроса. В данном случае речь пойдёт о перестановке условий в выражениях фильтрации, JOIN'ов, HAVING-клаузах и прочем. Идея заключается в том, что получив негативный результат в одном условии из цепочки выражений, объединенных оператором AND, равно как позитивный результат в одном из условий, объединённых оператором OR, можно не вычислять все последующие и сэкономить вычислительный ресурс. Что это даёт и как конкретно реализовать - об этом ниже.

Читать далее

Русский след в истории логотипа PostgreSQL

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров9.4K

Каждый, кто работает с PostgreSQL, знает его символ — синего слона. Но задумывались ли вы, откуда он взялся? Его история — это не результат работы дорогого брендингового агентства, а захватывающее повествование о зарождении IT-сообщества, питерских энтузиастах, случайных файлах и том, как «маленький презент» стал мировым символом.

Узнать историю slonik.gif

Оптимальная настройка Postgres Pro в один клик с pgpro_tune

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.9K

Представьте знакомую ситуацию: утро понедельника, задачи сыпятся одна за другой. Перед вами задача срочно развернуть новый сервис на базе Postgres Pro. Или, возможно, в эти выходные вы обновили железо своего сервера базы данных, увеличили количество CPU и объём RAM. Расскажем, как быстро привести СУБД в состояние, оптимально подходящее новому оборудованию и текущим нагрузкам.

Читать далее

Как мы упростили обновление СУБД Pangolin: показываю бэкенд решения

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров2.3K

Привет, Хабр! Меня зовут Николай Литковец, я инженер-разработчик в СберТехе, развиваю СУБД Pangolin — это реляционная СУБД, целевая в Сбере и не только. До недавнего времени у нас было два типа обновлений СУБД — минорное и мажорное. Минорное обновление — быстро и сравнительно просто, мажорное — долго, муторно, со значительными затратами ресурсов сервера. Мы стали думать, можем ли мы где-то обойтись без перехода на мажорные версии? Нашли сценарий, где это было возможным и через время у нас появилось минорно-мажорное обновление, которое теперь экономит нам силы и время. В этой статье расскажу про создание инструмента, который позволил нам устроить эту реформу, как мы его делали и обходили риски и что нам это дало.

Читать далее

От хаоса к порядку: автоматизация мониторинга СУБД в гибридных средах

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

Всем привет! Недавно закончился PGConf, где большая часть докладов была посвящена новым фичам PostgreSQL Pro, и лишь немногие касались ванильной версии. В прометей Лаб я влился с октября 2024 года и начал развивать сервис администрирования баз данных. Сегодня я хочу поделиться нашим подходом к мониторингу, который не требует лицензий, при этом экономит время и нервы.

Если вы DBA, то вы наверняка сталкивались с задачей мониторинга разных инстансов баз данных — PostgreSQL, MSSQL, MariaDB, Oracle или что-то из NoSQL — на разных ОС, от bare metal до PaaS. Настройка мониторинга в таких условиях может занять недели, а ошибки в алертинге приводят к простоям.

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

Я тоже через это проходил, поэтому в Prometey Lab мы сфокусировались на переносимом, масштабируемом, k8s ready решении, на типовых компонентах которое можно оперативно развернуть и с минимальной болью занести в разрешенный техстек. На последней демо, при наличии тех учеток в бд, весь процесс подключения нового клиента к мониторингу занимает 40 минут и поддерживает кастомизацию под любые нужды.

В этой статье я расскажу, как мы этого добились, поделюсь нашим стеком, примерами конфигураций и планами на будущее. Если вы сталкивались с подобными задачами, возможно эта статья натолкнет вас на мысли как «расшить» направление мониторинга и сократить время реакции на инциденты.

Читать далее

CRUD на PHP с использованием файберов и пула соединений с PostgreSQL

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.1K

В этой статье я подготовил для вас прототип CRUD-приложения, которое использует файберы и неблокирующие(асинхронные) возможности драйвера PostreSQL. Вместе они дают любопытные результаты по производительности и потреблению памяти.

Читать далее

Параметры конфигурации мастера, отслеживаемые репликами PostgreSQL

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров1.8K

Значения восьми параметров конфигурации мастера (primary, ведущего сервера PostgreSQL) сохраняются в управляющих файлах и изменения их значений передаются через журнал (WAL) на реплики. Если реплика открыта для запросов (hot_standby=on), то значения пяти числовых параметров на реплике должны быть не меньше, чем на мастере, иначе процесс startup прекратит накат (replay) журнальных записей. А после рестарта экземпляры реплик не запустятся. В статье рассматриваются эти параметры особенности изменения их значений.

Значения пяти числовых параметров конфигурации, сохраненных в управляющем файле кластера, можно посмотреть утилитой pg_controldata:

Читать далее

Ближайшие события

Только хардкор, только мануал: репликация данных

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров1.7K

Привет, Хабр!

Каждая компания стремится к тому, чтобы данные были не только доступны в нужный момент, но и надежно защищены (спасибо, КЭП!). Более того, необходимость обеспечения безопасности ЗОКИИ и требований по импортозамещению ставит новые задачи в области интеграции систем и миграции данных. Один из способов разобраться с этими вызовами — репликация данных. Она помогает компаниям справляться с растущими нагрузками, обеспечивает защиту данных и облегчает миграцию между различными платформами. Однако ее успешное внедрение требует тщательной подготовки, внимательного выбора стратегии и регулярного мониторинга. Хватит слов – за дело!  В этой статье мы покажем сразу несколько технических решений.

Читать далее

Почему COUNT(*) быстрее, чем COUNT(col) — и когда это не так

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров23K

Привет, Хабр!

Сегодня поговорим про одну из тех тем, что вроде бы тривиальна, но до последней капли грязи тащит за собой внушительный пласт вопросов. Речь пойдёт про COUNT(*) и COUNT(col) в PostgreSQL.

Читать далее

Профессия performance инженер: детектив с лицензией на производительность

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.3K

Медленная работа базы данных высасывает ресурсы и нервы? Вы не одиноки. Но есть эксперты, способные выжать максимум из вашей инфраструктуры. Расскажем, как перфоманс инжиниринг помогает превратить «тормоза» в «ракету».

Читать далее

Аналитические запросы теста TPC-H в PostgreSQL

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.4K

В статье рассматривается использование теста TPC-H с PostgreSQL и проблемы, связанные с запросами Q17-Q20 теста.

Введение

Вместе с PostgreSQL поставляется утилит pg_bench с "TPC-B like" тестом. Кроме этого теста были созданы тесты TPC-R для отчётов, TPC-D для OLAP, TPC-W для заказов в веб-магазине, которые не получили распространения. На основе TPC-D был создан более удачный тест TPC-H для хранилищ данных и аналитических запросов ("OLAP нагрузка"). В тесте используется 8 таблиц и 17 ограничений целостности. В TPC-H выделены номинации по размерам обрабатываемых данных от "до 100Гб" до  30-100Тб. Тест TPC-H предназначен для хранилищ данных, включает в себя 22 запроса, которые называют Q1 ... Q22.

Запросы теста TPC-H не меняют данные в таблицах, а значит, для повторных тестирований не нужно пересоздавать или вакуумировать таблицы. В тестах TPC-B, TPC-C, TPC-E запросы довольно простые. В реальных приложениях запросы более сложные, чем в этих тестах. Поэтому для тестирования того, как СУБД выполняет запросы, которые могут встретиться в реальных приложениях, можно использовать все или отдельные запросы из теста TPC-H. Для быстрого аудита производительности различных СУБД используют вариант с 1Гб данных. В этом варианте запросы выполняются быстро, не нужно много памяти под экземпляр СУБД и много места на диске. Можно найти программы или скрипты для большинства СУБД, например, для PostgreSQL, Oracle Database, MySQL. После теста TPC-H появился тест TPC-DS с 99 запросами, но он менее популярен.

Читать далее

Как мобильное приложение для ВодоходЪ вырастило средний чек на 15%

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров977

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

Читать далее

PostgreSQL Antipatterns: создаем JSON из строки

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров5.2K

Я уже не раз поднимал в статьях тему [не]эффективной работы с json[b] в PostgreSQL — и как его лучше превращать в выборку, и как можно «транспонировать». Сегодня же рассмотрим некоторые возможности по его генерации на стороне базы.

Читать далее

Стриминг Apache Flink из MongoDB в PostgreSQL на Python

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

Привет, Хабр! Меня зовут Александр Цай, я ведущий аналитик в МТС Web Services, но на деле занимаюсь всеми вопросами, касающимися DA/DE/BI: выявлением потребностей и сбором требований, проектированием дашбордов и витрин для них, построением и развитием внутреннего хранилища, поиском источников данных, созданием сложных ETL-пайплайнов по их доставке, DQ, проведением аналитики и много чем еще.

В этом материале я расскажу про разворачивание пайплайна по стримингу данных из MongoDB в PostgreSQL с помощью Apache Flink (стримить из Kafka банально, а так заодно пощупаем документоориентированную БД). Делать это мы будем в minikube (kubernetes), а языком программирования для заданий выступит Python. Все описанное в посте выполняется на MacBook с процессором i7.

В интернете, тем более русскоязычном, нет информации о стриминге из MongoDB в Postgres с помощью Flink. Почти все материалы по Flink, которые мне попадались, сводятся к пережевыванию примера WordCount из flink-kubernetes-operator, где на запущенном поде из папки с примерами читается файл и в консоль выводится количество слов в нем. Если спускаться до использования PyFlink, то мы натыкаемся на кастомные образы с Harness SDK и Apache Beam и другие страшные слова. Знакомо?

Так вот, это не наш путь! Данное руководство будет полезно тем, кто такой же извращенец хочет пощупать Flink на родном Python и кто не планирует брать примеры, оторванные от реальности.

Читать далее

Вклад авторов