Dimensions (дименшены)
Dimensions. разрезы для группировки и фильтрации метрик. Dimensions можно представить как справочник (словарь маппингов), который определяет, как расшифровывать значения полей для отображения в отчетах по АБ-тестам.
Разрезы (Dimensions) создаются относительно редко, так как один и тот же дименшен можно использовать для множества метрик. Перед созданием убедитесь, что в источнике данных или обогащении присутствует соответствующее поле.
Конфигурация
# dimensions/dimensions.yaml
dimension_name:
has_id: true/false # В источниках представлен как <dimension_name>_id
description: "Описание"
parent: parent_dim # Опционально: слаг родительского dimension
slug: short_name # Опционально: сокращенное имя для отображения в отчетах
is_bool: true/false # Опционально: boolean dimension (не требует SQL-справочника)
Пояснения по полям:
- Установите флаг
has_idв значениеtrue, если в источниках поле представлено как<dimension_name>_id. - Испо льзуйте флаг
is_bool, если разрез является булевым и не требует SQL-справочника. - Укажите краткое имя в поле
slugдля корректного отображения в отчетах. - Применяйте поле
parentдля настройки иерархических разрезов.
Типы дименшенов
1. ID-based (has_id: true)
platform:
has_id: true
description: "Платформа (mobile, desktop)"
vertical:
has_id: true
parent: null
description: "Вертикаль"
В source:
SELECT platform_id, vertical_id FROM ...
Для has_id = True должно быть выполнено два требования:
- Убедитесь, что тип поля в источнике или обогащении соответствует типу
int. - Проверьте, что название поля содержит обязательный суффикс
_id.
2. Boolean (is_bool: true)
is_logged_in:
is_bool: true
description: "Авторизованный пользователь"
3. Иерархические (parent)
vertical:
has_id: true
logical_category:
has_id: true
parent: vertical
category:
has_id: true
parent: logical_category
Справочники
- Создавайте справочники для всех дименшенов, кроме тех, где установлен флаг
is_bool = True. - Задавайте в справочнике список всех допустимых значений для валидации.
- Используйте справочник как источник для расшифровки числовых идентификаторов.
Маппинг ID → значение:
Справочники определяют маппинг между идентификаторами и человекочитаемыми значениями. Например, region_id (это value_id) → region (это value). Это позволяет в отчетах по АБ-тестам отображать понятные названия вместо числовых ID.
-- dimensions/sql/platform.sql
SELECT
Name as value, -- Обязательно: человекочитаемое значение
Platform_id as value_id, -- Обязательно для has_id=true: числовой ID
External_id as value_ext_id -- Опционально
FROM dds.H_Platform
При подготовке SQL-запроса вы должны переименовать целевые поля в value и value_id. Платформа Trisigma распознает только эти стандартные имена.
Обязательные колонки:
- Укажите колонку
value, которая обязате льна для всех справочников. - Используйте
value_id, если для разреза установлен флагhas_id = True. - Добавьте поля
parent_dimension,parent_valueилиparent_value_idдля иерархических разрезов.
Опциональные: value_ext_id, is_active
Работа с CLI
# Список дименшенов \{#spisok-dimenshenov}
trisigma sl list-dimensions
# Валидация \{#validatsiya}
trisigma sl validate
Создание dimension
1. Добавить в dimensions.yaml
my_dimension:
has_id: true
description: "Описание"