Валидации
Валидации — это процесс проверки того, что система или конфигурация соответствует ожидаемым требованиям или ограничениям. В случае с Semantic Layer, работающим на базе MetricFlow, предусмотрены три встроенные валидации — parsing, semantic и data platform.
Эти валидации обеспечивают соответствие конфигурационных файлов ожидаемой схеме, отсутствие нарушений ограничений в семантическом графе и наличие семантических определений в физической таблице, что поддерживает эффективное управление данными. Эти три этапа валидации выполняются последовательно и должны быть успешными, прежде чем перейти к следующему этапу.
Код, который обрабатывает валидацию, можно найти здесь для тех, кто хочет углубиться в эту тему.
Команда валидации
Вы можете запускать проверки из dbt или из командной строки с помощью следующих команд MetricFlow. В dbt для запуска dbt sl validate-configs в IDE или CLI вам понадобятся учетные данные разработчика, а для запуска в CI — учетные данные для деплоя.
dbt sl validate # <Constant name="cloud" /> users
mf validate-configs # <Constant name="core" /> users
Синтаксическая валидация
На этом этапе валидации мы проверяем, что ваши конфигурационные файлы соответствуют определенной схеме для каждого объекта семантического графа и могут быть успешно разобраны. Она проверяет схему для следующих основных объектов:
- Семантические модели
- Идентификаторы
- Меры
- Измерения
- Метрики
Семантический синтаксис
Этот этап синтаксической валидации выполняется после того, как мы построили ваш семантический граф. Semantic Layer, работающий на базе MetricFlow, запускает набор проверок, чтобы убедиться, что ваш семантический граф не нарушает никаких ограничений. Например, мы проверяем, что имена мер уникальны, а также что метрики, на которые ссылаются материализации, действительно существуют. В настоящее время мы проверяем следующие семантические правила:
- Проверка, что семантические модели с мерами имеют допустимое временное измерение
- Проверка, что в каждой семантической модели определен только один основной идентификатор
- Согласованность измерений
- Уникальность мер в семантических моделях
- Меры в метриках являются допустимыми
- Кумулятивные метрики настроены правильно
Платформа данных
Этот тип валидации проверяет, существуют ли семантические определения в вашем семантическом графе в базовой физической таблице. Для этого мы выполняем запросы к вашей платформе данных, чтобы убедиться, что сгенерированный SQL для семантических моделей, измерений и метрик будет выполнен. Мы выполняем следующие проверки:
- Существуют ли меры и измерения
- Существуют ли базовые таблицы для источников данных
- Сгенерированный SQL для метрик будет выполнен
Вы можете запускать семантические валидации (против вашего семантического слоя) в CI задаче, чтобы гарантировать, что любые изменения кода, внесенные в модели dbt, не нарушают эти метрики. Для получения дополнительной информации обратитесь к семантической валидации в CI.