📊 Построение DWH и разработка дашбордов в Power BI: 5 проблем и их решение
Честный разбор подводных камней при построении DWH и практические советы по их преодолению. История о том, как превратить хаос данных в работающую бизнес-аналитику.
Привет всем!
Я, Ипатов Александр, backend-разработчик в компании USETECH. Хотел бы поделиться своим опытом по проекту, связанному с реализацией насыщения хранилища DWH и построения BI отчетности на его основе.
В современном мире данные являются одним из ключевых ресурсов для принятия обоснованных решений и успешной работы компании. Поэтому создание и поддержание эффективного хранилища данных (DWH) становится важной задачей для многих организаций. В этой статье мы рассмотрим на конкретном примере проблемы и их решение при построении DWH и дальнейшей разработке дашбордов в Power BI.
Проблемы, которые возникают на этапе построения DWH
Грязные данные на входе
При подключении источников на тестовых примерах, зачастую, мы имеем чистые, практически «подготовленные» данные, однако в первые же дни реальных данных мы практически всегда видим, насколько они на самом деле «грязные». Что делать в таких случаях:
- Проверка входных данных: Введение дополнительных проверок данных на этапе загрузки в ETL для выявления и обработки аномалий.
- Определение формата данных на вход: Разработка и документирование стандартов для входных данных, включая форматы даты, времени, числовых значений и т.д.
- Обработка исключений для грязных данных: Создание правил и алгоритмов для обработки данных, которые не соответствуют стандартам, включая удаление, исправление или замену данных.
- Договоренность с Заказчиком по обработке сценариев отсутствия данных: Определение правил для заполнения пропусков в данных, таких как использование предыдущих значений, интерполяция или прогнозирование.
- Определение принципов доливки данных за пропущенные дни: Разработка механизмов для автоматического добавления данных за пропущенные дни на основе имеющихся данных или внешних источников.
Отсутствие данных
При общении с Заказчиком, необходимо условиться получать данные в ежедневном формате в определенное время. Но что делать, если наступили нужные день и время получения данных, а их все нет. И через 3 часа нет, и даже на следующий день. Как поступать? Наша система должна будет показывать на дашбордах что-то, или не должна… Теперь нужно определять и эти потенциальные случаи.
- Пометки в строках данных: Введение специальных меток или флагов для обозначения отсутствующих данных, таких как "NULL" или "N/A".
- Принципы «доливки» данных за пропущенные дни: Разработка алгоритмов для автоматического заполнения пропусков в данных на основе исторических данных, трендов или других источников.
- Согласование с Заказчиком: Определение правил и условий для «доливки» данных, включая ее частоту и методы заполнения.
Проблемы, возникающие при создании Табулярной модели в SSAS
В общем, критически важно проследить связи между витринами, поскольку табулярная модель всегда планируется к ее широкому использованию в разных дашбордах: это позволяет оптимизировать время корректировки данных во всех отчетах сразу, при такой необходимости. Также важно настроить подключение Power BI непосредственно к Табулярной модели из SSAS в режиме «живого» подключения (Direct Query). Это гарантирует наличие самых свежих данных в отчете на "сейчас". Данная модель хороша тем, что изменения в данных можно реализовать внутри неё, не трогая дашборд. А отчет получит уже изменённые актуальные данные – это приводит к ускорению разработки в случае правок и, если на основе данной табулярной модели построены более чем 1 дашборд, все отчеты будут исправлены за одну итерацию, без дополнительной разработки каждого из дашбордов.
Невозможность создания новых/доработок DAX-мер внутри самого Power BI.
- Использование Tabular Editor: Специальная программа для добавления новых DAX-мер и работы с набором данных.
- Использование программы DAX-Studio: Инструмент написания метрик (точнее – мер на лексиконе Power BI и DAX в целом), который помогает в разработке сложных метрик.
Проблемы на этапе отрисовки визуальной части дашбордов в Power BI
Установка неких «маячков» — интервалов оценок/метрик с положительными либо отрицательными результатами. Обычно такие критичные оценки отображаются в зелёных либо красных оттенках. На «визуале» это действительно помогает более быстро реагировать на возникновение проблемы в работе компании. Здесь важной особенностью Power BI является возможность использования нестандартных визуальных элементов, как своих разработок, так и open source визуальных решений, которые можно найти на форумах по Power BI.
Отсутствие стандартных решений по «визуалу» по требованиям Заказчика.
- Поиск альтернативных визуальных элементов: Использование нестандартных визуальных элементов, как своих разработок, так и open source визуальных решений, которые можно найти на форумах по Power BI.
- Создание собственных визуальных элементов: Разработка собственных визуальных элементов, которые соответствуют требованиям Заказчика.
- Общение с профильным сообществом на форумах: Поиск лучших практик решения аналогичных задач и использование опыта других пользователей.
Проблемы производительности
Регулярный мониторинг производительности DWH и дашбордов для выявления узких мест и оптимизации запросов позволяет определить 3 проблемы:
Низкая производительность SQL-запросов к базе данных.
Длительное время отклика дашбордов.
Высокая нагрузка на сервер.
Среди вариантов решений выделяется следующее:
- Оптимизация запросов: Использование инструментов для профилирования запросов и оптимизации SQL-кода.
- Кэширование данных: Введение механизмов кэширования данных для ускорения повторных запросов.
- Масштабирование инфраструктуры: Увеличение вычислительных мощностей сервера или использование облачных решений для обработки больших объемов данных.
- Использование индексов: Создание и поддержка индексов для ускорения выполнения запросов. Важно не переусердствовать с этим и всегда проверять необходимость введения каждого конкретного индекса, убеждаясь в том, что он действительно будет использоваться.
- Мониторинг и настройка ресурсов: Регулярный мониторинг использования ресурсов и настройка параметров сервера для оптимальной работы.
Проблемы на этапе обучения и поддержки пользователей
После того как отчеты готовы и настроены на взаимодействие с пользователями, возникают следующие моменты:
Недостаток знаний у пользователей.
Непонимание принципов работы DWH и дашбордов.
Технические проблемы при работе с системой.
Помощники в решении данных проблем:
- Обучающие материалы: Разработка и предоставление подробных инструкций и руководств по работе с DWH и Power BI.
- Вебинары и тренинги: Проведение обучающих вебинаров и тренингов для сотрудников.
- Техническая поддержка: Организация круглосуточной технической поддержки для решения возникающих проблем.
- Документация: Создание и поддержание актуальной документации по системе.
- Обратная связь: Сбор и анализ обратной связи от пользователей для улучшения системы.
На этом краткий экскурс по проблемам, возникающим на практике на проектах, связанных с реализацией BI отчетности (с помощью Power BI) в комплексе с разработкой DWH, предлагаю завершить. Все кейсы – реальные, пройденные мной. Надеюсь, что в чем-то смогу помочь людям, имеющим аналогичные «боли».