Перейти к основному содержимому

Шаг 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:

  1. Создайте ветку: git checkout -b new-metric.

  2. Добавьте файлы (.sql и .yaml).

  3. Запушьте и создайте Pull Request.

  4. Дождитесь одобрения от бота (валидация успешна).

    осторожно

    Запрещено вливать изменения в master без подтверждения от бота валидации.

  5. Для слияния используйте команду в комментарии к PR:

    run merge
    примечание

    Если бот не отвечает более 15 минут, напишите в чат поддержки.

  6. После успешного мерджа метрики появятся в платформе.

Для локальной проверки используйте Trisigma CLI:

trisigma sl validate