7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【新機能】3分でわかるdbtのモデルガバナンス【dbt-core v1.5】

Last updated at Posted at 2023-05-31

はじめに

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

モデルガバナンスについて

4月に公開されたdbt-core 1.5では「モデルガバナンス(Model governance)」という機能が追加されました。
モデルガバナンスは3つの機能によって成り立っています。

Model access

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

Model access

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モデルをチーム間で共有する際に秩序をもたらすための機能です。

以上、参考になりましたら幸いです。

参考記事

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?