Перезапись запросов с помощью материализованных представлений
Этот раздел описывает, как использовать асинхронные материализованные представления Selena для перезаписи и ускорения запросов.
Обзор
Асинхронное материализованное представление Selena использует широко принятый алгоритм прозрачной перезаписи запросов на основе формы SPJG (select-project-join-group-by). Без необходимости изменять оператор запроса, Selena может автоматически переписывать запросы к базовым таблицам в запросы к соотве тствующему материализованному представлению, которое содержит предварительно вычисленные результаты. В результате материализованные представления могут помочь вам значительно снизить вычислительные затраты и существенно ускорить выполнение запросов.
Функция перезаписи запросов на основе асинхронных материализованных представлений особенно полезна в следующих сценариях:
-
Предварительная агрегация метрик
Вы можете использовать материализованные представления для создания слоя предварительно агрегированных метрик, если вы имеете дело с данными высокой размерности.
-
Joins широких таблиц
Материализованные представления позволяют прозрачно ускорять запросы с joins нескольких больших широких таблиц в сложных сценариях.
-
Ускорение запросов в озере данных
Создание материализованного представления на основе внешнего каталога может легко ускорить запросы к данным в вашем озере данных.
NOTE
Асинхронные материализованные представления, созданные на базовых таблицах в JDBC catalog, не поддерживают перезапись запросов.
Функции
Автоматическая перезапись запросов на основе асинхронного материализованного представления Selena имеет следующие атрибуты:
- Строгая согласованность данных: Если базовые таблицы являются нативными таблицами, Selena гарантирует, что результаты, полученные через перезапись запросов на основе материализованного представления, согласованы с результатами, возвращаемыми из прямого запроса к базовым таблицам.
- Staleness rewrite: Selena поддерживает staleness rewrite, позволяя вам допустить определенный уровень устаревания данных для решения сценариев с частыми изменениями данных.
- Joins нескольких таблиц: Асинхронное материализованное представление Selena поддерживает различные типы joins, включая некоторые сложные сценарии join, такие как View Delta Joins и Derivable Joins, позволяя ускорять запросы в сценариях, включающих большие широкие таблицы.
- Перезапись агрегации: Selena может переписывать запросы с агрегациями для улучшения производительности отчетов.
- Вложенное материализованное представление: Selena поддерживает перезапись сложных запросов на основе вложенных материализованных представлений, расширяя область запросов, которые могут быть переписаны.
- Union rewrite: Вы можете объединить функцию Union rewrite с TTL (Time-to-Live) partitions материализованного представления для достижения разделения горячих и холодных данных, что позволяет запрашивать горячие данные из материализованных представлений, а исторические данные из базовой таблицы.
- Материализованные представления на представлениях: Вы можете ускорять запросы в сценариях с моделированием данных на основе представлений.
- Материализованные представления на внешних каталогах: Вы можете ускорять запросы в озерах данных.
- Перезапись сложных выражений: Может обрабатывать сложные выражения, включая вызовы функций и арифметические операции, удовлетворяя продвинутые аналитические и вычислительные требования.
Эти функции будут подробно рассмотрены в следующих разделах.