В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.
Стройте воспроизводимый pipeline: один проверенный артефакт проходит окружения, quality gates и контролируемый rollout. Отдельно планируйте миграции, наблюдение и откат.
Используйте взвешенную маршрутизацию 2:1:1. В ClickHouse Distributed веса шардов можно задать в конфигурации кластера вместе с подходящим sharding key.
Сравнивайте согласованные срезы по небольшим диапазонам ключа: сначала агрегаты, затем детализируйте только различающиеся участки и дозагружайте конкретные записи.
Опишите требования, выбранную архитектуру и этапы миграции с MSSQL. Отделите свои решения от командных и объясните, как проверяли совместимость данных и расчётов.
Для надёжной загрузки используйте согласованный начальный снимок и CDC по WAL. Простой курсор id > last_id может пропустить поздно закоммиченную строку.
Для поисковых событий подойдёт MergeTree с месячными партициями, ключом под частые аналитические фильтры и TTL два года. Конверсию связывают с отдельными событиями покупки.
Для большой изменяемой таблицы предпочтителен согласованный snapshot с последующим CDC из WAL. Частоту публикации в Data Lake можно менять независимо от захвата изменений.
Разбейте поток по этапам и точкам восстановления, а не создавайте задачу на каждую строку: загрузка в staging, проверка и построение зависимых объектов Data Vault.
Без dbt нужно отдельно обеспечить запуск преобразований, зависимости, тестирование, инкременты и публикацию витрин. Сам перенос SQL в Airflow не заменяет все эти функции.
Разделите каталог источников, очередь заданий, ограниченные по API workers, raw-слой S3 и контроль загрузок. Аналитику дайте декларативный интерфейс, а не доступ к секретам.
Раздельная статистика возможна, если записи можно надёжно отнести к каждому здравпункту. Без схемы данных нельзя обещать, что разделение будет безболезненным.