🚀

【dbt Docs】Building a dbt Project - Metrics

2022/03/17に公開

Metrics

https://docs.getdbt.com/docs/building-a-dbt-project/metrics
※読んでもいまいちわからず、多分現時点では使わないので、さらっと・・・

About metrics

metricsは、時系列の集計。メトリクスの例としては、以下のようなものがあります。

  • active users
  • mrr (monthly recurring revenue - 月次経常収支)

v1.0では、dbtは新しいノードタイプとしてメトリック定義をサポートしています。
exposuresと同様に、metricsもdbtのDAGで管理されて、YAMLファイルで表現する。

dbtプロジェクトでメトリクスを定義することで、重要なビジネスロジックを、テスト済みでバージョン管理されたコードにエンコードすることができます。さらに、これらのメトリクス定義を下流のツールに公開することで、メトリクスレポートの一貫性と精度を向上させることができます。

Benefits of defining metrics

( metricsを定義することの利益)

Use metric specifications in downstream tools

()
dbtのコンパイルコンテキストは、graph.metrics変数を介してメトリクスにアクセスすることができます。マニフェスト アーティファクトには、下流のメタデータを消費するためのメトリックが含まれています。

See and select dependencies

Exposuresと同様に、メトリックにロールアップされたものすべてを見ることができ(dbt ls -s +metric:*)、dbtドキュメントで可視化することができます。詳しくは、"メトリック:選択方法 "を参照してください。


pinkがMetricsだそうだ。

Declaring a metric

Metricsは、.yml内で宣言する。metrics;キーで定義する

models/<filename>.yml
# models/marts/product/schema.yml

version: 2

models:
 - name: dim_customers
   ...

metrics:
  - name: new_customers
    label: New Customers
    model: ref('dim_customers')
    description: "The number of paid customers using the product"

    type: count
    sql: user_id # superfluous here, but shown as an example

    timestamp: signup_date
    time_grains: [day, week, month]

    dimensions:
      - plan
      - country
    
    filters:
      - field: is_paying
        operator: 'is'
        value: 'true'
      - field: lifetime_value
        operator: '>='
        value: '100'
      - field: company_name
        operator: '!='
        value: "'Acme, Inc'"
      - field: signup_date
        operator: '>='
        value: "'2020-01-01'"


    meta: {team: Finance}

Available properties

Filters

Ongoing discussions

Discussion