Моделирование данных с помощью материализованных представлений
Этот раздел описывает, как выполнять моделирование данных с помощью асинхронных материализованных представлений Selena. Таким образом, вы можете значительно упростить ETL pipeline вашего хранилища данных и значительно улучшить качество данных и производительность запросов.
Обзор
Моделирование данных — это процесс очистки, наслоения, агрегации и связывания данных с рациональными методологиями. Оно может создать понятное представление сырых данных, которые слишком грубые, слишком сложные или слишком дорогие для прямого анализа, и предоставить действенные инсайты в данные.
Однако, обычная проблема в реальном моделировании данных заключается в том, что процесс моделирования с трудом поспевает за темпами развития бизнеса, и трудно измерить возврат инвестиций для усилий по моделированию данных. Несмотря на то, что методологии моделирования просты, бизнес-эксперты должны иметь прочную основу в организации и управлении данными, что является сложным процессом. На ранних стадиях бизнеса лица, принимающие решения, редко выделяют достаточные ресурсы для моделирования данных, и трудно увидеть ценность, которую может принести моделирование данных. Более того, бизнес-модели могут быстро меняться, и сами методологии моделирования нуждаются в итерации и эволюции. Поэтому многие аналитики данных склонны избегать моделирования и использовать сырые данные напрямую, что неизбежно приводит к проблемам качества данных и производительности запросов. Когда возникает необходимость в моделировании, становится трудно реструктурировать паттерны аналитики данных, которые уже были установлены, чтобы соответствовать моделям данных.
Использование материализованных представлений для моделирования данных может эффективно решить эти проблемы. Асинхронные материализованные представления Selena могут:
- Упростить архитектуру хранилища данных: Поскольку Selena может предоставить комплексный опыт управления данными, вам не нужно поддерживать другие системы обработки данных, экономя человеческие и системные ресурсы, потраченные на них.
- Облегчить опыт моделирования данных: Любой аналитик данных, обладающий только базовыми знаниями SQL, способен выполнять моделирование данных с помощью Selena. Моделирование данных больше не является исключительной прерогативой опытных инженеров данных.
- Снизить сложность обслуживания: Асинхронные материализованные представления Selena могут автоматически управлять связями происхождения и зависимостями между слоями данных, устраняя необходимость в целой платформе данных для выполнения этой задачи.

В реальных ситуациях вы можете выполнять моделирование данных, комбинируя использование представлений (логических представлений) Selena и асинхронных материализованных представлений следующим образом:
- Используйте представления для связывания real-time данных с данными измерений и используйте материализованные представления для связывания исторических данных из озера данных с данными измерений. Выполните необходимую очистку данных и семантическое отображение, чтобы получить детальные данные для промежуточного слоя, которые отражают семантику, требуемую в ваших бизнес-сценариях.
- На уровне приложения выполняйте вычисления Join, Aggregation, Union и Window, адаптированные для различных бизнес-сценариев. Это даст представления для real-time конвейеров и материализованные представления для near-real-time конвейеров.
- На стороне приложения выберите подходящее аналитическое хранилище данных (ADS) для анализа запросов на основе ваших требований к своевременности и производительности. Эти ADS могут обслуживать real-time дашборды, near-real-time BI, ad-hoc запросы и запланированные отчеты.
В течение этого процесса вы будете использовать несколько встроенных возможностей Selena, которые будут подробно описаны в следующем разделе.
Возможности асинхронного материализованного представления
Асинхронное материализованное представление Selena обладает следующими атомарными функциями, которые могут помочь в моделировании данных:
- Автоматическое обновление: После загрузки данных в базовые таблицы материализованные представления могут автоматически обновляться. Вам не нужно поддерживать задачу планирования извне.
- Partitioned обновление: Near-real-time вычисления могут быть достигнуты через partitioned обновление материализованных представлений, построенных на таблицах с временными рядами.
- Синергия с представлениями: Вы можете достичь многоуровневого моделирования, используя материализованные представления и логические представления, тем самым обеспечивая повторное использование промежуточного слоя и упрощение моделей данных.
- Изменение схемы: Вы можете изменить результаты вычислений с помощью простых операторов SQL, без необходимости изменять сложные data pipelines.
С этими функциями вы можете разработать комплексные и адаптивные модели данных для удовлетворения различных бизнес-потребностей и сценариев.
Автоматическое обновление
При создании асинхронного материализованного представления вы можете указать стратегию обновления, используя оператор REFRESH. В настоящее время Selena поддерживает следующие стратегии обновления асинхронных материализованных представлений:
- Автоматическое обновление (
REFRESH ASYNC): Задачи обновления запускаются каждый раз, когда данные в базовых таблицах изменяются. Зависимости данных автоматически управляются материализованным представлением. - Запланированное обновление (
REFRESH ASYNC EVERY (INTERVAL <refresh_interval>)): Задачи обновления запускаются через регулярные интервалы, например, каждую минуту, день или месяц. Если нет изменений данных в базовых таблицах, задача обновления не будет запущена. - Ручное обновление (
REFRESH MANUAL): Задачи обновления запускаются только путем выполнения REFRESH MATERIALIZED VIEW вручную. Эта стратегия обновления может использоваться, когда вы поддерживаете внешний framework планирования для запуска задач обновления.
Синтаксис:
CREATE MATERIALIZED VIEW <name>
REFRESH
[ ASYNC |
ASYNC [START <time>] EVERY(<interval>) |
MANUAL
]
AS <query>