Поделиться через


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

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

Модели импорта загружаются с данными, сжатыми и оптимизированными, а затем хранятся на диске подсистемой хранилища 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 Query на основе времени можно реализовать с параметрами и даже задать для них относительные периоды времени (относительно даты обновления, например за последние пять лет). Кроме того, помните, что обратное изменение фильтров времени не нарушает работу отчетов; это только изменит объем (меньшая или большая) истории данных, доступной в отчетах.
  • Фильтрация по сущности включает загрузку подмножества исходных данных в модель. Например, вместо загрузки фактов продаж для всех регионов продаж загружаются только факты для одного региона. Этот подход к проектированию приводит к множеству небольших моделей, и он также может исключить необходимость определения безопасности на уровне строк (RLS), но требует предоставления определенных разрешений семантической модели в службе Power BI и создания повторяющихся отчетов, которые подключаются к каждой семантической модели. Параметры Power Query и файлы шаблонов Power BI можно использовать для упрощения управления и публикации. Дополнительные сведения см. в статье Создание и использование шаблонов отчетов в Power BI Desktop.

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

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

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

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

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

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

В этом примере рекомендуется задать для свойства сводки столбца значение Do Not Summarize. Это помогает избежать неправильной суммирования значений номера заказа.

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

Подсистема хранилища 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.

Использование режима хранения DirectQuery

Режим хранения DirectQuery является альтернативой режиму импорта хранилища. Таблицы моделей DirectQuery не импортируют данные. Вместо этого они состоят только из метаданных, определяющих структуру таблицы. При запросе таблицы собственные запросы используются для получения данных из базового источника данных. При объединении таблиц режимов импорта и DirectQuery в одной модели это называется составной моделью .

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

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

Дополнительные сведения, связанные с этой статьей, см. в следующих статьях: