Производные метрики
В MetricFlow производные метрики создаются путем определения выражения с использованием других метрик. Они позволяют выполнять вычисления с существующими метриками. Это полезно для комбинирования метрик и выполнения математических функций на агрегированных столбцах, например, для создания метрики прибыли.
Параметры, описание и тип для производных метрик:
Параметр | Описание | Обязательный | Тип |
---|---|---|---|
name | Имя метрики. | Обязательный | Ст рока |
description | Описание метрики. | Необязательный | Строка |
type | Тип метрики (накопительный, производный, отношение или простой). | Обязательный | Строка |
label | Определяет отображаемое значение в инструментах нижнего уровня. Принимает обычный текст, пробелы и кавычки (например, orders_total или "orders_total" ). | Обязательный | Строка |
type_params | Параметры типа метрики. | Обязательный | Dict |
expr | Производное выражение. Вы увидите предупреждения о проверке, если в производной метрике отсутствует expr или expr не использует все входные метрики. | Обязательный | Строка |
metrics | Список метрик, используемых в производных метриках. Каждая запись может включать необязательные поля, такие как alias , filter или offset_window . | Обязательный | Список |
alias | Необязательный псевдоним для метрики, который можно использовать в expr . | Необязательный | Строка |
filter | Необязательный фильтр для применения к метрике. | Необязательный | Строка |
offset_window | Установите период для окна смещения, например, 1 месяц. Это вернет значение метрики через месяц от времени метрики. | Необязательный | Строка |
Ниже представлена полная спецификация для производных метрик вместе с примером.
metrics:
- name: the metric name # Обязательный
description: the metric description # Необязательный
type: derived # Обязательный
label: The value that will be displayed in downstream tools #Обязательный
type_params: # Обязательный
expr: the derived expression # Обязательный
metrics: # Список метрик, используемых в производных метриках # Обязательный
- name: the name of the metrics. must reference a metric you have already defined # Обязательный
alias: optional alias for the metric that you can use in the expr # Необязательный
filter: optional filter to apply to the metric # Необязательный
offset_window: set the period for the offset window, such as 1 month. This will return the value of the metric one month from the metric time. # Необязательный
Для продвинутого моделирования данных вы можете использовать fill_nulls_with
и join_to_timespine
, чтобы установить нулевые значения метрик в ноль, обеспечивая числовые значения для каждой строки данных.
Пример производных метрик
metrics:
- name: order_gross_profit
description: Валовая прибыль с каждого заказа.
type: derived
label: Order gross profit
type_params:
expr: revenue - cost
metrics:
- name: order_total
alias: revenue
- name: order_cost
alias: cost
- name: food_order_gross_profit
label: Food order gross profit
description: "Валовая прибыль для каждого заказа на еду."
type: derived
type_params:
expr: revenue - cost
metrics:
- name: order_total
alias: revenue
filter: |
{{ Dimension('order__is_food_order') }} = True
- name: order_cost
alias: cost
filter: |
{{ Dimension('order__is_food_order') }} = True
- name: order_total_growth_mom
description: "Процентный рост общего количества заказов по сравнению с 1 месяцем назад"
type: derived
label: Order total growth % M/M
type_params:
expr: (order_total - order_total_prev_month)*100/order_total_prev_month
metrics:
- name: order_total
- name: order_total
offset_window: 1 month
alias: order_total_prev_month