Как стать автором
Обновить
-16
0

Пользователь

Отправить сообщение

Что у меня за распределение

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

Привет! Меня зовут Василий, я ML инженер центра ML-экспертизы в обслуживании. В Т-Банке мы прогнозируем нагрузку на колл-центр: сколько придет обращений, какой длительности и некоторые другие характеристики. 

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

«Используй Колмогорова — Смирнова, да и все тут», — скажут мне. В принципе, да, но нет. Мы пойдем чуть дальше и попытаемся разобраться, как все устроено и какие есть ограничения. Расскажу, почему нельзя просто так применять критерии согласия, к каким это приводит ошибкам и как с этим быть.

Читать далее

Секционируй и властвуй: делимся нетайными знаниями о секционировании в Postgres Pro

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

В арсенале Postgres Pro есть мощное, но порой недооцененное оружие — декларативное секционирование. Оно только звучит сложно, а на деле позволяет элегантно «нарезать» гигантские таблицы, превращая их из неповоротливых монстров в управляемые и быстрые структуры. Делимся нетайными знаниями, которые помогут оптимизировать запросы и упростить жизнь. 

Читать далее

Пет-проект vs. служебные произведения: как не отдать права работодателю

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

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

Как разработчику защитить права на pet-проекты, что делать, если работодатель требует передать ему разработки, я расскажу в этой статье. 

Читать далее

DBA: находим бесполезные индексы

Время на прочтение12 мин
Количество просмотров22K
Регулярно сталкиваюсь с ситуацией, когда многие разработчики искренне полагают, что индекс в PostgreSQL — это такой швейцарский нож, который универсально помогает с любой проблемой производительности запроса. Достаточно добавить какой-нибудь новый индекс на таблицу или включить поле куда-нибудь в уже существующий, а дальше (магия-магия!) все запросы будут эффективно таким индексом пользоваться.

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

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

Доработки происходят итеративно силами множества распределенных команд, которые бывают разнесены не только в пространстве, но и во времени. И тогда, не зная всей истории развития проекта или особенностей прикладного распределения данных в его БД, можно легко «напортачить» с индексами. Но соображения и проверочные запросы под катом позволяют заранее предсказывать и обнаруживать часть проблем:

  • неиспользуемые индексы
  • префиксные «клоны»
  • timestamp «в середине»
  • индексируемый boolean
  • массивы в индексе
  • NULL-мусор
Читать дальше →

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

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

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

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

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

Читать далее

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

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

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

Читать далее

Корреляционный анализ для определения причин деградации производительности СУБД

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

В статье рассматривается практическое использование методов статистического анализа для определения причин деградации производительности СУБД Postgres Pro.

Используются разработанные сервисные скрипты для сбора статистической информации о производительности и состоянии СУБД и модуль pgpro_pwr для определения текста проблемных SQL запросов.

Читать далее

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

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

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

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

 Введение

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

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

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

Читать далее

Скользящие метрики без тормозов: SQL

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

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

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

Читать далее

Каково это быть спикером на одной из крупнейших IT конференций в России?

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

Привет, Хабр! Написать эту статью было навязчивой идеей. Делюсь своим спикерским опытом на Heisenbug 2025 Spring. Кто-то, возможно, узнает себя и словит флешбэки из прошлого, а кто-то вдохновится на прохождение этого интересного пути.

Статья разбита на смысловые блоки, в каждом из которых расскажу о ключевых моментах и своём опыте.

Читать далее

Статистический анализ результатов benchmark PostgreSQL

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

Задача

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

Читать далее

Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться

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

В этой статье мы разберём несколько аномальных случаев высокой нагрузки в СУБД PostgreSQL. Что это такое? Обычно PostgreSQL хорошо показывает себя под нагрузкой и оправдывает ожидания в отношении производительности — она остаётся высокой. Но при определённых профилях нагрузки СУБД может вести себя не так, как мы ожидаем. Это и есть аномалии, на которых мы сосредоточимся в данной статье (для тех, кто предпочитает видео, эта информация доступна в виде записи доклада на HighLoad++).

Наша компания помогает обслуживать мультитерабайтные базы данных в крупных проектах, поэтому мой рассказ об аномалиях основан на реальном опыте промышленной эксплуатации СУБД в Postgres Professional — порой мы сталкиваемся с тем, что СУБД ведёт себя не так, как мы ожидали.

Также в рамках статьи мы рассмотрим следующее:

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

Блокировки в PostgreSQL: 4. Блокировки в памяти

Время на прочтение11 мин
Количество просмотров34K
Напомню, что мы уже поговорили о блокировках отношений, о блокировках на уровне строк, о блокировках других объектов (включая предикатные), и о взаимосвязи разных типов блокировок.

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


Читать дальше →

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

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

В статье рассматривается использование теста 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 запросами, но он менее популярен.

Читать далее

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

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

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

Читать далее

Скорая помощь: как быстро снять стресс, эмоциональное напряжение и провести профилактику нарушений сна

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

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

Это не отменяет обращений к психотерапевту, неврологу или принятие препаратов. Но в офисе, в пробке или когда под рукой нет нужной таблетки, техники можно использовать в качестве «скорой помощи».

Для полноты понимания я описываю в статье, на что именно влияет выполнение упражнений, и как решается проблема с точки зрения работы тела.

На все вопросы обязательно отвечу в комментариях.

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

Читать дальше →

Переход из Oracle в Postgres Pro: не просто смена СУБД, а сдвиг подхода. Интервью с Марком Ривкиным

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

Давно не было обстоятельных интервью, тем более с таким корифеем отечественной СУБД‑разработки. В 2022 году в Postgres Professional перешла команда специалистов по Oracle, включая Марка Ривкина, который занял позицию руководителя отдела технического консалтинга. Вместе с командой он занялся адаптацией продуктов под требования крупных корпоративных заказчиков и доработкой функциональности Postgres Pro — в первую очередь для тех, кто планирует миграцию с проприетарных СУБД.

В интервью для Хабра Марк рассказал, с какими задачами столкнулись на старте, какие функции пришлось внедрять в первую очередь, как выстроена работа с разработкой и сообществом, и в чём сегодня Postgres Pro реально может заменить Oracle, а в чём — пока нет. Поговорили и про ИИ в администрировании, и про перспективы российских форков PostgreSQL, и даже о том, что бы он заложил в архитектуру, если бы проектировал СУБД с нуля. Приятного чтения!

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность