В книге излагаются основы моделирования данных с точки зрения языка DAX. Разбираются реальные бизнес-сценарии, связанные с учетом складских запасов, прогнозированием, взаимодействием между отделами в рамках компании и безопасностью данных. Прорабатываются нюансы моделирования данных и распространенные ошибки, допускаемые при построении сложных агрегаций.
Издание поможет бизнес-аналитикам в построении мощных аналитических решений на основе данных с использованием всего потенциала доступных инструментов.
https://github.com/PacktPublishing/Extreme-DAX
Author(s): Мишель Розема, Хенк Влотман
Publisher: ДМК Пресс
Year: 2023
Language: Russian
Pages: 404
City: М.
Tags: bi
Оглавление
Об авторах
О редакторе
Предисловие от издательства
Предисловие
Для кого эта книга
Структура книги
Как извлечь максимум из книги
Сопроводительные файлы
Цветные изображения
Условные обозначения
Часть I. Введение
Глава 1.1. DAX в бизнес-аналитике
Пятислойная модель бизнес-аналитики
Аналитика предприятия и аналитика конечных пользователей
Для чего используется DAX и где его найти
Excel
Power BI
SQL Server Analysis Services
Azure Analysis Services
Инструменты для разработки моделей и написания выражений DAX
Сделано при помощи DAX: визуальные элементы и интерактивные отчеты
Подходы к разработке решений
Использование Power BI для ускорения разработки аналитических решений
Мы не знаем точно, что нам нужно
Наши данные некорректны
Цикл цифровой трансформации
Заключение
Глава 1.2. Разработка модели
Колоночное хранение данных
Реляционные базы данных
Колоночные базы данных
Типы данных и кодирование
Связи
Данные в Excel
Реляционные базы данных
Реляционная модель Power BI
Свойства связей
Активные и неактивные связи
Направление фильтрации
Кратность
Оптимальная структура модели данных
Схемы «звезда» и «снежинка»
Проблемы, присущие схеме «звезда»
Концепции реляционных моделей, которых нужно избегать при моделировании в Power BI
Независимые измерения
Только одна таблица фактов
Хранилище данных как единый источник истины
Использование связей типа «многие ко многим»
Производительность модели и использование памяти
Заключение
Глава 1.3. Применение DAX
Вычисляемые столбцы
Вычисляемые таблицы
Меры
Фильтры безопасности
Запросы DAX
Таблицы дат
Создание таблицы дат
Практические советы по использованию языка DAX
Первым делом меры!
Создавайте явные меры
Используйте базовые меры в качестве строительных блоков
Прячьте от пользователей ненужные им элементы модели
Не смешивайте данные и меры – создайте для мер отдельную таблицу
Типы таблиц
Заключение
Глава 1.4. Контексты и фильтры
Введение в контексты DAX
Контекст строки
Контекст запроса
Контекст фильтра
Обнаружение фильтров
Сравнение контекста запроса и фильтра с контекстом строки
Фильтрация в DAX: использование функции CALCULATE
Шаг 1. Настройка контекста фильтра
Шаг 2. Удаление существующих фильтров
Шаг 3. Применение новых фильтров
Шаг 4. Вычисление выражения в новом контексте
Удаление фильтров при помощи функций группы ALL
Функции логики операций со временем
Изменение поведения связей
Табличные функции в DAX
Табличные агрегации
Использование виртуальных таблиц
Контекст в табличных функциях
Производительность при использовании табличных функций
Фильтрация при помощи табличных функций
Использование функции CALCULATETABLE
Фильтры и таблицы
Использование функции TREATAS
Переменные в DAX
Заключение
Часть II. Применение DAX на реальных примерах
Глава 2.1. Безопасность в DAX
Знакомство с безопасностью на уровне строк (RLS)
Роли безопасности
Фильтры безопасности в DAX
Динамическая безопасность на уровне строк
Особенности моделирования данных с RLS
Проверка ролей безопасности
Тестирование отчетов с динамическим подключением
Модель для имперсонализации
Добавление таблицы pImpersonation в модель данных
Добавление тестовой роли безопасности
Собираем все вместе
Иерархическая безопасность с применением функций PATH
Иерархические таблицы
Знакомство с функциями группы PATH
PATH
PATHCONTAINS
PATHLENGTH
PATHITEM
PATHITEMREVERSE
Использование функций PATH совместно с RLS
Продвинутая навигация по иерархии в RLS
Безопасность атрибутов
Применение безопасности атрибутов
Безопасность на уровне объектов и ее ограничения
Динамическая защита атрибутов: безопасность на уровне значений
Безопасность на уровне значений: моделирование данных
Безопасность на уровне значений: фильтры безопасности
Безопасность на уровне значений: сложные сценарии
Разработка моделей данных с безопасностью на уровне значений
Защита уровней агрегации
Меры не могут быть защищены, а таблицы фактов – могут
Ограничение гранулярности таблицы фактов
Защита уровней агрегации с помощью составных моделей данных
Сочетание защиты уровней агрегации с безопасностью на уровне значений
Защита уровня агрегации как атрибута
Заключение
Глава 2.2. Динамическое изменение визуализации
Рассматриваемый пример
Динамические меры
Базовые меры показателей
Создание вспомогательной таблицы
Создание динамической меры
Динамический выбор показателя и используемой даты
Динамические метки
Описание сценария
Создание вспомогательной таблицы
Создание меры DAX с использованием динамических меток
Комбинирование динамических меток с динамическими вычислениями
Заключение
Глава 2.3. Альтернативные календари
Недельный и григорианский календари
Что такое недельный календарь?
Номера недель
Периоды
Кварталы
Годы
Создание недельного календаря
Настройка дат
Определение даты начала года
Определение даты конца года
Создание дополнительных столбцов в таблице дат
Анализ с применением логики операций со временем для недельного календаря
Модель Power BI
Расчет нарастающих итогов с начала года
Расчет приростов продаж
Расчет скользящих средних продаж за отчетный год
Поддержание актуальности отчетов
Таблица Date Selection
Создание вариантов выбора в таблице
Использование вариантов выбора дат в мерах
Заключение
Глава 2.4. Использование механизма AutoExist
Модель данных Power BI
Как Power BI визуализирует данные из модели
Фильтры и контекст
Как использование мер способно изменить поведение визуального элемента
Знакомство с запросами DAX визуальных элементов
Что такое AutoExist и как он работает
Использование нескольких фильтров в визуальном элементе
Как AutoExist позволяет оптимизировать вычисление формул DAX
Пример: пропущенные рабочие дни
Условия задачи
Структура модели
Анализ сумм заказов
Расширение таблицы Calendar
Анализ рабочих дней
Куда делся мой рабочий день?
Как решить проблему пропущенных рабочих дней
Источник проблемы
Изменение структуры модели для обхода механизма AutoExist
Всегда учитывайте контекст
Исправляем ошибку с рабочими днями
Оптимизация производительности отчетов с AutoExist
Гранулярность в таблицах фактов
Фильтрация в нескольких таблицах фактов
Оптимизация структуры модели данных
Оптимизация визуальных элементов
Заключение
Глава 2.5. Взаимодействие внутри компании
Моделирование процесса ведения продаж в компании QuantoBikes
Процесс ведения продаж
Модель данных Power BI
Взаимоотношения между филиалами одной компании
Представление с филиалами против сводного представления
Сопоставление внутренних продаж и покупок
Визуализация внутренних движений компании
Будущие продажи
Анализ одиночных продаж
Анализ долгосрочных продаж
Анализ старых заказов
Анализ текущих заказов
Оптимизация расчета для текущих заказов
Анализ излишков по счетам
Анализ своевременных заказов
Коррекция для запаздывающих заказов
Дальнейшая оптимизация
Тестирование сложных вычислений
Заключение
Глава 2.6. Исследуем будущее: прогнозирование и будущая стоимость
Финансовые расчеты
Приведенная стоимость и чистая приведенная стоимость
Внутренняя норма доходности
Финансовые функции DAX
Бизнес-сценарий и модель данных
Подбор приемлемой ставки и индексов
Вычисление будущей стоимости
Первоначальные инвестиции и остаточная стоимость
Нерегулярные денежные потоки
Повторяющиеся денежные потоки
Положительные и отрицательные денежные потоки
Вычисление чистой приведенной стоимости
Вычисление внутренней нормы доходности
Расчет аренды, покрывающей издержки
Поиск суммы покрывающей издержки аренды с помощью аппроксимации
Оптимизация аппроксимационного подхода
Заключение
Глава 2.7. Анализ состояния запасов
Моделирование данных, ориентированных на статусы
Гранулярность складских запасов
Базовые складские расчеты
Целевой уровень запасов
Прогнозирование складских запасов
Два типа прогнозирования
Прогнозирование продаж как инструмент предсказания изменений запасов
Экстраполяция как инструмент предсказания изменений запасов
Вычисление долгосрочных складских запасов
Использование целевого уровня запасов на основе прогноза
Использование линейной регрессии при экстраполяции товарных запасов
Заключение
Глава 2.8. Планирование кадровых ресурсов
Модель данных Power BI для планирования кадровых ресурсов
Расчет показателей продажи
Оптимизация расчета показателей продажи
Вычисление требуемых объемов ресурсов для реализованных проектов
Работа с итоговыми значениями
Оптимизация вычисления трудовых ресурсов
Оптимизация модели данных Power BI
Уровни агрегации
Заключение
Предметный указатель