[新機能]変更されたModelの数やデータの違いを確認できるdbt Cloudの「Advanced CI」を試してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
さがらです。
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」を試してみました。
所要時間には注意が必要ですが、何が変更されたのかがすぐにわかるので非常に便利な機能だと思います!








