Что такое материализованные представления озера в Microsoft Fabric?

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

Когда следует использовать материализованные представления озера

Если у вас уже есть хранилище данных и вы запускаете записные книжки Spark для преобразования данных в таблицы Delta, а затем планируете эти записные книжки через потоки данных — материализованные представления хранилища могут упростить этот рабочий процесс. Вместо управления логикой обновления, порядком выполнения и планированием самостоятельно вы определяете преобразования SQL и позволяет Fabric обрабатывать остальные.

Материализованные представления озера хорошо подходят, когда у вас есть:

  • Часто доступные агрегаты (ежедневные итоги продаж, ежемесячные метрики), в которых предварительно вычисляемые результаты повышают производительность при многократном выполнении дорогостоящих запросов.
  • Сложные соединения между несколькими большими таблицами, которые запрашиваются часто и требуют согласованных результатов для всех потребителей
  • Преобразования качества данных , которые необходимо применять равномерно, с правилами, определенными декларативно, а не в пользовательском коде
  • Отчетные наборы данных, которые объединяют данные из нескольких источников и получают автоматическое обновление при изменении исходных данных.
  • Архитектура медальона, в которой требуются преобразования бронзы → серебра → золота, определенные в SQL.

Материализованные представления озера не являются правильным выбором для каждого сценария. Рассмотрите варианты, если у вас есть:

  • Однократные или редко доступные запросы , которые не получают преимущества от предварительно компилированных результатов.
  • Простые преобразования , которые уже выполняются быстро без оптимизации
  • логика Non-SQL: например, инференция ML, вызовы API или сложная обработка Python, используйте ноутбуки Spark.
  • Высокочастотная потоковая передача данных, требующая обновления менее чем за секунду, рассмотрите возможность аналитики в реальном времени.

Замечание

Эта функция в настоящее время недоступна в регионе "Южная часть США".

Начало работы с материализованными представлениями озера

Для создания вашего первого материализованного представления озера в Microsoft Fabric см. раздел Начало работы с материализованными представлениями озера. Полное пошаговое руководство по созданию архитектуры медальона см. в руководстве "Создание архитектуры медальона с материализованными представлениями озера".

Как работают материализованные представления данных озер?

Материализованные представления озера используют декларативный подход: вы создаете SQL-запрос, определяющий нужное преобразование, и Fabric обрабатывает выполнение, хранение и обновление. Результат сохраняется в виде таблицы Delta в лейкхаусе, поэтому другие пользователи могут запрашивать ее напрямую без повторного выполнения преобразования.

Жизненный цикл материализованного озера следует четыре этапа:

  • Создание: создание SQL-запроса, определяющего преобразование. Fabric сохраняет определение и материализует результаты в виде таблицы Delta.
  • Refresh: При изменении исходных данных Fabric определяет оптимальную стратегию обновления — инкрементную (обработка только новых или измененных данных), полную (полная перестройка) или пропустить (не обнаружено изменений).
  • Запрос. Приложения и отчеты запрашивают материализованное представление озера, как любая другая таблица Delta, без осведомленности о базовой логике преобразования.
  • Monitor: отслеживание журнала обновления, состояния выполнения, метрик качества данных и происхождения зависимостей с помощью встроенных средств Fabric.

Параметры разработки

Материализованные представления озера поддерживают два подхода к разработке:

  • Разработка SQL: определение представлений с помощью стандартных инструкций SQL CREATE MATERIALIZED LAKE VIEW непосредственно в редакторе Fabric lakehouse.

  • Разработка PySpark (предварительная версия): создание, обновление и замена представлений из записных книжек Fabric с помощью DataFrameWriter. Поддержка представлений, разработанных с помощью PySpark:

    • Ограничения качества данных
    • Свойства таблицы
    • Запланированные обновления

    Замечание

    Представления, созданные с помощью PySpark, на данный момент выполняют только полное обновление.

Ключевые возможности

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

Автоматическая оптимизация обновления данных

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

  • Добавочное обновление: обработка только новых или измененных данных
  • Полное обновление: перестроение всего материализованного представления озера при необходимости
  • Пропустить обновление. Обновление не требуется, если исходные данные не изменились

Оптимальное обновление поддерживает ряд распространенных шаблонов запросов, в том числе:

  • Агрегация с использованием GROUP BY
  • Левое внешнее соединение и полу соединение
  • Распространенные табличные выражения (CTEs)

Встроенное качество данных

Материализованные представления озера поддерживают декларативные правила качества данных. Определите ограничения непосредственно в SQL и укажите способ обработки нарушений:

CONSTRAINT valid_sales CHECK (sales_amount > 0) ON MISMATCH DROP

Управление зависимостями

Если материализованные представления озера ссылаются на другие материализованные представления озера или таблицы, Fabric автоматически обнаруживает эти связи и управляет порядком выполнения.

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

Мониторинг и аналитика

Fabric предоставляет встроенные средства для отслеживания работоспособности и производительности материализованных представлений озера:

  • Отслеживание состояния производительности обновления и выполнения для каждого материализованного представления озера
  • Просмотр метрик качества данных и количества нарушений в зависимости данных
  • Мониторинг экземпляров заданий и журнал обновления

Распространенные варианты использования

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

Панель мониторинга отчетов о продажах

Агрегировать данные о заказах в ежедневную сводку по регионам. Вместо планирования записной книжки для перестроения этой таблицы представление материализованного озера обновляется автоматически при изменении исходной orders таблицы.

-- Daily sales summary that refreshes automatically
CREATE MATERIALIZED LAKE VIEW daily_sales AS
SELECT 
    DATE(order_date) as sale_date,
    region,
    SUM(amount) as total_sales,
    COUNT(*) as order_count
FROM orders 
GROUP BY DATE(order_date), region;

Проверка качества данных

Очистка и нормализация записей клиентов при применении правил качества данных. Предложение ON MISMATCH DROP в ограничении автоматически удаляет строки, в которых сообщение электронной почты равно NULL, поэтому подчиненные потребители видят только допустимые данные.

-- Clean customer data with quality rules
CREATE MATERIALIZED LAKE VIEW clean_customers (
    CONSTRAINT valid_email CHECK (email IS NOT NULL) ON MISMATCH DROP
) AS
SELECT 
    customer_id,
    TRIM(customer_name) as customer_name,
    LOWER(email) as email
FROM raw_customers
WHERE customer_name IS NOT NULL;

Архитектура Medallion

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

-- Bronze → Silver transformation
CREATE MATERIALIZED LAKE VIEW silver_products AS
SELECT 
    product_id,
    product_name,
    category,
    CAST(price as DECIMAL(10,2)) as price
FROM bronze_products
WHERE price > 0;

Безопасность

Вы можете использовать частные ссылки для подключения к материализованным представлениям озера (предварительная версия). Дополнительные данные см. в статье "Безопасность".

Текущие ограничения

Следующая функция в настоящее время недоступна для материализованных представлений озера в Microsoft Fabric:

  • Кросс-лейкхаус происхождения и функции выполнения.