Миграции базы без простоя: порядок, который работает
Как сделать так, чтобы приложение работало с базой во время любых изменений схемы
JSON как контракт: где он подводит
Формат, который читается без описания, обычно и передают без описания. Что записать отдельно от кода, чтобы обмен пережил расхождение версий.
Поиск по своим данным: когда нужен отдельный движок
Отдельный движок окупается, когда поиск — основной способ добраться до данных. Модель расчёта в часах, куда подставляются свои значения.
Соединения таблиц: почему строк больше, чем ожидали
Число строк результата определяется кратностью связи, а не таблицами. Одна проверка до запроса ловит почти все завышенные суммы в отчётах.
Слой трансформаций: движок в процессе против конвейера
Почему вычисление переезжает внутрь процесса и где эта схема ломается
Медленный запрос в PostgreSQL: с чего начинать
Порядок действий, который дешевле наугад повешенного индекса: статистика, план выполнения, условие — и только потом индекс.
Контракты данных: как перестать чинить отчёты
Чем настоящий контракт данных отличается от страницы в вики, из каких четырёх частей состоит и с какого отчёта начинать внедрение
Lakehouse без хайпа: что реально поменялось
Разбираем, чем плоха связка озера и склада, почему внешние таблицы не спасают, как лейкхаус даёт транзакции поверх открытых файлов и во что это обходится
Схема поехала: пять способов узнать об этом первым
Почему дрейф схемы первым замечает потребитель, почему процессные договорённости и красные джобы его пропускают и как устроены пять автоматических проверок на пути данных
Что компании знают о вас и зачем им это
Как без микрофона лента угадывает ваши желания: что сервисы записывают о каждом шаге и как из этих строчек складывается портрет человека
Стоимость хранения: три сценария на 100 ТБ
Почему нельзя просто умножить цену за терабайт на сто и как собрать модель из пяти слоёв, чтобы честно сравнить свои диски, выделенный сервер и облако