Шаг 3. Настройка метрик
В Trisigma метрики управляются через Git-репозиторий (Metrics as Code).
Вы описываете формулы в YAML-файлах, а SQL-запросы к данным — в .sql.
Структура репозитория
Вам выдадут доступ к приватному репозиторию со следующей структурой:
.
├── sources/ # Источники данных
│ ├── sql/ # Файлы SQL-запросов
│ └── sources.yaml # Конфигурация маппинга
├── metrics/ # Описание метрик
│ └── *.yaml # Формулы расчета
└── dimensions/ # Справочники разрезов
Процесс создания метрики
1. Подготовка источника (Source)
Сначала добавьте SQL-запрос, который подготовит данные.
Файл: sources/sql/orders.sql
SELECT user_id, amount, order_date
FROM dwh.orders
WHERE order_date BETWEEN :first_date AND :last_date
Использование параметров :first_date и :last_date обязательно. Это позволяет движку Trino эффективно фильтровать partitions и читать только нужный диапазон данных, избегая сканирования всей таблицы (Full Table Scan).
Опишите источник в sources.yaml:
orders_source:
sql: orders
connections: [trino]
participant: { user: user_id }
dtm: order_date
metric_configs: [revenue_metrics]
2. Описание метрики (Metric)
Создайте YAML-файл с названием, указанным в metric_configs (например, metrics/revenue_metrics.yaml).
metric.counter:
total_revenue:
obs: amount
metric.uniq:
total_buyers:
counter: total_revenue
key: user
metric.ratio:
avg_check:
num: total_revenue
den: total_buyers
Теперь метрики total_revenue, total_buyers и avg_check готовы к использованию.
SQL Диалект и особенности
Trisigma использует движок Trino (ANSI SQL). Если вы привыкли к ClickHouse, используйте таблицу ниже для адаптации запросов.
Сравнение ClickHouse vs Trino (ANSI)
| Функция в ClickHouse | Аналог в Trino (Trisigma) |
|---|---|
uniqExact(col) | count(distinct col) |
uniq(col) | approx_distinct(col) |
groupArray(col) | array_agg(col) |
toStartOfDay(ts) | date_trunc('day', ts) |
toDate(ts) | cast(ts as date) |
argMax(val, date) | max_by(val, date) |
if(cond, 1, 0) | if(cond, 1, 0) или CASE WHEN |
splitByChar(...) | split(..., 'delimiter') |
SQL-запросы можно проверить в Query Pad перед тем, как добавлять их в репозиторий.
Процесс применения изменений
Работа ведется через стандартный Git-workflow:
-
Создайте ветку:
git checkout -b new-metric. -
Добавьте файлы (
.sqlи.yaml). -
Запушьте и создайте Pull Request.
-
Дождитесь одобрения от бота (валидация успешна).
осторожноЗапрещено вливать изменения в
masterбез подтверждения от бота валидации. -
Для слияния используйте команду в комментарии к PR:
run mergeпримечаниеЕсли бот не отвечает более 15 минут, напишите в чат поддержки.
-
После успешного мерджа метрики появятся в платформе.
Для локальной проверки используйте Trisigma CLI:
trisigma sl validate