Censusとdbtのリポジトリを連携してCensusの処理に影響のあるdbtのModelを検出するCI処理を設定してみた

Censusとdbtのリポジトリを連携してCensusの処理に影響のあるdbtのModelを検出するCI処理を設定してみた

Clock Icon2024.12.15

さがらです。

Censusとdbtのリポジトリを連携してCensusの処理に影響のあるdbtのModelを検出するCI処理を設定してみたので、その内容をまとめてみます。

事前準備

Censusとdbtのリポジトリの連携

CIを設定するためには、Censusとdbtのリポジトリの連携が必要です。

こちらの設定手順については下記の記事でまとめていますので、併せてご覧ください。

https://dev.classmethod.jp/articles/census-integration-with-dbt/

対象のdbtのModelを用いたCensusのSync設定

次に、dbtのModelをDatasetとして登録したうえで、1つSync処理を作っておきます。

今回はDestinationをスプレッドシート、SourceをSnowflakeで定義したdbt Model、としたSyncを作りました。(下記の記事の内容に沿ってSyncを設定しています。)

https://dev.classmethod.jp/articles/census-destination-google-sheets/

CI処理のセットアップ

dbtのリポジトリの連携を行っているSourceのProjectsから、dbt ProjectタブでConfigureを押します。

2024-12-15_07h45_52

2024-12-15_07h46_45

その後、GitHub Pull Request Checks欄のEnableを押します。

2024-12-15_07h47_45

その後、下図のように表示されれば準備はOKです。

2024-12-15_07h49_35

CI処理を動かしてみた

dbtのModel自体を削除した場合

dbtでCensusのSyncに使用しているModel自体を削除して、Pull Requestを作成してみます。

2024-12-15_08h05_11

すると、下図のようにCI処理が動きます。

2024-12-15_08h02_17

CI処理は失敗となり、詳細を見てみると削除したdbt Modelを使用しているCensusのSyncの一覧が表示されました。(リンクを押すとCensusのSyncのページにリンクします。)

2024-12-15_08h03_07

2024-12-15_08h04_01

dbtのModelからカラムを削除した場合

dbtでCensusのSyncに使用しているModelについて、使用しているカラムを削除した上でPull Requestを作成してみます。

2024-12-15_07h52_00

すると、CensusのCI処理が動いたのですが、CI処理は問題なく通ってしまいました…カラムについては検知できないのかもしれません。

2024-12-15_07h58_36

2024-12-15_07h58_11

最後に

Censusとdbtのリポジトリを連携してCensusの処理に影響のあるdbtのModelを検出するCI処理を設定してみました。

カラムの差分の確認が出来ない点は少し惜しいですが、Modelレベルであれば有効に機能するため、不要となるdbt Modelの削除などを行う時に活きてくるCIだと感じました!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.