Более сложные метрики
Более сложные типы метрик
Мы не ограничены только передачей измерений в наши метрики, мы также можем комбинировать измерения для моделирования более сложных метрик.
- 🍊 Отношение (Ratio) метрики, как следует из названия, связаны с сравнением двух метрик как числителя и знаменателя для формирования новой метрики, например, процент заказанных товаров, которые являются продуктами питания, а не напитками.
- 🧱 Производные (Derived) метрики используются, когда мы хотим написать выражение, которое вычисляет метрику с использованием нескольких метрик. Классический пример здесь — наша валовая прибыль, рассчитанная путем вычитания затрат из выручки.
- ➕ Кумулятивные (Cumulative) метрики вычисляют все измерение за заданный период, например, за последнюю неделю, или, если период не указан, общее значение этого измерения за все время.
Метрики отношения
- 🔢 Нам нужно установить одно измерение, которое будет нашим числителем, и одно, которое будет нашим знаменателем.
- 🥪 Давайте рассчитаем процент выручки нашего магазина Jaffle, который поступает от продуктов питания.
- 💰 У нас уже есть наш знаменатель, выручка, но мы хотим создать новую метрику для нашего числителя, назвав ее
food_revenue
.
models/marts/orders.yml
- name: food_revenue
description: Выручка от продуктов питания в каждом заказе.
label: Food Revenue
type: simple
type_params:
measure: food_revenue
- 📝 Теперь мы можем настроить нашу метрику отношения.
models/marts/orders.yml
- name: food_revenue_pct
description: Процент выручки от заказов, приходящейся на продукты питания.
label: Food Revenue %
type: ratio
type_params:
numerator: food_revenue
denominator: revenue
Производные метрики
- 🆙 Теперь давайте действительно повеселимся. Одна из самых важных метрик для любого бизнеса — это не только выручка, но и рост выручки. Давайте используем производную метрику для построения месячного роста выручки.
- ⚙️ Производная метрика имеет несколько ключевых компонентов:
- 📚 Список метрик для построения. Их можно манипулировать и фильтровать различными способами, здесь мы будем использовать свойство
offset_window
, чтобы отставать на месяц. - 🧮 Выражение, которое выполняет расчет с этими метриками.
- 📚 Список метрик для построения. Их можно манипулировать и фильтровать различными способами, здесь мы будем использовать свойство
- С этими частями мы можем собрать сложную логику, которая в противном случае должна была бы быть 'заморожена' в логических моделях.
models/marts/orders.yml
- name: revenue_growth_mom
description: "Процентный рост выручки по сравнению с 1 месяцем назад. Налог исключен"
type: derived
label: Revenue Growth % M/M
type_params:
expr: (current_revenue - revenue_prev_month) * 100 / revenue_prev_month
metrics:
- name: revenue
alias: current_revenue
- name: revenue
offset_window: 1 month
alias: revenue_prev_month
Кумулятивные метрики
- ➕ Наконец, давайте создадим кумулятивную метрику. В соответствии с нашей темой бизнес-приоритетов, давайте продолжим с выручкой и создадим метрику выручки за все время для любого заданного временного окна.
- 🪟 Все, что нам нужно сделать, это указать, что тип —
cumulative
, и не указыватьwindow
вtype_params
, что указывает на то, что мы хотим кумулятивную метрику за весь период, выбранный нашими конечными пользователями.
models/marts/orders.yml
- name: cumulative_revenue
description: Кумулятивная выручка по всем заказам.
label: Cumulative Revenue (All Time)
type: cumulative
type_params:
measure: revenue
0