← コースに戻る
未ログインのため、この講座の進捗は記録されません。ログインすると記録が残るようになります。
マテリアライゼーション② incremental/ephemeral
view・tableに加えて、dbtにはさらに2つの代表的なマテリアライゼーションがある。
- incremental: 前回の実行以降に追加・更新されたレコードだけを対象に、既存のテーブルへ挿入・更新を行う。イベントログのように行数が多く増え続けるデータに対して、dbt runのたびにテーブル全体を作り直すのを避け、実行時間を大幅に短縮できる。ただしフィルタ条件などの追加設定が必要で、tableより高度な使い方になる
- ephemeral: ウェアハウス上に直接テーブルやビューとして構築されず、それを参照する他のモデルのSQLにCTE(共通テーブル式)として埋め込まれる。中間的な軽い変換をまとめておくのに使うが、直接クエリできずデバッグしづらいという欠点もある
まずはview/tableで始め、dbt runの実行時間やクエリ速度に問題が出てきた段階で、incrementalやephemeralへの変更を検討するのが基本的な進め方。