データマネジメントの学校
← コースに戻る

未ログインのため、この講座の進捗は記録されません。ログインすると記録が残るようになります。

マテリアライゼーション① view/table

マテリアライゼーション(materialization)とは、モデルのSELECT結果をウェアハウス上にどのような形で保存するかという戦略のこと。dbtのモデルは、何も設定しなければデフォルトでviewとしてマテリアライズされる。

  • view: 実行のたびにCREATE VIEW ASで再構築される。追加のストレージが不要で、参照するたびにソースの最新データが反映される一方、複雑な変換では参照のたびにクエリが実行されるため遅くなりやすい
  • table: 実行のたびにCREATE TABLE ASで再構築される。クエリ自体は高速だが、dbt runのたびにテーブル全体を作り直すため、複雑な変換や大量データでは実行に時間がかかる

マテリアライゼーションはモデルファイル内でconfigを使って指定できる:

{{ config(materialized='table') }}

select ...

BIツールから直接参照されるモデルや、下流の多くのモデルから参照される重い変換はtableに、単純な変換はviewのままにしておくのが基本的な使い分け。