[新機能]変更されたModelの数やデータの違いを確認できるdbt Cloudの「Advanced CI」を試してみた
さがらです。
dbt Cloudの新機能として、変更されたModelの数やデータの違いを確認できる「Advanced CI」がリリースされました。※Enterprise限定の機能です。
本機能を試してみたので、その内容をまとめてみます。
前提知識
dbt CloudでのCI Jobの設定が必要となります。この設定方法は下記のブログが参考になると思いますので、併せてご覧ください。
事前準備:Advanced CIを有効化する
対象のdbt CloudのAccount settingsから、Advanced CIの機能を有効化する必要があります。
Account settings
から、Enable account access to Advanced CI
にチェックを入れます。
CI Jobで「Run compare changes」を有効化する
次に対象のCI JobでRun compare changes
の設定を有効化します。
Advanced CIの挙動を確認する
実際に、Modelを変更してプルリクエストを発行した際に、どのようにAdvanced CIが機能するのかを確認してみます。
下図のように、number_of_orders
の値を単純に2倍にした変更を行ったとします。
するとCI Jobが起動しますので、Detail
を押します。
dbt Cloudで実行されたCI JobのCompare
を確認します。
Overview
タブを見ると、今回のプルリクエストに含まれる変更・追加・削除されたModelの一覧と、何が変更されたかの全体像が確認できます。
Primary keys
タブを見ると、Primary keyの変更があった場合の詳細情報が確認できるようになっています。(今回はPrimary keyを変更していないため特に表示されていませんが…)
Modified rows
タブを見ると、実際に変更を行ったカラムにおいて、値がどのように変わったのかを確認できます。
Columns
タブを見ると、今回変更のあったカラムの一覧が確認できます。値が変更となったのか(Value change)、データ型が変更となったのか(Datatype)、カラムの順番が変更となったのか(Column position)、という粒度で見れるようになっています。
また、プルリクエストの画面において、dbt Cloudから変更内容をまとめたコメントも行われます。
注意事項
Advanced CIを有効化すると対象のCI JobのRun summary
タブで一番最後にGenerate compare changes
が追加されています。
このGenerate compare changes
にかかった所要時間を見ると、1つ上のdbt build --select state:modified+
とほぼ変わらない所要時間となっています。
今回変更したModelは1つだけでもbuildと同じくらい時間がかかっていたため、一度に複数のModelを変更している場合はより長い時間がかかる可能性があります。この点だけご注意ください。
最後に
dbt Cloudの新機能である、変更されたModelの数やデータの違いを確認できる「Advanced CI」を試してみました。
所要時間には注意が必要ですが、何が変更されたのかがすぐにわかるので非常に便利な機能だと思います!