Skip to content

分析

概要

dbt的模型概念使数据团队可以轻松地进行版本控制和数据转换协作。不过,有时某个sql语句并不完全适合dbt模型。这些更具分析性的sql文件可以在dbt项目中使用dbt的分析功能进行版本控制。

在dbt项目的analysis/目录中任何.sql文件都将被编译,但不会执行。这意味着分析师可以使用类似{{ ref(...) }} 的dbt功能,以与环境无关的方式从模型中进行选择。

在实践中,分析文件可能是这样的(通过开源Quickbooks模型):

-- 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

要将此分析编译为可运行的sql,请运行:

dbt compile

然后,在target/compiled/{project-name}/analysis/running_total_by_account.SQL中查找已编译的SQL文件。例如,该SQL可以粘贴到数据可视化工具中。请注意,数据库中不会物化running_total_by_account关系,因为这是一个分析,而不是模型