uz
Feedback
BA & SA | 10000 Interview questions

BA & SA | 10000 Interview questions

Kanalga Telegram’da o‘tish

Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7

Ko'proq ko'rsatish

📈 Telegram kanali BA & SA | 10000 Interview questions analitikasi

BA & SA | 10000 Interview questions (@systemanalystinterview) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 10 212 obunachidan iborat bo'lib, Karyera toifasida 3 868-o'rinni va Rossiya mintaqasida 63 918-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 10 212 obunachiga ega bo‘ldi.

21 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 324 ga, so‘nggi 24 soatda esa -3 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 3.49% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 2.62% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 356 marta ko‘riladi; birinchi sutkada odatda 268 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 2 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent объяснение, индекс, user_id, субд, паттерн kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7

Yuqori yangilanish chastotasi (oxirgi ma’lumot 22 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Karyera toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

10 212
Obunachilar
-324 soatlar
+37 kunlar
+32430 kunlar
Postlar arxiv
👩‍🏫Объяснение: Партиционирование — наиболее фундаментальное и эффективное решение для временных рядов с ярко выраженным паттерном доступа к «горячим» (свежим) данным. Оно позволяет: * Резко уменьшить объем сканируемых данных: оптимизатор запросов будет обращаться только к партициям за последние 7 дней (партициональная прунинг). * Упростить управление жизненным циклом: удаление старых данных (DROP PARTITION) — мгновенная и дешевая операция. * Улучшить производительность обслуживания: операции VACUUM, REINDEX можно выполнять точечно на устаревших партициях. Создание покрывающего индекса (B) или его перестройка (C) могут помочь, но не решат проблему работы с огромной неделимой таблицей. Ручное перемещение данных (D) — это, по сути, «ручное» партиционирование, но менее эффективное и встроенное в СУБД.

4678. Вы обнаружили, что в таблице events с временными рядами 99% запросов обращаются только к данным за последние 7 дней. Таблица содержит данные за 5 лет. Какое изменение структуры хранения даст максимальный эффект ?
Anonymous voting

№4678 категория вопросов: #DBMS

👩‍🏫Объяснение: Здесь важны две вещи: гарантия уникальности комбинации «пользователь-сущность» и скорость проверки этой уникальности при вставке. Составной первичный ключ (user_id, entity_type, entity_id) (B) идеально решает обе задачи: 1. Он на уровне БД гарантирует, что дубликат невозможен. 2. Запрос SELECT 1 FROM votes WHERE user_id = ? AND entity_type = ? AND entity_id = ? для проверки будет выполняться очень быстро, используя поиск по первичному ключу (т.е. по кластеризованному индексу). Порядок колонок важен: если чаще проверяют по user_id, он должен быть первым. Ключ из варианта C тоже рабочий, но оптимизирован для поиска всех голосов за сущность, что менее частый сценарий. Автоинкремент (A) и UUID (D) не предотвращают дублирование логических записей без отдельного UNIQUE-ограничения.

4677. Таблица votes потенциально может расти на миллиарды строк. Критически важна скорость проверки, голосовал ли пользователь. Какой первичный ключ для таблицы votes будет оптимальным?
Anonymous voting

№4677 категория вопросов: #DBMS

👩‍🏫Объяснение: Когда требования к поиску выходят за рамки базовых возможностей реляционных СУБД, используется специализированный поисковый движок. Elasticsearch/Solr построены на инвертированных индексах, созданных именно для задач: * Полнотекстового поиска со стеммингом, синонимами, обработкой омонимов. * Нечеткого поиска (fuzzy). * Сложного ранжирования (relevance scoring) на основе TF-IDF, BM25. * Масштабирования и отказоустойчивости за счет распределенной кластеризации. «Подкручивание» существующей БД (A, D) дает лишь временный и ограниченный эффект. Кастомная реализация (B) неоправданно сложна и не будет соответствовать по качеству и производительности готовым решениям.

4676. Требуется сложная морфология, ранжирование по релевантности, фасетный поиск и отказоустойчивость. Какое решение является индустриальным стандартом?
Anonymous voting

№4676 категория вопросов: #DBMS

👩‍🏫Объяснение: Суть оптимистичной блокировки — позволить всем читать данные, но проверять, изменились ли они с момента чтения, в момент записи. Ключевой элемент — проверка версии в условии WHERE. Если другой процесс уже успел обновить документ, то его version изменился, и запрос текущего процесса (B) не затронет ни одной строки (affected rows = 0). Приложение, увидев 0 измененных строк, поймет, что произошел конфликт и должно предложить пользователю разрешить его. Вариант A увеличит версию всегда, потеряв первое обновление. Вариант C — это пессимистическая блокировка. Вариант D не использует версионирование вовсе.

4675. В таблице documents есть поле version (целое число). Как должен выглядеть SQL-запрос для обновления документа, который гарантированно предотвратит «потерянное обновление» (lost update), если два пользователя редактируют один документ?
Anonymous voting

№4675 категория вопросов: #DBMS

👩‍🏫Объяснение: Это классический паттерн разделения на OLTP (операционная обработка транзакций) и OLAP (аналитическая обработка). Прямые аналитические запросы к OLTP-системе (A, B) блокируют операционные транзакции и убивают производительность. ETL-процесс (C) переносит данные в специально спроектированное хранилище (DWH), где данные денормализованы, структурированы по темам (схема «звезда»/«снежинка») и используют эффективные для чтения форматы хранения (колоночные СУБД). Кэш (D) хорош для простых метрик, но не для гибкой, многомерной аналитики.

4674. Вы проектируете аналитическую систему для ритейла, где ключевые отчеты строятся по итогам дня, недели, месяца. Какой наиболее правильный и распространенный архитектурный подход?
Anonymous voting

№4674 категория вопросов: #DBMS

👩‍🏫Объяснение: На самом деле, для удаления 10к строк из 50 млн можно смело использовать осторожный DELETE с ограничением по времени (A), выполнив его в периоды низкой нагрузки, возможно, батчами (LIMIT 1000), чтобы не блокировать таблицу надолго. Однако, если бы речь шла об удалении миллионов строк, то вариант B (создание новой таблицы) был бы предпочтительнее, так как DELETE при огромном объеме — долгая, тяжелая операция, генерирующая много WAL-логов и потенциально блокирующая. Варианты C и D не очищают данные, а лишь маскируют проблему. В реалистичном кейсе с 10к записей правильнее A, но понимание альтернативы B для больших объемов — ключевое.

После обновления приложения в продекшене появилась ошибка, из-за которой в таблицу записывались платежи с нулевой суммой. Ошибку исправили. Как безопасно удалить ~10 000 некорректных записей из таблицы с 50 миллионами строк, не нарушая работу операций?
Anonymous voting

№4673 категория вопросов: #DBMS

👩‍🏫Объяснение: Независимые логические атрибуты (аспекты статуса) лучше хранить в отдельных колонках. Это дает максимальную простоту и эффективность: фильтрация (WHERE status_legal = 'approved') и индексация по каждому аспекту тривиальны, целостность данных легко контролируется. Хранение в одной строке (A) делает запросы неэффективными. Связь многие-ко-многим (B) избыточна для простых атрибутов. JSONB (D) гибок, но сложнее в валидации и обычно медленнее для частой фильтрации. Подход C следует принципу «одна колонка — один атомарный факт».

4670. В системе электронного документооборота у сущности «Договор» есть несколько взаимозависимых статусов: status_system, status_lega, status_financial. Как лучше смоделировать это в БД, чтобы легко добавлять новые аспекты статусов?
Anonymous voting