Дано: таблица test с полями: id, parent_id, name, sort. Поле sort содержит числовое значение, определяющее сортировку строк первого порядка в пределах уровня иерархии, второй порядок сортировки определяется полем name.
Дано: таблица test с полями: id, parent_id, name, sort. Поле sort содержит числовое значение, определяющее сортировку строк первого порядка в пределах уровня иерархии, второй порядок сортировки определяется полем name.
Жизнь – это костер, из которого вылетают искры. Люди, которые умеют находить интересное и увлекаться, а увлекаясь – познают и творят красоту, и есть искры будущих богов.
Реализовать решение могут многие, но владеет решением только тот, кто владеет знаниями. Владеть знаниями может только тот, кто умеет сохранять знания, поддерживать их актуальность и полноту, делать их читабельными и непротиворечивыми, связанными, структурированными и переиспользуемыми. Последний критерий, пожалуй, является самым веским показателем …
Знакомясь с продуктом Apache Kafka, вы можете наткнуться такое утверждение – в Kafka соблюдается принцип «тупой брокер – умный потребитель» (для RabbitMQ, стало быть, наоборот). Но в этой статье речь пойдет не о брокере, а о потребителе. Дело в том, что потребитель умный только до пояса, не выше. Чтобы реализовать семантику Exactly-Once (строго одн…
Довольно часто, при реализации API или бизнес-операции требуется отчитаться о запуске или выполненной работе, например – отправить сообщение в брокер с последующим приземлением в хранилище логов. И вот тут, в силу отсутствия компетентности, сроков или нацеленности на MVP-дизайн, очень часто программисты реализуют дешевый антипаттерн – отправление с…
Хотите ускорить загрузку страницы сайта на несколько порядков или поднять скорость ответа сервиса – не вопрос, добавьте к вашей модели данных несколько видов комплексных объектов, денормализованных по восходящему принципу. Идея в некоторой степени перекликается с CQRS, но в ней нет категоричности, нет проблем с рассинхронизацией моделей, денормализ…
В этой статье маленькая памятка как сделать короткий (частичный) динамический (покрывающий плавающее/скользящее окно данных) индекс для большой таблицы. Использование короткого индекса может ускорить запросы. Индекс создается параллельно основному. Коротким он называется потому, что в него попадает ограниченный набор данных (в примере ниже это запи…
Если нужно сделать быструю вставку, чтобы не держать транзакцию, то можно использовать промежуточную табличку или PgQ. Далее job (pgpro_scheduler) или сторонний worker может спокойно перекладывать данные (или оправлять куда-то, например в брокер сообщений) уже в другой транзакции.
Это статья - памятка, в ней описывается паттерн приземления потока сырых данных (логов Nginx) из Kafka в ClickHouse. Так как логи бывают разного формата, то уместно ожидать, что местами решение будет носить частный характер.
В документе изложены рекомендации по проектированию UI и ретроспективной модели данных, которая будет достаточна и полноценна для построения ретроспективных отчетов. Ретроспективная модель поддерживает версионность записей, что позволяет обратиться к любому историческому моменту и воспроизвести актуальное состояние данных на этот период.
В этой статье предлагается способ, как описать душу программного кода, его альфу и омегу, и сделать его бессмертным. Бессмертным он станет потому, что код, а также мысли и мотивы создателя, смогут понять и принять другие – идущие следом. Рекомендуется для сложных решений и больших блоков.