Работая в Сбере, я столкнулся с тем, что общепринятым инструментом для функционального тестирования в моем трайбе был JMeter. Нравится ли мне это? Вопрос второстепенный. Приходилось работать с тем, что есть. По мере того как разрастались наши компоненты и их функциональность - разрастались и JMeter-тесты. Если кто не сталкивался - вся логика JMeter-тестов описана в файле с расширением .jmxЧитать полностью »
Рубрика «sql»
Как мы приручили JMX-файл на 50 000 строк: декомпозиция JMeter-тестов для нормального code review
2026-03-31 в 11:46, admin, рубрики: bestpractices, groovy, java, jmeter, sql, архитектура, кейс, нагрузочное тестирование, тестирование, функциональное тестированиеКак отчисление одного студента может закрыть всю кафедру. Нормализуем БД и избавляемся от аномалий
2026-03-23 в 8:00, admin, рубрики: sql, база дынных, базы данных, нормализация отношений, нормальные формы, реляционные базы данных, реляционные бд, реляционные субд, функциональная зависимость
Привет! В прошлой статьеЧитать полностью »
Как мы ускорили SQL-запросы: реальные кейсы оптимизации PostgreSQL
2026-03-20 в 17:06, admin, рубрики: join, postgresql, sql, оптимизация SQL, оптимизация запросов, оптимизация запросов postgresql, производительность базы данныхДостаточно большое количество проблем производительности в backend-приложениях на самом деле находятся не в коде. За последние пару лет мне несколько раз приходилось разбирать системы, где:
-
API отвечало слишком долго
-
CPU базы был загружен почти на 100%
При этом всем, инфраструктура мощная: достаточное количество RAM, NVMe-диски ну и конечно же CPU последних поколений. Но проблема почти всегда оказывалась в SQL-запросах.
Я хочу поделиться реальным опытом, как мы оптимизировали PostgreSQL в десятки раз
Кейс 1. Индекс, который помог ускорить запрос
Один из самых типичных запросов в системе:
Читать полностью »
Моя любимая функция в ClickHouse, или оптимизируем вообще всё с помощью cityHash64()
2026-03-20 в 9:15, admin, рубрики: cityhash, clickhouse, data engineering, sql, анализ данных, аналитика, оптимизация, хеш, хеш-функции, хешированиеК написанию данной статьи меня подтолкнула другая статья:
«Не только sum() и uniq(): малоизвестные и очень полезные функции ClickHouse»
и вопрос автора: «В комментариях расскажите, какие „непопулярные“ функции кликхаус упростили вам жизнь.»
Недолго думая, я ответил: cityHash64().
Eloquent Guard: как ловить N+1 и медленные запросы в Laravel, не зарываясь в vendor
2026-03-16 в 11:15, admin, рубрики: database monitoring, database optimization, database performance, eloquent, laravel, mysql, php, postgresql, sqlПроблема N+1 стара как мир. Инструментов много: Debugbar хорош локально, Telescope тяжеловат для продакшена. Мне хотелось решения, которое будет «стучать» в Slack или Telegram именно тогда, когда проблема случилась на проде, и при этом сразу показывать пальцем на виновную строку кода.
Так появился Eloquent Guard
Как это работает под капотом
Основная магия происходит через подписку на события базы данных в Laravel. В сервис-провайдере пакета мы слушаем QueryExecuted:
DB::listen(function (QueryExecuted $query) {
// 1. Проверяем дубликаты (N+1) по хэшу SQL
// 2. Замеряем время выполнения (Slow Query)
// 3. Если порог превышен — запускаем репортеры
});
Читать полностью »
Apache Superset 2026. Как работает Drill Down и Drill By
2026-03-14 в 8:23, admin, рубрики: Apache, BI, Data Analyst, data engineer, python, sql, supersetРаботая с аналитикой, мы часто сталкиваемся с одной и той же проблемой: данные есть, но исследовать их неудобно.
Представим типичную ситуацию. Есть таблица с десятками колонок и миллионами строк. Нужно понять, почему изменился какой-то показатель — например, выручка или конверсия. Обычно это превращается в цепочку SQL-запросов: сначала агрегируем данные по стране, потом по городу, потом по конкретному сегменту пользователей и тд.
Если таких гипотез несколько, количество запросов быстро растёт с геометрической прогрессией. Каждый новый уровень детализации требует отдельного SQL.
Путь в аналитику данных: базовый минимум для старта
2026-02-25 в 19:16, admin, рубрики: data analysis, hard skills, sql, анализ данных, аналитик данных, аналитик данных обучение, карьера аналитика, карьера аналитика данных, карьера ИТ-специалиста❓Кто такой аналитик данных и зачем он нужен
Аналитик данных — это специалист, который умеет открывать доставать данные, очищать и фильтровать их, проводить исследование, визуализировать и интерпретировать результаты обработки данных. Его главная задача — помочь бизнесу принимать решения, основанные не на интуиции, а на фактах и цифрах (data‑driven подход).
Аналитик данных может ответить на вопросы, критически важные для любой компании:
-
Что произошло? (Например, насколько выросли продажи после прошлой рекламной кампании)
-
Почему это произошло?Читать полностью »
ClickHouse: MergeTree с нуля
2026-02-18 в 14:15, admin, рубрики: big data, clickhouse, data engineering, MergeTree, sql, tutorial, СУБД, хранилища данныхПривет!
Меня зовут Натаров Иван. Я занимаюсь вопросами обработки, анализа и визуализации данных.
ClickHouse сегодня стал стандартом де-факто для аналитических задач, но часто начинающие специалисты тратят слишком много времени на погружение в технологию. Документация зачастую дает либо слишком поверхностное объяснение, либо уходит в технические детали, которые сложны для восприятия новичками.
В этой статье мы разберем фундамент ClickHouse - движок MergeTreeЧитать полностью »
Сравнение рейтинга TIOBE и вакансий на HH
2026-02-15 в 13:46, admin, рубрики: C#, c++, Go, java, javascript, kotlin, Matlab, php, python, sql
Доброго времени суток! Моя первая статья, не судите строго) В следующий раз, постараюсь учесть все, что вы напишите в комментариях.
Идея статьи
Паттерн Transactional Outbox — обеспечиваем консистентность между микросервисами на примере Java
2026-02-13 в 7:15, admin, рубрики: java, postgresql, spring, sql, transactional outbox, Микросервисная архитектура, микросервисы, паттерн стратегия, паттерны проектированияВсем привет! В этой статье рассмотрим наиболее полную реализацию паттерна Transactional Outbox, которую можно будет легко расширять и применять в продакшне. Данная статья будет полезна как для разработчиков, которые еще не встречались с данным паттерном, так и тем, кто уже применял его в своей работе.
Введение
Прежде чем перейти к определению паттерна, определим ключевых акторов:
-
Паблишер - процесс, инициирующий изменения и создающий события.
-
Консьюмер - процесс, обрабатывающий эти события.
