■ はじめに
dbt で Snowflake の テーブルを扱うことになり Transientテーブルを永続テーブルに切り替える必要ができたので 調査してみた なお、Transient テーブルなどのSnowflakeのテーブルについて 以下の関連記事を参照のこと
Snowflake ~ 基本編 / テーブル ~
https://dk521123.hatenablog.com/entry/2022/09/03/012113
目次
【0】公式ドキュメント 1)注意点 【1】Transient tables 1)切替方法1:dbt_project.yml 2)切替方法2:モデルファイル(SQLファイル) 【2】Temporary tables 1)切替方法1:dbt_project.yml 2)切替方法2:モデルファイル(SQLファイル) 【3】Dynamic tables
【0】公式ドキュメント
* 以下のサイト参照
[dbt公式] Snowflake configurations
https://docs.getdbt.com/reference/resource-configs/snowflake-configs
1)注意点
* デフォルトは、Transient テーブル => 永続テーブルではない
公式ドキュメントより
By default, all Snowflake tables created by dbt are transient
【1】Transient tables
* 「transient」を指定する => ただし、上述「1)注意点」で記載した通り、 デフォルトがTransient テーブルなので、 永続テーブルにしたかったら「transient: false」を指定する
https://docs.getdbt.com/reference/resource-configs/snowflake-configs#transient-tables
1)切替方法1:dbt_project.yml
dbt_project.yml
models: +transient: false # ★ my_project:
2)切替方法2:モデルファイル(SQLファイル)
{{ config( materialized='table', transient=true -- ★ ) }} select * from ...
【2】Temporary tables
* 「tmp_relation_type」を指定する(後は、【1】と同じ感じ)
https://docs.getdbt.com/reference/resource-configs/snowflake-configs#temporary-tables
1)切替方法1:dbt_project.yml
dbt_project.yml
models: <resource-path>: +tmp_relation_type: table | view ## If not defined, view is the default.
2)切替方法2:モデルファイル(SQLファイル)
{{ config( tmp_relation_type="table | view", ## If not defined, view is the default. ) }}
【3】Dynamic tables
* 以下を参照
https://docs.getdbt.com/reference/resource-configs/snowflake-configs#dynamic-tables
{{ config( materialized="dynamic_table", on_configuration_change="apply" | "continue" | "fail", target_lag="downstream" | "<integer> seconds | minutes | hours | days", snowflake_warehouse="<warehouse-name>", ) }}
参考文献
https://dev.classmethod.jp/articles/snowflake-dbt-specific-settings/
https://knowledge.insight-lab.co.jp/snowflake/dbt-data-pipeline
関連記事
dbt ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/06/30/000000
dbt ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2023/12/16/152147
dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/30/151003
Snowflake ~ 基本編 / テーブル ~
https://dk521123.hatenablog.com/entry/2022/09/03/012113