🚀
【dbt Docs】Building a dbt Project - Metrics
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}
Discussion