📘

【dbt Docs】Building a dbt Project - Analyses

2022/03/16に公開

Analyses

https://docs.getdbt.com/docs/building-a-dbt-project/analyses

Overview

dbtの概念としてmodelsは、データチームでバージョンコントロールができ、データの変換を簡単にする・・・というものがある。
ただし特定の場合、dbtのモデルに適応できない場合がある。
このような「分析的」なSQLファイルは、dbtの分析機能を使って、dbtプロジェクト内でバージョン管理することができます。

analyses/ディレクトリ内にある.sqlファイルはすべてコンパイルされますが、実行されません。
これは、アナリストが環境に依存しない方法でモデルから選択するために、{{ ref(...) }}のようなdbt機能を使用することができることを意味します。

analyses/running_total_by_account.sql
-- analysis/running_total_by_account.sql

with journal_entries as (

  select *
  from {{ ref('quickbooks_adjusted_journal_entries') }}

), accounts as (

  select *
  from {{ ref('quickbooks_accounts_transformed') }}

)

select
  txn_date,
  account_id,
  adjusted_amount,
  description,
  account_name,
  sum(adjusted_amount) over (partition by account_id order by id rows unbounded preceding)
from journal_entries
order by account_id, id

こちらを

$ dbt complile

でコンパイルできる。出力先は、target/compiled/{project name}/analyses/running_total_by_account.sql

このSQLは、例えば、データ可視化ツールに貼り付けることができます。これは分析であり、モデルではないので、running_total_by_account リレーションはデータベースで実体化されないことに注意してください。

Discussion