Пушистиков де ла Вега

+1
с 2021
3 подписчика
3 подписки
Многоуровневая иерархическая сортировка PostgreSQL

Дано: таблица test с полями: id, parent_id, name, sort. Поле sort содержит числовое значение, определяющее сортировку строк первого порядка в пределах уровня иерархии, второй порядок сортировки определяется полем name.

Несколько полезных функций для PostgreSQL

if, first, last

Случайные мысли

Жизнь – это костер, из которого вылетают искры. Люди, которые умеют находить интересное и увлекаться, а увлекаясь – познают и творят красоту, и есть искры будущих богов.

Арчибальд Пушистиков де ла Вега
Ведение документации

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

Чтение из Kafka без инцидентов

Знакомясь с продуктом Apache Kafka, вы можете наткнуться такое утверждение – в Kafka соблюдается принцип «тупой брокер – умный потребитель» (для RabbitMQ, стало быть, наоборот). Но в этой статье речь пойдет не о брокере, а о потребителе. Дело в том, что потребитель умный только до пояса, не выше. Чтобы реализовать семантику Exactly-Once (строго одн…

Отправка сообщений в брокер из бизнес-операций

Довольно часто, при реализации API или бизнес-операции требуется отчитаться о запуске или выполненной работе, например – отправить сообщение в брокер с последующим приземлением в хранилище логов. И вот тут, в силу отсутствия компетентности, сроков или нацеленности на MVP-дизайн, очень часто программисты реализуют дешевый антипаттерн – отправление с…

Как ускорить сайт, сервис, микросервис?

Хотите ускорить загрузку страницы сайта на несколько порядков или поднять скорость ответа сервиса – не вопрос, добавьте к вашей модели данных несколько видов комплексных объектов, денормализованных по восходящему принципу. Идея в некоторой степени перекликается с CQRS, но в ней нет категоричности, нет проблем с рассинхронизацией моделей, денормализ…

PostgreSQL – короткий динамический индекс

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

PostgreSQL – быстрая вставка

Если нужно сделать быструю вставку, чтобы не держать транзакцию, то можно использовать промежуточную табличку или PgQ. Далее job (pgpro_scheduler) или сторонний worker может спокойно перекладывать данные (или оправлять куда-то, например в брокер сообщений) уже в другой транзакции.

Приземление потоков сырых данных из Kafka в ClickHouse

Это статья - памятка, в ней описывается паттерн приземления потока сырых данных (логов Nginx) из Kafka в ClickHouse. Так как логи бывают разного формата, то уместно ожидать, что местами решение будет носить частный характер.

Ретроспективная функциональность в реляционной среде

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

Бессмертный код. Манифест ALPHA

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