はじめに
この記事ではdbt-core v1.5で追加された「モデルガバナンス(Model governance)」について概要をさっくり説明します。
モデルガバナンスについて

4月に公開されたdbt-core 1.5では「モデルガバナンス(Model governance)」という機能が追加されました。
モデルガバナンスは3つの機能によって成り立っています。
Model access
モデルのアクセス制御を行う機能です。モデルの可視性について「public」または「private」のようにマークして、だれがそのモデルを参照できるのかを制御します。
アクセス制御といっても、「だれがテーブル、データにアクセスできるか?」というデータのセキュリティ的な意味ではなく、「だれがモデル定義を参照、拡張できるか?」 という拡張性の観点でのアクセス制御を行います。
(オブジェクト指向プログラミングのアクセス修飾子のようなもの)

Model contracts
モデルのカラムごとにデータ型(int, bool, stringなど)、制約(not nullなど)を定義できる機能です。
この機能があることで、モデルを下流のクエリで再利用するときに発生する型やデータの違いによる問題を抑えることができます。
(Webアプリケーションで例えると、API定義のようなもの)
Model versions
モデルのバージョン管理を行う機能です。
この機能があることで、下流のクエリへの影響を制御することができます。
モデルに破壊的変更をするときに、モデルを新しいバージョンとしてリリースして、下流のモデルに対応の猶予を残したりすることができます。
(Web APIのバージョンや、パッケージのバージョンと同じようなイメージ)
モデルガバナンスの何が便利?
dbtモデルを下流のdbtモデルで利用したり、BIツールやスプレッドシートから再利用しているときに、発生する困りごとを解消してくれます。
「モデルがありすぎてどのモデルを選んだらいいかわからない!」
=> 「Model access」によって参照できるモデルが限定されます。
「依存しているモデルのデータ型や制約がわからない!」
=> 「Model contracts」によって明確になります。
「モデルの破壊的な変更変更によって下流のdbtモデル/BIダッシュボードが壊れた!」
=> 「Model versions」によって変更が管理され、スムーズなアップデート作業ができます。
まとめ
dbt モデルガバナンスでは、「モデルのアクセス制御」、「モデルのコントラクトの定義」、「モデルのバージョン管理」が実現されています。
モデルガバナンスはdbtモデルをチーム間で共有する際に秩序をもたらすための機能です。
以上、参考になりましたら幸いです。
参考記事