Методы уменьшения объема данных для моделирования импорта

В этой статье рассматриваются модели данных Power BI Desktop, разрабатывающие модели импорта. В ней описываются различные методы, помогающие уменьшить объем данных, загруженных в модели импорта.

Модели импорта загружаются с данными, которые сжимаются и оптимизированы, а затем хранятся на диске подсистемой хранилища VertiPaq. Когда исходные данные загружаются в память, можно увидеть сжатие 10x и поэтому разумно ожидать, что 10 ГБ исходных данных могут сжиматься до около 1 ГБ. Кроме того, при сохранении на диске можно добиться дополнительного сокращения на 20 %.

Несмотря на эффективность, достигнутую подсистемой хранилища VertiPaq, важно свести к минимуму данные, которые необходимо загрузить в модели. Это особенно верно для больших моделей или моделей, которые вы ожидаете, будет расти, чтобы стать большими с течением времени. К четырем убедительным причинам относятся:

  • Большие размеры моделей могут не поддерживаться емкостью. Общая емкость может размещать модели размером до 1 ГБ, а емкости Premium могут размещать более крупные модели в зависимости от номера SKU. Дополнительные сведения см. в статье о поддержке Power BI Premium для больших семантических моделей . (Семантические модели были ранее известны как наборы данных.)
  • Меньшие размеры моделей сокращают количество разных ресурсов емкости, в частности памяти. Это позволяет одновременно загружать больше моделей в течение более длительных периодов времени, что приводит к снижению скорости вытеснения.
  • Небольшие модели обеспечивают более быстрое обновление данных, что приводит к снижению задержки, повышению пропускной способности семантической модели и снижению нагрузки на ресурсы исходной системы и емкости.
  • Меньшее количество строк таблицы может привести к более быстрым вычислениям, что может обеспечить более высокую общую производительность запросов.

Внимание

Иногда эта статья относится к Power BI Premium или ее подпискам на емкость (SKU). Обратите внимание, что корпорация Майкрософт в настоящее время объединяет варианты покупки и отставает от номера SKU емкости Power BI Premium. Новые и существующие клиенты должны рассмотреть возможность приобретения подписок на емкость Fabric (SKU) вместо этого.

Дополнительные сведения см. в разделе "Важные обновления", поступающие в лицензирование Power BI Premium и вопросы и ответы по Power BI Premium.

В этой статье рассматриваются восемь различных методов сокращения данных. К этим методам относятся:

Удаление ненужных столбцов

Столбцы таблицы модели служат двумя основными целями:

  • Отчеты, для достижения проектов отчетов, соответствующих фильтрам, группам и суммированием данных модели
  • Структура модели, поддерживая связи моделей, вычисления модели, роли безопасности и даже форматирование цветов данных

Столбцы, которые не служат этим целям, могут быть удалены. Удаление столбцов называется вертикальной фильтрацией.

Рекомендуется разрабатывать модели с точным количеством столбцов на основе известных требований к отчетам. Ваши требования могут измениться со временем, но помните, что проще добавлять столбцы позже, чем удалить их позже. Удаление столбцов может нарушить отчеты или структуру модели.

Удаление ненужных строк

Таблицы моделей должны загружаться как можно меньше строк. Это можно сделать, загрузив отфильтрованные наборы строк в таблицы моделей по двум разным причинам: для фильтрации по сущности или по времени. Удаление строк называется горизонтальной фильтрацией.

Фильтрация по сущности включает загрузку подмножества исходных данных в модель. Например, вместо загрузки фактов продаж для всех регионов продаж загружаются только факты для одного региона. Этот подход к проектированию приведет к множеству небольших моделей, и он также может устранить необходимость определения безопасности на уровне строк (но потребует предоставления определенных разрешений семантической модели в служба Power BI и создания "повторяющихся" отчетов, которые подключаются к каждой семантической модели). Вы можете использовать параметры Power Query и файлы шаблонов Power BI для упрощения управления и публикации. Дополнительные сведения см. в записи блога о параметрах запросов и шаблонах Power BI

Фильтрация по времени включает ограничение объема журнала данных, загруженного в таблицы типа фактов (и ограничение строк даты, загруженных в таблицы дат модели). Мы рекомендуем не загружать все доступные журналы автоматически, если только это не известное требование для создания отчетов. Полезно понять, что фильтры Power Query на основе времени могут быть параметризованы, а также использовать относительные периоды времени (например, по сравнению с датой обновления, например за последние пять лет). Кроме того, помните, что ретроспективные изменения фильтров времени не будут нарушать отчеты; это приведет только к меньшему (или большему) журналу данных, доступному в отчетах.

Группировать по и суммировать

Возможно, наиболее эффективным способом уменьшения размера модели является загрузка предварительно суммированных данных. Этот метод можно использовать для повышения зерна таблиц типа фактов. Однако существует отдельный компромисс, что приводит к потере деталей.

Например, исходная таблица фактов продаж хранит одну строку на строку заказа. Значительное сокращение данных можно достичь, суммируя все метрики продаж, группирование по дате, клиенту и продукту. Рассмотрим, что еще более значительное сокращение данных может быть достигнуто путем группировки по дате на уровне месяца. Это может достичь возможного сокращения размера модели на 99 %, но отчеты на уровне дня (или отдельный уровень заказа) больше не возможны. Решение об обобщении данных типа фактов всегда включает компромиссы. Компромисс может быть устранен с помощью смешанной модели, и этот параметр описан в методе переключения в смешанный режим .

Оптимизация типов данных столбцов

Подсистема хранилища VertiPaq использует отдельные структуры данных для каждого столбца. Благодаря проектированию эти структуры данных обеспечивают максимальную оптимизацию для числовых данных столбца, которые используют кодировку значений. Однако текст и другие нечисловые данные используют хэш-кодировку. Для этого обработчику хранилища требуется назначить числовый идентификатор каждому уникальному текстовому значению, содержаму в столбце. Это числовые идентификаторы, а затем хранятся в структуре данных, требуя хэш-поиска во время хранения и запроса.

В некоторых конкретных экземплярах можно преобразовать исходные текстовые данные в числовые значения. Например, номер заказа на продажу может быть последовательно префиксирован текстовым значением (например, "SO123456"). Префикс можно удалить, а значение номера заказа преобразуется в целое число. Для больших таблиц это может привести к значительному сокращению данных, особенно если столбец содержит уникальные или высокие значения карта inality.

В этом примере рекомендуется задать для свойства сводки сводки столбца значение "Не суммировать". Это помогает свести к минимуму несоответствующее суммирование значений номера заказа.

Предпочтения настраиваемых столбцов

Подсистема хранилища VertiPaq хранит вычисляемые столбцы модели (определенные в DAX) так же, как обычные столбцы с исходным кодом Power Query. Однако структуры данных хранятся немного иначе и, как правило, обеспечивают менее эффективное сжатие. Кроме того, они создаются после загрузки всех таблиц Power Query, что может привести к расширенному времени обновления данных. Поэтому менее эффективно добавлять столбцы таблицы в вычисляемые столбцы, чем вычисляемые столбцы Power Query (определенные в M).

Рекомендуется создавать настраиваемые столбцы в Power Query. Если источник является базой данных, вы можете добиться большей эффективности нагрузки двумя способами. Вычисление можно определить в инструкции SQL (с помощью собственного языка запросов поставщика) или его можно материализовать как столбец в источнике данных.

Однако в некоторых случаях вычисляемые столбцы модели могут быть лучшим выбором. Это может быть так, если формула включает в себя оценку мер или требуется определенная функция моделирования, поддерживаемая только в функциях DAX. Сведения об одном из таких примеров см . в статье DAX о функциях "Понимание" для иерархий родительского-дочернего элемента.

Отключение загрузки запроса Power Query

Запросы Power Query, которые предназначены для поддержки интеграции данных с другими запросами, не должны быть загружены в модель. Чтобы избежать загрузки запроса в модель, необходимо обеспечить отключение загрузки запросов в этих экземплярах.

Снимок экрана: Power Query с параметром

Отключение автоматической даты и времени

Power BI Desktop включает параметр " Авто дата/время". При включении она создает скрытую таблицу даты и времени для столбцов дат для поддержки авторов отчетов при настройке фильтров, группирования и детализации для периодов времени календаря. Скрытые таблицы фактически вычисляются, что увеличит размер модели. Инструкции по использованию этого параметра см. в руководстве по автоматическому использованию даты и времени в статье Power BI Desktop .

Переключение в смешанный режим

В Power BI Desktop конструктор смешанного режима создает составную модель. По сути, это позволяет определить режим хранения для каждой таблицы. Таким образом, каждая таблица может иметь свое свойство служба хранилища Mode в качестве import или DirectQuery (Двойное — это еще один параметр).

Эффективным способом уменьшения размера модели является установка свойства Режим хранения для больших таблиц фактов в значение DirectQuery. Рассмотрим, что этот подход к проектированию может хорошо работать вместе с группой и суммировать метод, представленный ранее. Например, сводные данные о продажах можно использовать для достижения высокой производительности "сводки" отчетов. Детализация на странице может отображать детализированные продажи для конкретного (и узкого) контекста фильтра, отображая все заказы на продажу в контексте. В этом примере страница детализации будет содержать визуальные элементы на основе таблицы DirectQuery для получения данных заказа на продажу.

Однако существует множество последствий безопасности и производительности, связанных с составными моделями. Дополнительные сведения см . в статье "Использование составных моделей" в Power BI Desktop .

Дополнительные сведения о проектировании модели импорта Power BI см. в следующих статьях: