Все потоки
Поиск
Написать публикацию
Обновить
111.88

PostgreSQL *

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

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

Как заставить вашу базу данных летать, а не ползать. Часть 1 масштабирование и репликация

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

Всем привет! Меня зовут Илья Криволапов, тружусь системным аналитиком в SENSE на проекте одного из цветных банков РФ. В профессии я уже пятый год и, несмотря на фамилию, ломал прод всего лишь несколько незначительных раз (надеюсь). 

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

Всего в цикле будет 3 статьи. В первой поговорим о двух разных подходах масштабирования БД и о том, как лучше его делать и как лучше не делать (Никогда. Пожалуйста). 

Кому будет полезно? Всем отвечающим за «здоровье» базы данных: DBA, архитекторам, DevOps-инженерам, аналитикам и разработчикам. 

Согласны? Узнали? Тогда поехали!

Читать далее

PGConf.Russia 2025 Москва — Непал

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

PGConf.Russia 2025 прошла в месте историческом: в Центре Международной Торговли. История её короткая, но эффектная: построили в конце 70-х, ЦМТ был сначала Совинцентром, потом «Хаммеровским центром» - это было в то время такое окно в Европу. Через окно входили и выходили технологии и бизнес. Скульптура Меркурия перед фасадом мелькала тогда то и дело в новостях. Бизнес, судя, например, по машинам на парковке, это здание (комплекс зданий) отнюдь не позабыл. Хотел написать (и, как видите, написал) круче только в Кремлёвском Дворце Съездов эту конференцию провести, но и не так, и КДС тут не при чём. Но я был впечатлён и вспоминал с некоторыми коллегами былые технологические события, проходившие здесь во времена, когда таких мест было раз два и обчёлся, а может и раз - без два.

Читать далее

Зачем нужен fillfactor в PostgreSQL

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

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

Один параметр PostgreSQL может похоронить вашу производительность, если вы о нём забудете — это fillfactor. Почему однократная настройка числа приводит к неожиданным page split, bloat и мучительному откату запросов? Давайте разбираться.

Читать далее

Как мы под Новый Год загрузили в PostgreSQL петабайт данных и что из этого вышло

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

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

А началось всё просто: пока все вокруг спорят как настраивать железо и тюнить операционные системы дабы выжать лишних TPS, мы решили проверить как отреагирует движок PostgreSQL если загрузить в него действительно большой объём данных. Например, давайте сделаем базу размером один петабайт и посмотрим как он это переживёт.

На дворе было 10 декабря, руководство поставило задачу сдать отчёт 20 января, до нового года оставалось меньше месяца, а в руках появился знакомый всем инженерам зуд.

Читать далее

Шардированный не значит распределённый: что важно знать, когда PostgreSQL становится мало

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

Шардирование, двухфазный коммит и распределенные транзакции окружены определенными мифами и заблуждениями. Например, может быть достаточно неочевидно, что двухфазный коммит обеспечивает только атомарность транзакций, но не их изоляцию. Поэтому мы решили написать пост, который бы помог разобраться в этих сложных вещах и сделать правильный выбор, когда Postgres'а Вам станет мало и Вы столкнётесь с шардированием.

Читать далее

Picodata: вторая жизнь in-memory баз данных

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

Привет, меня зовут Костя Осипов, и я занимаюсь разработкой СУБД. На Хабре есть несколько моих статей про MySQL, Tarantool и про всякое-разное. Кроме того, я веду Telegram-канал, где делюсь инсайтами в области управления базами данных. Сегодня я выступаю в роли основателя компании Picodata, создающей одноимённую открытую СУБД, и управляющего директора ПАО Arenadata по исследованиям и разработке. Ниже — вольный пересказ моего недавнего доклада на HighLoad. Он про то, что нас ждёт в мире СУБД завтра, и, в частности, про место резидентных СУБД в архитектурах будущего.

Читать далее

Обзор Greenmask — утилиты для логического дампа PgSQL с трансформацией данных на лету

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

Greenmask — это кроссплатформенный инструмент, разработанный на Go специально для безопасной работы с данными PostgreSQL: он помогает делать логические бэкапы, восстанавливать таблицы и при необходимости — анонимизировать чувствительную информацию. Главное преимущество Greenmask — полная совместимость с pg_dump и pg_restore. То есть, если вы уже работаете с этими инструментами, интеграция Greenmask не потребует пересмотра всей инфраструктуры.

Один из ключевых сценариев использования утилиты - подготовка баз данных для тестового стенда. Greenmask позволяет упростить процесс дампа продуктивных баз, обработки их для анонимизации тех же персональных данных, снижения размера баз (в тестовой среде зачастую не нужны терабайты данных с прода), восстановления дампов в тестовый контур.

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

Официальный сайт: https://greenmask.io

Документация: https://docs.greenmask.io/latest/

GitHub-репозиторий: https://github.com/GreenmaskIO/greenmask (уже 1308 звезд)

Telegram-канал: https://t.me/greenmask_ru

Читать далее

Работа с базой данных для джунов и вайбкодеров. Соединения

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

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

Читать далее

Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

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

Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

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

Читать далее

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

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

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

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

 Введение

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

В чём вопрос?

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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