Вопросы на собеседовании: BI-разработчик
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Middle.
Смотреть пример резюме: BI-разработчик →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
Я бы использовал измерение клиентов типа 2 и относил каждый заказ к версии клиента, действовавшей на дату заказа.
- При каждом изменении клиента создаётся новый суррогатный ключ с полями valid-from, valid-to и признаком текущей строки, а бизнес-идентификатор клиента сохраняется.
- В 12 миллионах строк фактов хранится суррогатный ключ версии, поэтому историческая выручка региона не перемещается при смене региона клиентом.
- Перед публикацией модели Power BI я бы проверил отсутствие пересекающихся интервалов действия и наличие ровно одной подходящей версии измерения для каждого заказа.
Зачем это спрашивают: Интервьюер проверяет, умеете ли вы сохранять историческую атрибуцию с помощью SCD2, а не перезаписывать историю бизнеса.
Я бы перестроил все интервалы клиента, затронутые 14-дневным горизонтом опозданий, а затем переназначил ключи retention-фактам, чей EventTimestamp попал в изменённый интервал.
- dbt-модель упорядочивает строки источника по CustomerID, EffectiveAt и SourceUpdatedAt, вычисляет исключающую границу ValidTo через LEAD и отклоняет дубли начала действия.
- Merge обновляет CustomerVersionKey у существующих и новых фактов, для которых EventTimestamp не меньше ValidFrom и меньше ValidTo, а не обрабатывает только новые факты.
- Explore в LookML соединяет fact.CustomerVersionKey с customer.CustomerVersionKey как many_to_one, а тесты требуют одну строку IsCurrent на CustomerID и ровно одну версию на retention-событие.
Зачем это спрашивают: Сильный ответ охватывает поздние исправления SCD2 в измерении, переатрибуцию существующих фактов и контракт связи Looker.
Я бы использовал одно согласованное измерение Date с одной активной и двумя неактивными ролевыми связями.
- Связь по Order Date была бы активной, поскольку она управляет стандартным дашбордом продаж, а связи по Ship Date и Delivery Date оставались бы неактивными.
- Меры Shipped Revenue и Delivered Orders активировали бы нужную связь через USERELATIONSHIP внутри CALCULATE.
- Я бы сгруппировал и назвал меры по роли даты, чтобы авторы отчётов случайно не совместили ось Ship Date с мерой по Order Date.
Зачем это спрашивают: Интервьюер оценивает, умеете ли вы явно представить несколько ролей даты без неоднозначных путей фильтрации.
Я бы сохранил покупки на гранулярности PurchaseLineID и материализовал членство в сегментах на дату события до выполнения запросов Tableau.
- Источник членства хранит CustomerID, SegmentID, ValidFrom и исключающую границу ValidTo, но хранилище разрешает интервалы в мост PurchaseSegment, чтобы Tableau не разрешал many-to-many non-equi join во время запроса.
- Полную выручку можно независимо показывать для каждого пересекающегося сегмента, но строки сегментов неаддитивны по портфелю; для сверяемого итога нужен AllocationWeight.
- Я бы проверил уникальность PurchaseLineID плюс SegmentID, сумму весов 1 на PurchaseLineID и distinct count клиентов при одиночном и множественном выборе сегментов.
Зачем это спрашивают: Вопрос проверяет, умеете ли вы представить датированное многозначное членство без неподдерживаемого интервального соединения и аддитивных итогов по пересекающимся сегментам.
Я бы использовал таблицу фактов покрытия EligibilityFact и отдельную таблицу событий AttendanceFact на общей гранулярности студента и занятия курса.
- EligibilityFact содержит одну строку на StudentKey и CourseSessionKey и строится разворачиванием регистраций на семестр по занятиям, которые студент должен был посетить.
- AttendanceFact содержит одну строку на наблюдаемые StudentKey и CourseSessionKey с AttendanceStatusKey и CheckInTimestamp, а обе таблицы используют общие измерения Student, Course, Session и Date.
- Пропуск посещения определяется антисоединением ожидаемых и наблюдаемых строк по StudentKey плюс CourseSessionKey, поэтому несобытие считается явно, а не угадывается по транзакционной таблице.
Зачем это спрашивают: Интервьюер хочет увидеть таблицу покрытия ожидаемых событий, которую можно корректно сравнить с фактической посещаемостью.
Я бы использовал накапливающийся снимок с одной строкой на OpportunityID и семью датами этапов, обновляемыми по мере продвижения сделки.
- Строка хранит CreatedAt, QualifiedAt, DemoAt, ProposalAt, WonAt, InvoicedAt и PaidAt вместе с CurrentStageKey и TerminalStatusKey.
- Измерения LookML вычисляют время между соседними непустыми этапами, а меры backlog считают сделки, у которых текущий этап заполнен, а следующий ещё равен null.
- Пайплайн выполняет merge по OpportunityID, а для повторных этапов, переоткрытий и полного аудита переходов нужна отдельная таблица фактов OpportunityStageEvent.
Зачем это спрашивают: Сильный ответ различает текущий снимок процесса и историю событий и явно задаёт все семь указанных этапов.
Я бы разделил ежедневный снимок запасов и таблицу движений, потому что остатки и потоки имеют разную гранулярность и аддитивность по времени.
- Плотный снимок на уровне ProductKey, WarehouseKey и SnapshotDate содержал бы около 1,314 миллиарда строк за 730 дней до исключения неактивных сочетаний товара и склада.
- Приёмки, отгрузки и корректировки остаются на гранулярности MovementLineID со знаковыми QuantityChange и ValueChange для анализа потоков и сверки.
- Меры остатка Power BI выбирают последний допустимый снимок в периоде, а меры движения суммируются по датам и сверяют начальный остаток плюс движения с конечным.
Зачем это спрашивают: Интервьюер проверяет дисциплину гранулярности, правильную арифметику числа строк и понимание полуаддитивности складских остатков по времени.
Я бы оставил выручку компании в таблице строк счетов, а зачёт торговым представителям материализовал в отдельной распределённой таблице фактов.
- Хранилище разрешает AccountID, InvoiceDate, RepID, ValidFrom, ValidTo и AllocationPercent в строки с ключом InvoiceLineID плюс RepID, потому что связи Power BI не вычисляют соединения по интервалу действия.
- Каждая строка хранит CreditedRevenue, а тесты требуют сумму AllocationPercent 1 и сумму CreditedRevenue, равную исходной LineRevenue для каждого InvoiceLineID.
- Company Revenue читает базовый факт, а Credited Revenue распределённый, поэтому выбор нескольких представителей не умножает юридический итог компании.
Зачем это спрашивают: Интервьюер проверяет, разрешаете ли вы меняющееся many-to-many распределение на рабочей гранулярности, а не передаёте его неоднозначному пути фильтрации Power BI.
Я бы задал основную таблицу фактов продаж на уровне одной строки заказа и не повторял бы меры заголовка как аддитивные значения.
- Количество товара, выручка строки и скидка строки принадлежат непосредственно таблице фактов на 25 миллионов строк.
- Доставка может находиться в отдельной таблице фактов заголовков заказов или распределяться по строкам по документированному правилу, например пропорционально выручке.
- Расчёты Tableau используют выбранное представление доставки последовательно, а тест гранулярности проверяет уникальность пары ID заказа и ID строки.
Зачем это спрашивают: Сильный ответ не позволяет столбцам разной гранулярности создавать правдоподобные, но завышенные итоги дашборда.
Я бы использовал транзакционную таблицу фактов для денежных потоков и периодический снимок для остатков на конец месяца.
- Транзакционная таблица на 90 миллионов строк поддерживает аддитивные меры притока и оттока по дате проводки, счёту и типу транзакции.
- Снимок содержит одну строку на счёт и дату конца месяца, явно задавая выбор отчётного остатка вместо восстановления каждого закрытия из всей истории.
- Explores в Looker могут разделять views Account и Date, но меры остатка должны выбирать последний снимок и не должны суммироваться по месяцам.
Зачем это спрашивают: Интервьюер оценивает, выбираете ли вы типы фактов из BI-вопроса и аддитивности каждой меры.
Я бы оставил TicketNumber вырожденным измерением и сначала сравнил 12 флагов как столбцы факта с вариантом мусорного измерения.
- TicketNumber остаётся в факте, потому что отдельное измерение на 18 миллионов строк без других атрибутов добавляет связь, но не уменьшает гранулярность.
- VertiPaq часто хорошо сжимает 12 низкокардинальных Boolean-столбцов; мусорное измерение оправдано, только если наблюдаемые сочетания и управляемые подписи измеримо уменьшают модель или упрощают срезы.
- В обоих вариантах я открою бизнес-подписи, скрою суррогатные ключи и проверю drill-through по TicketNumber и размер модели через VertiPaq Analyzer.
Зачем это спрашивают: Вопрос проверяет, применяете ли вы размерные шаблоны по измерениям, а не предполагаете, что мусорное измерение всегда лучше сжимает модель Power BI.
Я бы создавал предварительные записи поставщиков, чтобы каждое требование сохраняло корректный ключ измерения в течение 24-часового окна отчётности.
- Отсутствующий бизнес-ключ поставщика сопоставляется минимальной суррогатной строке с признаком Inferred, а не null-ключу и не удалённому требованию.
- Когда атрибуты поставщика приходят, dbt обновляет эту предварительную строку на месте, поэтому факту на 5 миллионов строк не требуется смена ключа.
- Тесты данных отслеживают возраст неразрешённых предварительных записей, а Tableau подписывает их Pending Provider, не смешивая с действительно неизвестными данными.
Зачем это спрашивают: Интервьюер оценивает, как вы сохраняете полноту фактов, пока поздние измерения догоняют SLA дашборда.
CALCULATE выполняет переход контекста, превращая текущий контекст строки итератора в контекст фильтра для вычисления меры.
- SUMX создаёт контекст строки для входной таблицы, но обычная агрегация не фильтрует модель по текущей строке автоматически.
- Обёртка агрегации в CALCULATE или вызов существующей меры с неявным CALCULATE применяет столбцы текущей строки как фильтры.
- Я бы не итерировал 30 миллионов строк фактов, если та же мера отчёта может пройти по меньшей таблице Product или сводной таблице нужной гранулярности.
Зачем это спрашивают: Интервьюер проверяет понимание контекста вычисления DAX и связь корректности с решениями о масштабе модели.
Я бы фильтровал измерение Product или компактный набор товаров, а затем позволил связям распространить фильтр на факты.
- CALCULATE может применить FILTER к таблице Product на 80 000 строк с мерой маржи на уровне товара или управляемым атрибутом прибыльности.
- FILTER по всем 60 миллионам строк счетов обычно дороже и может задать семантику прибыльности на уровне строки вместо уровня товара.
- До завершения меры я бы уточнил, означает ли прибыльность текущую классификацию каталога или прибыльность в выбранном периоде отчёта.
Зачем это спрашивают: Сильный ответ объединяет семантику CALCULATE, эффективную форму фильтра и точное определение показателя дашборда.
Я бы использовал SUMX для общей маржи строк и разделил её на общее количество вместо среднего значений UnitMargin.
- Числитель проходит по строкам счетов и умножает Quantity на UnitMargin с учётом текущих фильтров ProductKey и DateKey.
- Знаменатель суммирует Quantity в том же контексте фильтра, а DIVIDE возвращает blank или согласованный альтернативный результат при нулевом количестве.
- Я бы сверил результат с SQL хранилища, потому что AVERAGEX по UnitMargin даёт одинаковый вес строке с одной единицей и строке с тысячей единиц.
Зачем это спрашивают: Интервьюер проверяет, реализуют ли итератор и знаменатель заявленное взвешивание по объёму, а не постороннее среднее процентов.
Я бы один раз вычислил результат предыдущего периода в именованной переменной и повторно использовал это скалярное значение в итоговом выражении.
- Переменные делают порядок вычислений видимым и не дают четырём копиям сложной ветки CALCULATE разойтись при изменениях.
- Переменная вычисляется в контексте фильтра места объявления, поэтому перенос за пределы итератора или условия может изменить результат.
- Я бы использовал доменные имена вроде PriorQuarterRevenue и SelectedTarget и сохранил отображаемое выражение модели из 25 таблиц достаточно коротким для ревью.
Зачем это спрашивают: Вопрос проверяет понимание и пользы переменных DAX для читаемости, и семантики их контекста вычисления.
Я бы использовал полное фискальное измерение Date с явными фискальными неделями и ключами сопоставимых периодов вместо григорианских сокращений.
- Шестилетний календарь назначает каждой дате фискальный год, квартал, период, неделю и ключ сопоставимой недели прошлого года.
- Меры выполняют сдвиг через эти фискальные атрибуты или calculation group, чтобы год из 53 недель следовал согласованному правилу сравнения розницы.
- Я бы протестировал итоги периодов у границ фискального года, потому что предположения DATEADD и SAMEPERIODLASTYEAR могут неверно совместить календарь 4-4-5.
Зачем это спрашивают: Интервьюер оценивает, отражает ли time intelligence бизнес-календарь, а не просто использует встроенные функции дат.
Я бы сравнил 18 загруженных дней текущего периода с таким же завершённым срезом дней прошлого года.
- Мера Last Complete Data Date берётся из watermark загрузки фактов, а не из TODAY, поскольку обновление в 07:00 может отставать от активности источника.
- Текущий MTD и прошлогодний MTD фильтруют диапазоны Date по эквивалентному порядковому дню или сопоставленной бизнес-дате.
- Подзаголовок дашборда показывает дату среза, чтобы пользователи знали, что более поздние дни прошлого года исключены.
Зачем это спрашивают: Сильный ответ предотвращает смещение неполного периода и связывает time intelligence с фактическим состоянием обновления.
Я бы определил Shipped Revenue через CALCULATE и USERELATIONSHIP между Date и Ship Date.
- USERELATIONSHIP активирует существующую неактивную связь только для этой меры, а стандартная Order Revenue продолжает использовать Order Date.
- В 45 миллионах строк фактов сохраняются оба ключа даты, а измерение Date остаётся единым источником атрибутов месяца и фискального периода.
- Я бы сочетал визуализации по Ship Date с явно названными мерами отгрузки, поскольку общая мера Revenue продолжила бы следовать активному пути Order Date.
Зачем это спрашивают: Интервьюер проверяет точное использование неактивных связей и ясные семантические имена для авторов отчётов.
Я бы использовал TREATAS, чтобы проецировать ключи выбранных кампаний на управляемый столбец ключа кампании или продаж для меры сравнения.
- Несвязанная таблица остаётся поверхностью параметров и не создаёт физической связи с неоднозначными путями в semantic model.
- TREATAS должен передавать стабильные ID кампаний, а не отображаемые имена, особенно для 20 000 целей с возможными одинаковыми подписями.
- Я бы держал меры целей и факта раздельно и рассчитывал отклонение только после применения нужных фильтров отчёта к обеим.
Зачем это спрашивают: Вопрос проверяет, умеете ли вы намеренно создавать виртуальную связь, не скрывая семантику меры.
Закрытые вопросы
- 21
В казначейском дашборде Power BI есть 10 миллионов ежедневных остатков по счетам с пропусками в выходные; как рассчитать конечный остаток для любого выбранного месяца?
bipower-bidashboards - 22
В модели Power BI есть 70 базовых мер, четыре сравнения по времени и три валюты отображения; как calculation groups сократят поверхность мер?
bipower-bimeasures - 23
Матрица Power BI показывает процент маржи для 60 товаров, а общий итог не равен среднему видимых строк; это ошибка и как определить меру?
bipower-bicss - 24
Матрица Power BI раскрывается от Region к Store для 1 200 магазинов и требует разную формулу промежуточного итога на каждом уровне; как управлять итогами в DAX?
bipower-bimatrix - 25
Отчёту Power BI с 35 миллионами строк продаж нужна доля каждой категории в выбранных регионе и году; использовать ALL, ALLSELECTED или REMOVEFILTERS?
bipower-bi - 26
В semantic model Power BI есть 90 мер, используемых 14 отчётами; как ветвление мер сохранит согласованность DAX-итогов и определений?
measuresdaxbi - 27
Explore заказов в Looker соединяет 50 миллионов строк товаров заказа с клиентами, возвратами и промоакциями; как объявить связи и предотвратить fanout?
bilookerjoins - 28
В проекте Looker есть 24 доменных Explores, повторяющих фискальные поля и логику статусов заказов; как переиспользовать LookML, не скрывая различия доменов?
bilookerlookml - 29
Explore в Looker соединяет 12 миллионов заказов с несколькими платежами и отгрузками; когда symmetric aggregates защищают меры дашборда и что должна предоставить модель?
joinsaggregationbi - 30
Финансовый дашборд Looker запрашивает журнал BigQuery на 300 миллионов строк и должен быть готов ежедневно к 08:00; как использовать PDT и datagroup?
queriesbigquerybi - 31
Workbook Tableau показывает выручку 1 500 магазинов, а LOD FIXED по магазину игнорирует обычный фильтр Region; почему и как сделать поведение дашборда намеренным?
bitableaudashboards - 32
В дашборде клиентов Tableau есть 9 миллионов покупок и нужно показать lifetime value клиента по сегменту и региону; когда использовать выражения LOD FIXED, INCLUDE или EXCLUDE?
bitableaudashboards - 33
Матрица Tableau показывает месячные продажи для 40 регионов и требует накопительный итог и ранг внутри страны; как настроить addressing и partitioning табличных вычислений?
configbitableau - 34
Workbook Tableau сканирует 70 миллионов событий, а фильтр Top 20 Customer должен применяться только внутри выбранного рынка; как контекстные фильтры изменят результат?
bitableau - 35
В устаревшем кубе SSAS Multidimensional есть 600 миллионов ячеек продаж, а финансовому отчёту нужен переиспользуемый вычисляемый элемент Gross Margin; где определить его в MDX?
daxcss - 36
Куб SSAS Multidimensional обслуживает 30 отчётов Excel и требует rolling 12-month set с учётом выбранного элемента календаря; как выразить и ограничить его в MDX?
excel - 37
dbt-модель питает дашборд Power BI из 250 миллионов событий Snowflake с SLA обновления 45 минут; как спроектировать инкрементальную сборку?
bidbtpower-bi - 38
Инкрементальная dbt-модель заказов питает Looker, а 2 процента из 80 миллионов строк приходят с опозданием до пяти дней; как выбрать окно повторной обработки?
bidbtlooker - 39
dbt-март питает 18 workbook в Tableau и должен содержать одну строку на клиента в месяц; какие тесты данных обязательны до обновления?
bidbttableau - 40
dbt-март выручки обслуживает 11 отчётов Power BI, а схема источника может еженедельно добавлять или удалять столбцы; как защитить контракт semantic model?
bidbtpower-bi - 41
Pipeline Power Query объединяет 35 миллионов строк Orders с 4 миллионами строк Customers из одной базы SQL Server, но folding прекращается на пользовательской функции сегмента клиента, а обновление занимает 96 минут. Как изменить решение?
sqldatabasequeries - 42
Политика инкрементального обновления Power BI хранит пять лет из 180 миллионов строк и обновляет последние семь дней; как folding Power Query должен использовать RangeStart и RangeEnd?
bipower-bipower-query - 43
DAG в Cloud Composer должен публиковать финансовый дашборд Looker к 07:30 после завершения трёх источников BigQuery и dbt-марта; как смоделировать зависимости?
dependenciesbidbt - 44
Airflow-пайплайн обновляет dataset Power BI из 22 таблиц к 06:00, но два измерения могут приходить на 90 минут позже фактов; как обработать зависимости и поздние данные?
dependenciesbiairflow - 45
Вы владеете semantic model Power BI с таблицей фактов продаж на 140 миллионов строк, восемью измерениями и 16 thin reports; как структурировать её для переиспользования?
bipower-bimodeling - 46
Semantic model Power BI обслуживает 4 000 сотрудников в 12 регионах, а менеджеры могут видеть несколько регионов; как спроектировать динамический RLS?
designsemantic-layerbi - 47
Три semantic models Power BI содержат 6 миллионов строк клиентов и используют разные уровни клиентов; как создать общие измерения для кросс-доменных дашбордов?
bipower-bidashboards - 48
Модель Power BI открывает 110 мер для 25 авторов отчётов; какие правила именования и стиля вы установите?
bipower-bimeasures - 49
Сертифицированная модель Power BI питает 30 self-service отчётов из 70 миллионов строк; что разрешить менять авторам отчётов, а что оставить централизованным?
bipower-bi - 50
Semantic model Power BI поддерживает финансовые и торговые дашборды из таблицы фактов на 200 миллионов строк, и обе команды хотят собственную иерархию Product; как установить границу?
bipower-bidashboards - 51
Страница продаж в Power BI с 14 визуалами становится интерактивной за 9,2 секунды при целевом времени менее 4 секунд. Как вы локализуете узкое место?
bipower-bitracking - 52
DAX Studio показывает меру длительностью 8,4 секунды: 7,1 секунды в formula engine и 1,0 секунды в storage engine на модели из 90 миллионов строк. Что вы делаете дальше?
measuresdax - 53
Модель Power BI на 220 миллионов строк выросла с 1,4 до 3,8 ГБ после добавления ID транзакции и временной метки. Как вернуть приемлемый размер, не сломав drill-through?
bipower-bitransactions - 54
На одной странице Power BI размещено 28 визуалов, и при каждом изменении слайсера отправляется 64 запроса, из-за чего ожидание достигает 12 секунд. Как вы переделаете страницу?
bipower-biqueries - 55
Визуал удержания клиентов строится 6,7 секунды, потому что мера DISTINCTCOUNT сканирует 180 миллионов строк фактов для каждого месяца. Как вы ускорите его в Power BI?
retentionmeasuresdax - 56
У отчёта Power BI в режиме DirectQuery p95 задержки визуала составляет 18 секунд при работе со Snowflake, но тот же SQL выполняется в хранилище за 5 секунд. Как найти пропавшие 13 секунд?
sqlwarehousesnowflake - 57
В composite-модели Power BI вчерашняя импортированная выручка показана рядом с живыми заказами DirectQuery, из-за чего за текущий день возникает расхождение 2,6 процента. Как исправить поведение модели?
bipower-bi - 58
Executive-дашборд в DirectQuery сканирует 400 миллионов строк при каждом взаимодействии, хотя руководители смотрят только дневные итоги по регионам. Какой дизайн Power BI вы протестируете?
bipower-bidesign - 59
Обновление датасета Power BI успешно завершается за 22 минуты, но потребляет на пике 9 ГБ и вытесняет две другие модели из capacity на 10 ГБ. Как сократить потребление?
bipower-bicapacity - 60
Релиз ускоряет страницу Power BI с 7,5 до 3,1 секунды на ноутбуке разработчика, но production-цель требует p95 ниже 4 секунд для 300 пользователей. Какие доказательства нужны до деплоя?
deploymentbipower-bi - 61
Tableau workbook с 36 листами открывается 14 секунд при целевом времени команды 5 секунд. Как определить, проблема в запросах, вычислениях или layout?
bitableauqueries - 62
Tableau extract на 480 миллионов строк обновляется 95 минут и дважды в неделю пропускает окно публикации 06:00. Что вы измените?
bitableau - 63
Live-дашборд Tableau отправляет 18 запросов в Snowflake и потребляет 22 кредита за 30-минутный региональный review. Как ускорить его, не потеряв drill-путь?
queriessnowflakebi - 64
Tile подписок в Looker показывает итоги по месяцу, тарифу и региону, но сгенерированный SQL включает SubscriptionID и возвращает 3 миллиона строк за 72 секунды. Как исправить путь запроса?
sqlqueriesbi - 65
PDT Looker по 2,1 миллиарда событий BigQuery перестраивается 80 минут каждую ночь, хотя изменяться могут только две последние даты событий. Как сделать её инкрементальной и не пропустить исправления?
bilookerbigquery - 66
Расход Snowflake на BI вырос со 110 до 180 кредитов в день после запуска трёх новых дашбордов, а weekly active users увеличились только на 5 процентов. Как найти и сдержать рост?
dashboardssnowflakezero-to-one - 67
Дашборд на BigQuery тарифицирует 11 ТиБ при каждом почасовом обновлении, хотя пользователям нужны только последние 30 дней. Что вы измените?
dashboardsbigquery - 68
Looker-дашборд повторяет одну дневную агрегацию выручки в 12 tiles, создавая 12 похожих заданий BigQuery и 6 ТБ тарифицируемых данных за загрузку. Как это сократить?
aggregationbigquerybi - 69
В 08:00 приходят 120 пользователей Tableau, пока выполняются два extract refresh, и p95 загрузки растёт с 4 до 19 секунд. Как стабилизировать сервис?
bitableau - 70
Инкрементальное обновление Power BI для факта SQL Server на 180 миллионов строк выросло с 18 до 74 минут после Merge Queries с локальным CSV-справочником. Как восстановить путь запроса?
sqlqueriesjoins - 71
Power BI показывает monthly recurring revenue на 4,8 процента выше Looker для тех же 12 400 аккаунтов. Как вы проведёте сверку?
bipower-bilooker - 72
Тест RLS в Power BI показывает, что 37 региональных менеджеров видят карточку национального итога, хотя детальные строки ограничены правильно. Как вы реагируете?
bipower-birow-level-security - 73
Calculation group валюты в Power BI форматирует Margin Percent как доллары и конвертирует YoY Percent после добавления нового элемента времени. Как исправить взаимодействие?
bipower-bicss - 74
HR-модель Power BI использует RLS для ограничения менеджеров по отделам, но SalaryAmount также должен быть недоступен роли Manager через Analyze in Excel. Достаточно ли скрыть поле?
excelbipower-bi - 75
UAT finance-дашборда выявил 23 дефекта за два дня до закрытия месяца: 5 расхождений KPI и 18 проблем layout или фильтров. Как восстановить релиз?
defectsuatdashboards - 76
Executive-отчёт говорит, что обновлён в 07:00, но источник показывает, что последнему заказу соответствует 23:00 прошлого дня в 4 из 10 последних дней. Как исправить сигнал устаревшего отчёта?
- 77
Weekly active users дашборда customer success упали с 420 до 210 за 8 недель при неизменном размере команды. Как исследовать снижение adoption?
dashboardsdecision-making - 78
Новый релиз семантической модели изменяет историческую конверсию с 18,2 до 16,9 процента за 24 месяца, но в release note указана только чистка названий. Что вы делаете?
- 79
После добавления связи many-to-many между клиентом и территорией один дашборд Power BI завышает выручку на 12 процентов только при выборе двух регионов. Как найти причину?
bipower-bidashboards - 80
В вашем домене 3 устаревших отчёта, 2 противоречивых executive-KPI и 1 нестабильный refresh перед встречей в 09:00. Как расставить приоритеты на следующие 4 часа?
prioritization - 81
Четыре stakeholder-команды прислали 27 запросов для нового operations-дашборда, но на работу есть только 6 недель. Как провести discovery?
dashboardscommunicationstakeholder-management - 82
Вы получаете BI-домен customer success с 45 отчётами, 17 отсутствующими владельцами и 3 разными расписаниями refresh. Как выглядит ownership в первые 30 дней?
ownership - 83
Sales, finance и product используют три определения net revenue с расхождением 7 процентов, и все хотят свою версию на общем дашборде. Как создать metric contract?
dashboardsmonitoring - 84
Восемьдесят self-service пользователей Looker создали 26 несовместимых полей выручки за 3 месяца. Какие guardrails добавить, не закрывая exploration?
bilookerguardrails - 85
На 60-минутном workshop sales хочет считать pipeline по created date, а finance настаивает на expected-close date, что даёт квартальное расхождение 15 процентов. Как решить конфликт?
ci-cd - 86
VP просит дашборд из 70 визуалов, повторяющий ежемесячный PDF на 42 страницы, но usage logs показывают, что только 9 страниц смотрят более 5 человек. Что вы отклоните?
dashboards - 87
Региональный директор просит отключить RLS на 2 дня, чтобы 14 менеджеров экспортировали национальный список клиентов перед планированием. Как вы ответите?
row-level-security - 88
Operations просит свежесть дашборда 5 минут, но источник поступает раз в час, а предложенное изменение добавит 600 долларов в день к стоимости хранилища. Что нужно отклонить или пересогласовать?
dashboardswarehouse - 89
Пятьдесят пять web-авторов Tableau создали 18 extracts с четырьмя определениями выручки, а управляемый источник должен обновляться к 07:00 и сохранять фильтры прав уровня строк. Какую границу self-service вы установите?
bitableauboundaries - 90
В вашем BI-домене есть capacity на 4 изменения в квартал, но поступило 18 запросов на дашборды от 6 команд. Как выбрать задачи и не стать очередью тикетов?
dashboardscapacitydata-structures - 91
Нужно консолидировать 32 marketing-отчёта максимум в 8, сохранив workflow 140 weekly users. Как провести миграцию?
migrations - 92
Четырнадцать дашбордов получили менее 3 просмотров каждый за 90 дней, но по-прежнему выполняют 48 плановых refresh в день. Как безопасно вывести их из эксплуатации?
dashboards - 93
LookML PR добавляет 18 полей и меняет join с many_to_one на many_to_many для Explore, который используют 24 дашборда. Что вы проверите до approval?
dashboardsjoinsbi - 94
dbt PR меняет customer_month с одной строки на клиента в месяц на customer-product-month и питает 17 BI-дашбордов. Как провести review?
dbtdashboards - 95
Семантическая модель Power BI обслуживает 11 отчётов и должна пройти development, test и production с перерывом менее 15 минут. Как спроектировать deployment pipeline?
deploymentbici-cd - 96
Релиз Tableau workbook меняет 9 вычислений, используемых в 6 дашбордах. Какой regression suite нужен до публикации?
bitableauregression - 97
Looker-дашборд выручки 6 раз за месяц нарушил SLO свежести к 07:00, а среднее восстановление заняло 94 минуты. Какой мониторинг и runbook вы добавите?
monitoringbirunbooks - 98
Стоимость хранилища для одного дашборда удвоилась после релиза с 35 до 70 долларов в день, но refresh не падает. Как это мониторить и исправлять?
dashboardsmonitoringwarehouse - 99
Через 10 минут после деплоя семантической модели падают 8 из 20 smoke tests отчётов Power BI, а доля ошибок refresh растёт до 30 процентов. Что вы делаете?
deploymentbipower-bi - 100
Junior BI-разработчик должен за 5 дней добавить новый сегмент churn в Looker-дашборд для 85 account managers. Как вы проведёте его через изменение?
bilookermentoring