dbtのPull Request発行時にHightouchのModelに影響がないか確認できる「dbt CI checks」を試してみた

2023.09.12

さがらです。

dbtのPull Request発行時にHightouchのModelに影響がないか確認できる「dbt CI checks」を試してみたので、本記事でその内容をまとめてみます。

※2023年9月12日時点、本機能はOpen Betaとなっておりますのでご注意ください。

事前準備

HightouchとdbtのGitリポジトリを「GitHub app」で連携済にし、「GitHub Pull Request checks」を有効化

まず、HightouchとdbtのGitリポジトリを連携しておく必要があるのですが、GitHub appで認証をしておく必要があります。

GitHub app以外の方法で認証してしまうと、下図のように警告が出てしまい有効化出来ないためご注意ください。

GitHub appでの認証手順としては、Hightouch上でExtensions/dbt modelsからConfigurationを押し、Git credentialsManageを押します。

この上で、Git serviceGitHub appを選択し、Configure GitHub Appを押します。

すると、GitHub appのインストール画面となるので、リポジトリを制限したい場合はOnly select repositoriesを押してリポジトリを制限し、Installを押します。(私はAll repositoriesで進めます。)

これで、HightouchとdbtのGitリポジトリを「GitHub app」で連携完了です。

あとは、dbt Modelを定義しているSourceの設定において、GitHub Pull Request checksを有効化し、右上のSaveを押しましょう。

これで、dbt CI checks機能を使う準備は完了です!

Hightouch上でdbt Modelを用いたSyncを1つ定義

dbtのCI機能のため、Hightouch上でdbt Modelを用いたSyncを1つ定義しておく必要があります。

そのため、今回はdbt Modelをスプレッドシートにエクスポートするという非常にシンプルなSyncを事前に定義しておきました。

実際にdbt CI checksの挙動を確認してみる

ここからは、実際にdbtでブランチを切って開発した時、どのようにCI checksが働くのかを見ていきます。

正常な時

まず、特に何も問題がないときを確認してみます。

Pull Request発行時にHightouchのアプリによるcheck機能が走っていることがわかります。

Detailsを押すと、こんな画面が表示されます。

Hightouchで使用されているModelを削除した時(異常な時)

次に、あえてCI checksが失敗するように、Hightouchで使用しているModelを削除してみます。

この状態でPull Requestを発行してみると、Hightouchのアプリによるcheck機能がエラーを返していることがわかります。

Detailsを押すと、下記のような画面が表示されます。

このCI機能があれば、Hightouchで使用しているdbt Modelが削除されたり名前変更されてしまったときに検知ができるので、安心してdbtの開発が行なえますね!

最後に

簡単ではありましたが、dbtのPull Request発行時にHightouchのModelに影響がないか確認できる「dbt CI checks」を試してみました。

Hightouchとdbtどちらもお使いの方には入れて損がない機能だと思いますので、ぜひ使ってみてください!