dbtの開発構成について

17377 ワード

はじめに

dbtの開発時の環境構成について社内で議論があったため、自分なりの構成をまとめてみました。

概要

dbtで開発環境、本番環境などを切り分けるとき、profiles.ymlのtargetを分けることでデプロイ先を切り替えることができます。ですが、複数人で開発を行う際に同じ環境に対してdbt runを実行すると、実行する度にデータマートが書き換えられて開発が行いにくいかと思います。

今回はdbtのカスタムスキーマ機能を用いて開発ブランチごとにスキーマを生成する形をとってみました。ただ無尽蔵にスキーマを生成すると開発環境が散らかるため、github actionsを使って、PRがマージされた際に生成したスキーマを削除するようなCI/CDを組みました。

サンプル

こちらにコードを置いています。