4847. Ежедневная ETL-выгрузка из CRM в DWH иногда дублирует строки из-за того, что загрузка прерывается и перезапускается. Какой механизм нужно добавить, чтобы избежать дублей даже при перезапуске?
Anonymous Quiz
2%
Очищать таблицу перед каждой загрузкой
98%
Использовать идемпотентную вставку (UPSERT / MERGE) с уникальным ключом
0%
Сортировать строки перед вставкой
0%
Увеличить таймаут соединения
Вы ведь уже задумывались о заработке в Telegram…
Сохраняли посты.
Читали советы.
Откладывали «на потом».
И вроде бы интерес есть…
но до действий так и не доходит.
Мозг выбирает самое простое — ничего не делать👉 https://t.me/addlist/BHoA9CZmCi5lM2Yy
Чтобы разорвать этот круг, не нужно сразу «делать идеально».
Достаточно просто дать себе понятную точку входа.
Мы собрали папку, где уже есть база:
— как расти в Telegram
— как привлекать людей
— как выстраивать систему
— как приходить к доходу
Подпишись и просто начни с малого
https://t.me/addlist/BHoA9CZmCi5lM2Yy
Иногда самое сложное — это первый шаг.
Записывайся в подборку🫶
Сохраняли посты.
Читали советы.
Откладывали «на потом».
И вроде бы интерес есть…
но до действий так и не доходит.
Мозг выбирает самое простое — ничего не делать
Чтобы разорвать этот круг, не нужно сразу «делать идеально».
Достаточно просто дать себе понятную точку входа.
Мы собрали папку, где уже есть база:
— как расти в Telegram
— как привлекать людей
— как выстраивать систему
— как приходить к доходу
Подпишись и просто начни с малого
https://t.me/addlist/BHoA9CZmCi5lM2Yy
Иногда самое сложное — это первый шаг.
Записывайся в подборку
Please open Telegram to view this post
VIEW IN TELEGRAM
Решение – использовать
MERGEINSERT ... ON CONFLICT DO UPDATEREPLACEorder_id + line_idПример кода:
sql
INSERT INTO dwh_orders (order_id, amount, loaded_at)
VALUES (123, 1000, NOW())
ON CONFLICT (order_id) DO UPDATE SET
amount = EXCLUDED.amount,
loaded_at = EXCLUDED.loaded_at;
Почему это важно для аналитика?
В требованиях к интеграции данных нужно явно указывать: «Загрузка должна быть идемпотентной. Повторный запуск того же пакета не должен порождать дубликатов». Без этого после каждого сбоя оператору придётся вручную чистить таблицу.
Реальный кейс: В крупном ретейлере из-за отсутствия идемпотентности при ночном сбое накопилось 15% дублей заказов. Отчётность встала на неделю.
Please open Telegram to view this post
VIEW IN TELEGRAM
4848. Заказчик говорит: «Личный кабинет должен открываться за 2 секунды». Это функциональное или нефункциональное требование? Почему?
Anonymous Quiz
3%
Функциональное, так как относится к конкретному экрану
97%
Нефункциональное (требование к производительности), так как описывает атрибут качества—время отклика
0%
Функциональное, так как можно написать тест-кейс
0%
Не относится ни к тем, ни к другим
«Открываться за 2 секунды» — это атрибут качества производительности. Это требование не меняет логику работы, а лишь накладывает ограничение на скорость.
Почему это важно?
NFR часто забывают или фиксируют в конце, а потом система работает медленно. Аналитик должен собирать такие требования наравне с функциональными.
Реальный кейс: В одном проекте забыли записать требование к производительности для поиска, и на проде поиск работал 30 секунд. Исправление стоило перепроектирования индексов и кэшей.
Please open Telegram to view this post
VIEW IN TELEGRAM
4849. В системе логов используется Kafka. При отключении электричества на сервере с брокером часть последних сообщений теряется. Какая настройка предотвратит потерю данных при внезапном отключении?
Anonymous Quiz
2%
Увеличить количество партиций
93%
Включить персистентность (log.flush.interval.messages=1, flush на диск перед подтверждением)
0%
Уменьшить replication factor
6%
Использовать автоматический коммит
flush.messages=1Альтернатива: использовать репликацию с
acks=allmin.insync.replicas=2Реальный пример: В системе финансового мониторинга настроили персистентность Kafka, и даже при аварийном отключении не потеряли ни одного события.
Что должен зафиксировать аналитик:
Требование к durability (гарантия сохранности) — допускается ли потеря сообщений?
Для критичных логов — обязательная синхронная запись на диск.
Please open Telegram to view this post
VIEW IN TELEGRAM
4850. Перед сдачей отчёта в прод аналитик проверил: отчёт открывается, фильтры работают, цифры совпадают с бэкендом. В проде обнаружилось, что при печати отчёта съезжают колонки. Какого теста не хватало в чек-листе аналитика?
Anonymous Quiz
0%
Тестирование безопасности
5%
Тестирование производительности
95%
Тестирование кросс-браузерности и печатных форм (cross-browser, print layout)
0%
Нагрузочное тестирование
Что нужно добавить в чек-лист:
Открыть отчёт в Chrome и Firefox, сравнить внешний вид.
Распечатать на PDF (Ctrl+P) и проверить, что все колонки на месте, нет разрывов.
Проверить альбомную/портретную ориентацию.
Реальный кейс: В бухгалтерской системе отлично работал интерфейс, но при печати счета колонки смещались, и клиенты не могли разобрать суммы. Аналитик добавил в чек-лист пункт «печатная форма», и проблема больше не возникала.
Вывод: Аналитик должен включать в приёмочные тесты не только GUI и API, но и вторичные сценарии (печать, экспорт, мобильная вёрстка).
Please open Telegram to view this post
VIEW IN TELEGRAM
4851. В процессе согласования заявки на отпуск, если руководитель не ответил в течение 3 дней, заявка должна автоматически уйти на следующий уровень. Какой элемент BPMN это моделирует?
Anonymous Quiz
1%
Событие-сообщение
97%
Промежуточное событие-таймер (на границе активности)
1%
Событие-ошибка
1%
Событие-ссылка
Почему это важно:
Автоматическая эскалация при задержках — частое требование в бизнес-процессах (закупки, согласования, инциденты). Аналитик должен уметь моделировать временные ограничения.
Реальный кейс: В системе согласования командировок при отсутствии ответа руководителя в течение 2 дней заявка автоматически считалась согласованной. Таймер помог избежать простоев.
Please open Telegram to view this post
VIEW IN TELEGRAM
4852. В проекте 20 микросервисов, каждый имеет свою модель данных. Нужно показать зависимости между сервисами на высоком уровне (кто кого вызывает). Какая диаграмма UML подходит лучше всего?
Anonymous Quiz
23%
Диаграмма последовательности
69%
Диаграмма компонентов (с интерфейсами и зависимостями)
6%
Диаграмма классов
2%
Диаграмма деятельности
Почему не другие диаграммы:
Диаграмма последовательности слишком детальна (показывает обмен сообщениями во времени).
Диаграмма классов не отражает архитектуру на уровне сервисов.
Диаграмма деятельности — для процессов, а не для структуры.
Реальный пример: В проекте с 50 микросервисами архитектор нарисовал диаграмму компонентов и сразу увидел циклические зависимости, которые пришлось разорвать.
Вывод: Аналитик может использовать диаграмму компонентов для документирования архитектуры и анализа связанности сервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
4853. Сервис оплаты иногда недоступен. Нужно, чтобы при его падении заказ всё равно создавался, но помечался как «Ожидает оплаты». Какой паттерн обеспечивает graceful degradation?
Anonymous Quiz
4%
Circuit Breaker
95%
Graceful degradation с fallback (сохранение запроса в очереди, уведомление клиента)
1%
Только ретраи
0%
Отказ от приёма заказов
При недоступности платежного сервиса заказ создаётся со статусом «Ожидает оплаты».
Клиент получает уведомление: «Заказ оформлен, ссылка на оплату придёт позже».
Запрос на оплату сохраняется в очередь и будет обработан при восстановлении.
Чем отличается от Circuit Breaker?
Circuit Breaker отключает проблемный сервис, но не предлагает fallback-действие, а просто возвращает ошибку. Здесь же бизнес-процесс не прерывается.
Реальный пример: В Ozon при временной недоступности оплаты заказ всё равно принимается, а клиенту приходит смс с кнопкой оплатить позже.
Что должен зафиксировать аналитик:
Альтернативные сценарии при недоступности внешних систем.
Сохранение состояния и уведомление пользователя.
Механизм повторной обработки.
Please open Telegram to view this post
VIEW IN TELEGRAM