Censusとdbtのリポジトリを連携してCensusの処理に影響のあるdbtのModelを検出するCI処理を設定してみた
さがらです。
Censusとdbtのリポジトリを連携してCensusの処理に影響のあるdbtのModelを検出するCI処理を設定してみたので、その内容をまとめてみます。
事前準備
Censusとdbtのリポジトリの連携
CIを設定するためには、Censusとdbtのリポジトリの連携が必要です。
こちらの設定手順については下記の記事でまとめていますので、併せてご覧ください。
対象のdbtのModelを用いたCensusのSync設定
次に、dbtのModelをDatasetとして登録したうえで、1つSync処理を作っておきます。
今回はDestinationをスプレッドシート、SourceをSnowflakeで定義したdbt Model、としたSyncを作りました。(下記の記事の内容に沿ってSyncを設定しています。)
CI処理のセットアップ
dbtのリポジトリの連携を行っているSourceのProjects
から、dbt ProjectタブでConfigure
を押します。
その後、GitHub Pull Request Checks
欄のEnable
を押します。
その後、下図のように表示されれば準備はOKです。
CI処理を動かしてみた
dbtのModel自体を削除した場合
dbtでCensusのSyncに使用しているModel自体を削除して、Pull Requestを作成してみます。
すると、下図のようにCI処理が動きます。
CI処理は失敗となり、詳細を見てみると削除したdbt Modelを使用しているCensusのSyncの一覧が表示されました。(リンクを押すとCensusのSyncのページにリンクします。)
dbtのModelからカラムを削除した場合
dbtでCensusのSyncに使用しているModelについて、使用しているカラムを削除した上でPull Requestを作成してみます。
すると、CensusのCI処理が動いたのですが、CI処理は問題なく通ってしまいました…カラムについては検知できないのかもしれません。
最後に
Censusとdbtのリポジトリを連携してCensusの処理に影響のあるdbtのModelを検出するCI処理を設定してみました。
カラムの差分の確認が出来ない点は少し惜しいですが、Modelレベルであれば有効に機能するため、不要となるdbt Modelの削除などを行う時に活きてくるCIだと感じました!