Обзор Direct Lake
Direct Lake — это параметр режима хранения для таблиц в семантической модели Power BI, которая хранится в рабочей области Microsoft Fabric. Он оптимизирован для работы с большими объемами данных, которые можно быстро загрузить в память из таблиц Delta , хранящих свои данные в файлах Parquet в OneLake — едином хранилище для всех аналитических данных. После загрузки в память семантическая модель обеспечивает высокую производительность запросов. Direct Lake устраняет медленные и дорогостоящие потребности в импорте данных в модель.
Режим хранения Direct Lake можно использовать для подключения к таблицам или представлениям одного Fabric Lakehouse или Fabric склада. Для обоих этих элементов Fabric и семантических моделей Direct Lake требуется лицензия на емкости Fabric.
В некоторых отношениях семантическая модель Direct Lake похожа на семантическую модель импорта . Это связано с тем, что данные модели загружаются в память подсистемой VertiPaq для быстрой производительности запросов (за исключением случаев резервныхDirectQuery, которые описаны далее в этой статье).
Однако семантическая модель Direct Lake отличается от семантической модели импорта важным образом. Это связано с тем, что операция обновления для семантической модели Direct Lake концептуально отличается от операции обновления для семантической модели импорта. Для семантической модели Direct Lake обновление включает операцию обрамления (описанную далее в этой статье), которая может занять несколько секунд. Это дешёвая операция, в рамках которой семантическая модель анализирует метаданные последней версии таблиц Delta и обновляется, чтобы ссылаться на последние файлы в OneLake. В отличие от этого, для семантической модели импорта обновление создает копию данных, которая может занять значительное время и потреблять значительные ресурсы источника данных и емкости (память и ЦП).
Заметка
Инкрементальное обновление для семантической модели данных на основе импорта может помочь сократить время обновления и использование мощностей.
Когда следует использовать режим хранения Direct Lake?
Основной вариант использования для режима хранилища Direct Lake обычно предназначен для проектов аналитики, управляемых ИТ-службами, которые используют архитектуры, ориентированные на озеро. В этом сценарии у вас уже есть или вы ожидаете накопить большие объемы данных в OneLake. Быстрая загрузка этих данных в память, частые и быстрые операции обновления, эффективное использование ресурсов емкости и высокая производительность запросов являются важными для этого варианта использования.
Заметка
Импорт и семантические модели DirectQuery по-прежнему актуальны в Fabric, и они являются правильным выбором семантической модели для некоторых сценариев. Например, режим импорта данных часто подходит для аналитика, занимающегося самообслуживанием, которому необходимы свобода и гибкость для быстрого реагирования, не завися от ИТ специалистов для добавления новых элементов данных.
Кроме того, интеграция OneLake автоматически записывает данные для таблиц в режиме хранилища импорта в таблицы Delta в OneLake без каких-либо усилий по миграции. Используя эту опцию, вы можете реализовать множество преимуществ Fabric, доступных для пользователей импорта семантической модели, таких как интеграция с lakehouses с помощью ярлыков, запросов SQL, записных книжек и т. д. Мы рекомендуем использовать этот вариант как быстрый способ получения преимуществ Fabric без обязательной или немедленной повторной разработки существующего хранилища данных и /или системы аналитики.
Режим хранения Direct Lake также подходит для минимизации задержки данных, чтобы быстро сделать данные доступными для бизнес-пользователей. Если таблицы Delta изменяются периодически (и предполагается, что вы уже сделали подготовку данных в озере данных), вы можете полагаться на автоматические обновления, чтобы адаптироваться в ответ на эти изменения. В этом случае запросы, отправленные в семантику модели, возвращают последние данные. Эта функция хорошо работает в партнерстве с функцией автоматического обновления страниц отчетов Power BI.
Имейте в виду, что Direct Lake зависит от подготовки данных в озере данных. Подготовка данных может выполняться с использованием различных инструментов, таких как задания Spark для озер данных Fabric, инструкции T-SQL DML для хранилищ Fabric, потоков данных, пайпланов и других. Этот подход помогает гарантировать, что логика подготовки данных выполняется на максимально низких уровнях архитектуры для максимального повторного использования. Однако если автор семантической модели не имеет возможности изменять исходный элемент, например, если у аналитика самообслуживания нет разрешений на запись в озерном доме, управляемом ИТ, то режим хранения импорта может оказаться лучшим вариантом. Это связано с тем, что она поддерживает подготовку данных с помощью Power Query, которая определяется как часть семантической модели.
Не забудьте учитывать текущую лицензию емкости Fabric и ограничители мощности емкости Fabric, когда вы рассматриваете режим хранения Direct Lake. Кроме того, учитывайте соображения и ограничения и, которые описаны далее в этой статье.
Совет
Мы рекомендуем создать прототип (или подтверждение концепции) для определения того, является ли семантическая модель Direct Lake правильным решением, а также для снижения риска.
Принцип работы Direct Lake
Как правило, запросы, отправленные в семантическую модель Direct Lake, обрабатываются из кэша в памяти столбцов, источником которых являются таблицы Delta. Базовое хранилище для таблицы Delta — это один или несколько файлов Parquet в OneLake. Файлы Parquet упорядочивают данные по столбцам, а не строкам. Семантические модели загружают все столбцы из разностных таблиц в память, так как они требуются запросами.
Семантическая модель Direct Lake также может использовать резервный DirectQuery, который включает простое переключение на режим DirectQuery. Резервный механизм DirectQuery извлекает данные непосредственно из конечной точки аналитики SQL в озере данных или в хранилище. Например, может использоваться резервный сценарий, если таблица Delta содержит больше строк данных, чем поддерживается возможностями Fabric (описано далее в этой статье). В этом случае операция DirectQuery отправляет запрос в конечную точку аналитики SQL. Резервные операции могут привести к снижению производительности запросов.
На следующей схеме показано, как работает Direct Lake с помощью сценария пользователя, который открывает отчет Power BI.
На схеме показаны следующие действия пользователя, процессы и функции.
Пункт | Описание |
---|---|
OneLake — это озеро данных, которое хранит аналитические данные в формате Parquet. Этот формат файла оптимизирован для хранения данных для семантических моделей Direct Lake. | |
Озерное хранилище Fabric или склад Fabric существует в рабочей области, которая использует ресурсы Fabric. Решение Lakehouse имеет SQL-аналитический интерфейс, который предоставляет возможности запросов на основе SQL. Таблицы (или представления) предоставляют средства для запроса таблиц Delta в OneLake с помощью Transact-SQL (T-SQL). | |
Семантическая модель Direct Lake существует в рабочей области Fabric. Он подключается к таблицам или представлениям в озерном доме или складе. | |
Пользователь открывает отчет Power BI. | |
Отчет Power BI отправляет запросы выражений анализа данных (DAX) в семантическую модель Direct Lake. | |
Когда это возможно (и необходимо), семантическая модель загружает столбцы в память непосредственно из файлов Parquet, хранящихся в OneLake. Запросы достигают производительности уровня оперативной памяти, что очень быстро. | |
Семантическая модель возвращает результаты запроса. | |
Отчет Power BI отрисовывает визуальные элементы. | |
В определенных обстоятельствах, например, когда семантическая модель превышает ограничения емкости, запросы семантической модели автоматически возвращаются в режим DirectQuery. В этом режиме запросы отправляются в конечную точку аналитики SQL для lakehouse или хранилища данных. | |
Запросы DirectQuery, отправленные в конечную точку аналитики SQL, в свою очередь запрашивают таблицы Delta в OneLake. По этой причине производительность запросов может быть медленнее, чем запросы в памяти. |
В следующих разделах описаны основные понятия и функции Direct Lake, включая загрузку столбцов, кадрование, автоматическое обновление и резервный механизм DirectQuery.
Загрузка столбцов (перекодирование)
Семантические модели Direct Lake загружают данные из OneLake только тогда, когда столбцы запрашиваются впервые. Процесс загрузки данных по запросу от OneLake называется перекодированием.
Когда семантическая модель получает запрос DAX (или многомерные выражения (MDX)), она сначала определяет, какие столбцы необходимо использовать для получения результата запроса. Требуется любой столбец, непосредственно используемый запросом, а также столбцы, необходимые для связей и мер. Как правило, количество столбцов, необходимых для создания результата запроса, значительно меньше числа столбцов, определенных в семантической модели.
После понимания необходимых столбцов семантическая модель определяет, какие столбцы уже находятся в памяти. Если какие-либо столбцы, необходимые для запроса, не в памяти, семантическая модель загружает все данные для этих столбцов из OneLake. Загрузка данных столбцов обычно является быстрой операцией, однако она может зависеть от таких факторов, как кратность данных, хранящихся в столбцах.
Затем столбцы, загруженные в память, находятся в памяти. Будущие запросы, включающие только резидентные столбцы, больше не должны загружаться в память.
Столбец остается в памяти до тех пор, пока не появится причина для его удаления (вытеснения) из памяти. Причины удаления столбцов:
- Модель или таблица была обновлена после обновления таблицы Delta в источнике (см. фрейминга в следующем разделе).
- В течение некоторого времени запрос не использовал столбец.
- Другие причины управления памятью, включая давление на память в емкости из-за других параллельных операций.
Ваш выбор SKU Fabric определяет максимальную доступную память для каждой семантической модели Direct Lake в емкости. Дополнительные сведения об ограничениях защиты ресурсов и максимальных ограничениях памяти см. в разделе Ограничения емкости Fabric и ограничения, далее в этой статье.
Обрамление
Framing предоставляет владельцам моделей моментальный контроль над тем, какие данные загружаются в семантическую модель. Фреймирование — это операция Direct Lake, активируется обновлением семантической модели, и в большинстве случаев требуется всего несколько секунд. Это связано с низкой стоимостью операции, в которой семантическая модель анализирует метаданные последней версии таблиц Delta Lake и обновляется, чтобы ссылаться на последние файлы Parquet в OneLake.
При фрейминге сегменты и словари столбцов таблицы, находящейся в памяти, могут быть удалены из памяти, если основная информация изменилась, и точка времени обновления становится новой основой для всех будущих событий транскодирования. С этого момента запросы Direct Lake рассматривают только данные в таблицах Delta по состоянию на время последней операции обрамления. По этой причине таблицы Direct Lake запрашиваются для возврата данных на основе состояния таблицы Delta в точке последней операции обрамления. Это время не обязательно соответствует последнему состоянию таблиц Delta.
Обратите внимание, что семантическая модель анализирует журнал Delta каждой Delta-таблицы во время обработки, чтобы удалить только затронутые сегменты столбцов и перезагрузить вновь добавленные данные во время транскодирования. Важной оптимизацией является то, что словари обычно сохраняются, когда инкрементальный фрейминг вступает в силу, и новые значения добавляются в существующие словари. Этот пошаговый подход к обрамлению помогает снизить нагрузку при перезагрузке и повысить производительность запросов. В идеальном случае, когда таблица Delta не получала обновлений, перезагрузка не требуется для столбцов, уже находящихся в памяти, и запросы показывают гораздо меньшее влияние на производительность после кадрирования, так как добавочное обрамление по сути позволяет семантической модели обновлять значительные части существующих данных в памяти.
На следующей схеме показано, как работают операции обрамления Direct Lake.
На схеме показаны следующие процессы и функции.
Пункт | Описание |
---|---|
Семантическая модель существует в рабочей области Fabric. | |
Операции обрамления выполняются периодически, и они задают базовые показатели для всех будущих перекодирования событий. Операции обрамления могут выполняться автоматически, вручную, по расписанию или программно. | |
OneLake хранит метаданные и файлы Parquet, которые представлены в виде таблиц Delta. | |
Последняя операция обрамления включает файлы Parquet, связанные с таблицами Delta, включая те файлы Parquet, которые были добавлены до последней операции обрамления. | |
Последующая операция обрамления включает файлы Parquet, добавленные после последней операции обрамления. | |
Столбцы, находящиеся в резидентной памяти, в семантической модели Direct Lake могут быть исключены, и момент обновления становится новой отправной точкой для всех будущих событий транскодирования. | |
Последующие изменения данных, представленные новыми файлами Parquet, не отображаются до следующей операции обрамления. |
Не всегда желательно иметь данные, представляющие последнее состояние любой таблицы Delta при выполнении операции транскодирования. Рассмотрим, что фреймирование может помочь обеспечить согласованные результаты запросов в средах, где данные в разностных таблицах являются временными. Данные могут быть временными по нескольким причинам, например при длительных процессах извлечения, преобразования и загрузки (ETL).
Обновление для семантической модели Direct Lake можно выполнять вручную, автоматически или программно. Дополнительные сведения см. в обновлении семантических моделей Direct Lake.
Дополнительные сведения о версиях и кадрировании таблиц Delta см. в разделе Общие сведения о хранилище для семантических моделей Direct Lake.
Автоматическое обновление
Существует параметр уровня семантической модели для автоматического обновления таблиц Direct Lake. Она включена по умолчанию. Это гарантирует, что изменения данных в OneLake автоматически отражаются в семантической модели Direct Lake. Вы должны отключить автоматические обновления, если вы хотите управлять изменениями данных путем обрамления, которое было описано в предыдущем разделе. Дополнительные сведения см. в статье Управление семантических моделей Direct Lake.
Совет
Вы можете настроить автоматическое обновление страниц в отчетах Power BI. Это функция, которая автоматически обновляет определенную страницу отчета, обеспечивая подключение отчета к семантической модели Direct Lake (или другим типам семантической модели).
Резервный вариант DirectQuery
Запрос, отправленный в семантику Direct Lake, может вернуться к режиме DirectQuery. В этом случае он извлекает данные непосредственно из конечной точки аналитики SQL озера или хранилища. Такие запросы всегда возвращают последние данные, так как они не ограничены моментом во времени последней операции обрамления.
Запрос всегда откатывается, когда семантическая модель запрашивает представление в конечной точке аналитики SQL или таблицу в конечной точке аналитики SQL, которая применяет безопасность на уровне строк (RLS).
Кроме того, запрос может откатиться, когда семантическая модель превышает ограничения емкости.
Важный
Если это возможно, вы всегда должны разработать решение (или размер емкости), чтобы избежать резервного использования DirectQuery. Это связано с тем, что это может привести к снижению производительности запросов.
Вы можете управлять резервным вариантом семантических моделей Direct Lake, задав его свойство DirectLakeBehavior. Дополнительные сведения см. в разделе Установите свойство поведения Direct Lake.
Ограничители и ограничения емкости Fabric
Для семантических моделей Direct Lake требуется лицензия емкости Fabric. Кроме того, существуют предельные ограничения и лимиты емкости, которые применяются к подписке на емкость Fabric (SKU), как показано в следующей таблице.
Важный
Первый столбец в следующей таблице также содержит подписки на емкость Power BI Premium (P SKU). Обратите внимание, что Майкрософт объединяет варианты приобретения и прекращает использование SKU Power BI Premium для расчета по емкости. Новые и существующие клиенты должны рассмотреть возможность приобретения подписок на емкость Fabric (SKU) в качестве альтернативы.
Дополнительные сведения см. в статье Важные обновления, вступающие в силу для лицензирования для Power BI Premium и Power BI Premium.
SKU ткани | Файлы в формате Parquet для таблицы | Группы строк в таблице | Строки на таблицу (миллионы) | Максимальный размер модели на диске и в OneLake (ГБ) | Максимальный объем памяти (ГБ) 1 |
---|---|---|---|---|---|
F2 | 1,000 | 1,000 | 300 | 10 | 3 |
F4 | 1,000 | 1,000 | 300 | 10 | 3 |
F8 | 1,000 | 1,000 | 300 | 10 | 3 |
F16 | 1,000 | 1,000 | 300 | 20 | 5 |
F32 | 1,000 | 1,000 | 300 | 40 | 10 |
F64/FT1/P1 | 5,000 | 5,000 | 1,500 | Неограниченный | 25 |
F128/P2 | 5,000 | 5,000 | 3,000 | Неограниченный | 50 |
F256/P3 | 5,000 | 5,000 | 6,000 | Неограниченный | 100 |
F512/P4 | 10 000 | 10 000 | 12,000 | Неограниченный | 200 |
F1024/P5 | 10 000 | 10 000 | 24,000 | Неограниченный | 400 |
F2048 | 10 000 | 10 000 | 24,000 | Неограниченный | 400 |
1 Для семантических моделей Direct Lake Max Memory представляет верхний предел использования памяти для того, сколько данных может быть загружено. По этой причине это не является ограничителем, так как превышение его значения не приводит к возврату в режим DirectQuery; однако это может влиять на производительность, если объем данных достаточно велик, чтобы привести к чрезмерному разбиению страниц при загрузке и выгрузке данных модели из OneLake.
При превышении размера модели Max на диске или в OneLake все запросы к семантической модели автоматически переключаются в режим DirectQuery. Все остальные ограждения, представленные в таблице, оценены для каждого запроса. Поэтому важно, чтобы оптимизировать таблицы Delta и семантической модели Direct Lake, чтобы избежать необходимости масштабировать до более высокого номера SKU Fabric (что приводит к увеличению затрат).
Кроме того, единица емкости и Максимальный объем памяти для каждого запроса применяться к семантических моделях Direct Lake. Дополнительные сведения см. в разделе Емкости и номера SKU.
Рекомендации и ограничения
Семантические модели Direct Lake представляют некоторые рекомендации и ограничения.
Заметка
Возможности и функции семантических моделей Direct Lake развиваются. Обязательно периодически проверяйте список последних рекомендаций и ограничений.
- Когда таблица семантической модели Direct Lake подключается к таблице в конечной точке аналитики SQL, которая обеспечивает безопасность на уровне строк (RLS), запросы, связанные с этой таблицей моделей, всегда возвращаются в режим DirectQuery. Производительность запросов может быть медленнее.
- Когда таблица семантической модели Direct Lake подключается к представлению в конечной точке аналитики SQL, запросы, связанные с этой таблицей моделей, всегда возвращаются в режим DirectQuery. Производительность запросов может быть медленнее.
- Составное моделирование не поддерживается. Это означает, что таблицы семантической модели Direct Lake нельзя смешать с таблицами в других режимах хранения, таких как import, DirectQuery или Dual (за исключением особых случаев, включая группы вычислений , параметры what-ifи параметры поля ).
- Вычисляемые столбцы и вычисляемые таблицы, ссылающиеся на столбцы или таблицы в режиме хранилища Direct Lake, не поддерживаются. Группы вычислений, параметров "что-если"и параметров поля, которые неявно создают рассчитанные таблицы, и рассчитанные таблицы, не ссылающиеся на столбцы или таблицы Direct Lake, поддерживаются.
- Таблицы режима хранения Direct Lake не поддерживают сложные типы столбцов таблиц Delta. Двоичные и семантические типы GUID также не поддерживаются. Эти типы данных необходимо преобразовать в строки или другие поддерживаемые типы данных.
- Для сопоставления связей таблиц требуются типы данных связанных столбцов.
- Односторонние столбцы связей должны содержать уникальные значения. Запросы завершаются ошибкой, если в одном столбце обнаружены повторяющиеся значения.
- автоматическая аналитика данных и времени в Power BI Desktop не поддерживается. Указание вашей собственной таблицы дат в качестве таблицы дат поддерживается.
- Длина строковых значений столбцов ограничена 32 764 символами Юникода.
- Значение с плавающей запятой NaN (не число) не поддерживается.
- Публикация в Интернете из Power BI с помощью учетной записи службы поддерживается только при использовании фиксированной идентичности для семантической модели Direct Lake.
- В веб-моделированиипроверка семантических моделей Direct Lake ограничена. Предполагается, что выборы пользователей являются правильными, и запросы для проверки кардинальности или перекрёстных фильтров для связей или для выбранного столбца дат в помеченной таблице дат не выдастся.
- На портале Fabric вкладка Direct Lake в журнале обновления содержит только ошибки обновления, связанные с Direct Lake. Операции успешного обновления схемы не перечислены.
- Номер SKU Fabric определяет максимально доступную память для емкости каждой семантической модели Direct Lake. При превышении лимита запросы к семантической модели могут выполняться медленнее из-за чрезмерного переключения страниц в данных модели.
- Создание семантической модели Direct Lake в рабочей области, которая находится в другом регионе рабочей области источника данных, не поддерживается. Например, если Lakehouse находится в западной части США, вы можете создавать только семантические модели из этого Lakehouse в том же регионе. Обходным решением является создание Lakehouse в рабочей области другого региона и создание ярлыков к таблицам перед созданием семантической модели. Чтобы узнать, в каком регионе вы находитесь, см. как определить ваш домашний регион в системе Fabric.
- Вы можете создать и просмотреть пользовательскую семантическую модель Direct Lake с помощью удостоверения субъекта-службы, но семантическая модель Direct Lake по умолчанию не поддерживает удостоверения субъектов-службы. Убедитесь, что проверка подлинности учетной записи службы включена для REST API Fabric в арендаторе, и предоставьте учетной записи службы разрешения уровня «Контрибьютор» или выше для рабочей области семантической модели Direct Lake.
- Для внедрения отчетов требуется токен встраивания версии 2 .
- Direct Lake не поддерживает учетные записи сервисных принципалов для проверки подлинности.
- Поддерживаются настраиваемые семантические модели Direct Lake, созданные субъектом-службой и средством просмотра с помощью субъекта-службы, но модели семантики Direct Lake по умолчанию не поддерживаются.
Сравнение с другими режимами хранения
В следующей таблице сравнивается режим хранилища Direct Lake с режимами импорта и хранения DirectQuery.
Способность | Директ Лейк | Импорт | Прямой запрос |
---|---|---|---|
Лицензирование | Только подписка на емкость Fabric (SKU) | Любая лицензия Fabric или Power BI (включая бесплатные лицензии Microsoft Fabric) | Любая лицензия Fabric или Power BI (включая бесплатные лицензии Microsoft Fabric) |
Источник данных | Только таблицы lakehouse или склада (или представления) | Любой соединитель | Любой соединитель, поддерживающий режим DirectQuery |
Подключение к представлениям конечных точек аналитики SQL | Да, но автоматически откатится к режиму DirectQuery | Да | Да |
Составные модели | Нет 1 | Да, может сочетаться с таблицами в режиме DirectQuery или в режиме двойного хранения. | Да. Может сочетаться с таблицами режима импорта или двойного хранения |
Единый вход (SSO) | Да | Неприменимо | Да |
Вычисляемые таблицы | Нет. Кроме групп вычислений, параметров what-ifи параметров поля, которые неявно создают вычисляемые таблицы. | Да | Нет. Вычисляемые таблицы используют режим хранения импорта, даже если они ссылаются на другие таблицы в режиме DirectQuery |
Вычисляемые столбцы | Нет | Да | Да |
Гибридные таблицы | Нет | Да | Да |
Разделы таблицы модели | Нет. Однако секционирование можно выполнить на уровне таблицы Delta. | Да — либо автоматически создается путем добавочного обновления, либо вручную создано с помощью конечной точки XMLA | Нет |
Агрегации, определяемые пользователем | Нет | Да | Да |
Безопасность на уровне объекта аналитики SQL или безопасность на уровне столбцов | Да. Но запросы возвращаются в режим DirectQuery и могут привести к ошибкам при отказе разрешения | Да. Но необходимо дублировать разрешения с помощью безопасности на уровне объекта семантической модели | Да. Но запросы могут привести к ошибкам при отказе разрешения |
Безопасность на уровне строк в конечной точке аналитики SQL (RLS) | Да. Но запросы вернутся в режим DirectQuery | Да. Но необходимо дублировать разрешения с помощью семантической модели RLS | Да |
Безопасность уровня строк семантической модели (RLS) | Да — однако настоятельно рекомендуется использовать облачное подключение с фиксированной идентификацией . | Да | Да |
Безопасность на уровне объекта семантической модели (OLS) | Да | Да | Да |
Большие тома данных без требования к обновлению | Да | Менее подходящий — для запроса и обновления может потребоваться более крупный размер ёмкости. | Да |
Уменьшение задержки данных | Да—если включены автоматические обновления или программное рефреймирование; однако подготовка данных должна быть выполнена на предыдущем этапе сначала. | Нет | Да |
Power BI Embedded | Да 2 | Да | Да |
1 нельзя объединять таблицы режима хранения Direct Lake с таблицами режима directQuery или двумя таблицами режима хранения в одной семантической модели. Однако с помощью Power BI Desktop можно создать составную модель в семантической модели Direct Lake, а затем расширить ее с помощью новых таблиц (с помощью режима импорта, DirectQuery или двойного хранилища) или вычислений. Дополнительные сведения см. в статье Сборка составной модели на семантической модели.
2 Требуется токен встраивания версии 2. Если вы используете учетную запись службы, вам необходимо использовать облачное подключение с фиксированной идентификацией .