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

Создание метрик

После того как вы создали свои семантические модели, пора начать добавлять метрики. Метрики могут быть определены в тех же YAML-файлах, что и ваши семантические модели, или разделены на отдельные YAML-файлы в любых других подкаталогах (при условии, что эти подкаталоги также находятся в пределах одного репозитория проекта dbt).

Эта статья объясняет различные поддерживаемые типы метрик, которые вы можете добавить в свой проект dbt. Ключи для определения метрик:

📹 Узнайте о семантическом слое dbt с помощью видеокурсов по запросу!

Изучите наш курс по семантическому слою dbt, чтобы узнать, как определять и запрашивать метрики в вашем проекте dbt.

Кроме того, погрузитесь в мини-курсы по запросам к семантическому слою dbt в ваших любимых инструментах: Tableau, Excel, Hex и Mode.

Гранулярность по умолчанию для метрик

Метрики конверсии

Метрики конверсии помогают отслеживать, когда базовое событие и последующее событие конверсии происходят для сущности в течение заданного периода времени.

models/metrics/file_name.yml
metrics:
- name: The metric name
description: The metric description
type: conversion
label: YOUR_LABEL
type_params: #
conversion_type_params:
entity: ENTITY
calculation: CALCULATION_TYPE
base_measure:
name: The name of the measure
fill_nulls_with: Set the value in your metric definition instead of null (such as zero)
join_to_timespine: true/false
conversion_measure:
name: The name of the measure
fill_nulls_with: Set the value in your metric definition instead of null (such as zero)
join_to_timespine: true/false
window: TIME_WINDOW
constant_properties:
- base_property: DIMENSION or ENTITY
conversion_property: DIMENSION or ENTITY

Кумулятивные метрики

Кумулятивные метрики агрегируют измерение за заданное окно. Если окно не указано, оно будет накапливать измерение за весь записанный период времени. Обратите внимание, что вам нужно будет создать модель временной шкалы перед добавлением кумулятивных метрик.

models/metrics/file_name.yml
# Кумулятивные метрики агрегируют измерение за заданное окно. Окно считается бесконечным, если параметр окна не передан (накапливает измерение за все время)
metrics:
- name: wau_rolling_7
type: cumulative
label: Weekly active users
type_params:
measure:
name: active_users
fill_nulls_with: 0
join_to_timespine: true
window: 7 days

Производные метрики

Производные метрики определяются как выражение других метрик. Производные метрики позволяют выполнять вычисления на основе метрик.

models/metrics/file_name.yml
metrics:
- name: order_gross_profit
description: Gross profit from each order.
type: derived
label: Order gross profit
type_params:
expr: revenue - cost
metrics:
- name: order_total
alias: revenue
- name: order_cost
alias: cost

Метрики отношения

Метрики отношения включают числитель и знаменатель. Строка filter может быть применена как к числителю и знаменателю вместе, так и отдельно к числителю или знаменателю.

models/metrics/file_name.yml
metrics:
- name: cancellation_rate
type: ratio
label: Cancellation rate
type_params:
numerator: cancellations
denominator: transaction_amount
filter: |
{{ Dimension('customer__country') }} = 'MX'
- name: enterprise_cancellation_rate
type: ratio
type_params:
numerator:
name: cancellations
filter: {{ Dimension('company__tier') }} = 'enterprise'
denominator: transaction_amount
filter: |
{{ Dimension('customer__country') }} = 'MX'

Простые метрики

Простые метрики указывают непосредственно на измерение. Вы можете рассматривать это как функцию, которая принимает только одно измерение в качестве входных данных.

  • name — Используйте этот параметр для определения ссылочного имени метрики. Имя должно быть уникальным среди метрик и может включать строчные буквы, цифры и подчеркивания. Вы можете использовать это имя для вызова метрики из API семантического слоя dbt.

Примечание: Если вы уже определили измерение с использованием параметра create_metric: True, вам не нужно создавать простые метрики. Однако, если вы хотите включить ограничение поверх измерения, вам нужно будет создать метрику простого типа.

models/metrics/file_name.yml
metrics:
- name: cancellations
description: The number of cancellations
type: simple
label: Cancellations
type_params:
measure:
name: cancellations_usd # Укажите измерение, для которого вы создаете прокси.
fill_nulls_with: 0
filter: |
{{ Dimension('order__value')}} > 100 and {{Dimension('user__acquisition')}} is not null
join_to_timespine: true

Фильтры

Фильтр настраивается с использованием шаблонов Jinja. Используйте следующий синтаксис для ссылки на сущности, измерения, временные измерения или метрики в фильтрах.

Обратитесь к Метрики как измерения для получения подробной информации о том, как использовать метрики как измерения с фильтрами метрик:

Например, если вы хотите отфильтровать по дате заказа, сгруппированной по месяцам, используйте следующий синтаксис:

filter: |  
{{ TimeDimension('order_date', 'month') }}

Дополнительная конфигурация

Вы можете установить больше метаданных для ваших метрик, которые могут быть использованы другими инструментами позже. Способ использования этих метаданных будет варьироваться в зависимости от конкретного партнера по интеграции.

  • Описание — Напишите подробное описание метрики.

Связанные документы

0