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

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

Как создать метрики

  • 💹 Начнем с одной из самых важных метрик для любого бизнеса: выручка.
  • 📖 На данный момент наша метрика для выручки будет определена как сумма итогов заказов без учета налогов.

Определение выручки

  • 🔢 Метрики имеют четыре основных свойства:
    • name: Мы будем использовать 'revenue' для обозначения этой метрики.
    • description: Для документации.
    • label: Отображаемое имя метрики в последующих инструментах.
    • type: один из simple, ratio или derived.
  • 🎛️ Каждый тип имеет разные type_params.
  • 🛠️ Сначала мы создадим простую метрику, чтобы освоиться, а затем перейдем к метрикам типа ratio и derived.
  • 📏 Простые метрики строятся на одной мере, определенной как параметр типа.
  • 🔜 Определение мер как их собственных отдельных компонентов в семантических моделях критически важно для обеспечения гибкости более сложных метрик, хотя простые метрики в основном действуют как передаточные, предоставляющие возможности фильтрации и маркировки.
models/marts/orders.yml
metrics:
- name: revenue
description: Sum of the order total.
label: Revenue
type: simple
type_params:
measure: order_total

Запрос вашей метрики

Вы можете использовать dbt Cloud CLI для проверки метрик или запросов во время разработки через набор подкоманд dbt sl. Вот несколько полезных примеров:

dbt sl query revenue --group-by metric_time__month
dbt sl list dimensions --metrics revenue # список всех доступных измерений для метрики выручки
  • Лучшей практикой является запуск dbt parse каждый раз, когда мы обновляем код нашего семантического слоя, чтобы обновить наш семантический манифест разработки.
  • dbt sl query не является способом, которым вы обычно используете инструмент в производственной среде, это обрабатывается функциями семантического слоя dbt Cloud. Он доступен для тестирования результатов различных запросов метрик в процессе разработки, именно так, как мы используем его сейчас.
  • Обратите внимание на структуру вышеуказанного запроса. Мы выбираем метрику(и), которые хотим, и измерения, по которым их нужно сгруппировать — мы используем двойные подчеркивания (например, metric_time__[time bucket]) для обозначения временных измерений или других неуникальных измерений, которым нужен указанный путь сущности для разрешения (например, если у вас есть измерение местоположения заказов и измерение местоположения сотрудников, оба названные 'location', вам понадобятся двойные подчеркивания, чтобы указать orders__location или employee__location).
0