✅
2024-10-14
2024-12-24
約2759字
3,000 円/時
imofessional
この記事ではCIへの導入検討のためにdbtプロジェクトのチェックツールであるdbt-checkpointのgithubリポジトリを読み、できることをざっくりまとめています。筆者はBigQueryとdbt coreを使っていて、github actionsでCIを整備しているのでそれらのツールを使う前提で書いています。
dbt-checkpointは、dbtプロジェクトの品質を維持するためのツールです。dbtは便利なツールですが、モデル、ソース、マクロの数が増えると、各開発者が一貫した品質を保つのが難しくなります。たとえば、YAMLファイルのプロパティにカラムを追加し忘れたり、テーブルやカラムの説明を記載し忘れたりすることがあります。これらを手動でチェックするのは手間がかかり、レビューアーの負担が増え、誤りを見逃したり、低品質なコードがデプロイされてしまうリスクが高まります。チェック作業を自動化し、コードレビューやリリースプロセスを効率化するために、dbt-checkpointは以下のようなさまざまなフックを提供してくれています。
dbt-checkpointは、コミュニティ主導のオープンソースプロジェクトとして開発されています。githubリポジトリはこちら
dbt compileコマンドやdbt parseコマンドやyaml lintなどをCIに組み込むことでSQLファイルの構文エラーやYAMLファイルの構文エラーを検知することができることは知っていましたが、column descriptionの未記入やtestの記述漏れなど構文エラー以上コードチェックをするツールはこれまで知らなかったかつコードを0から書くのは大変だったのでdbt-checkpointをCIに組み込むことでシュッと可能になったらとても楽でありがたいなという気持ちでした。
column descriptionの未記入はcheck-source-columns-have-descでチェックでき、testの記述漏れはcheck-model-has-testsやcheck-source-has-testsでチェックできそうでした!🎉
それ以外にもmacroやmodelのdescriptionの有無などもチェックできるため、CIに仕込めばdescriptionの記入を強制することもできそうです(過激派)
他にも機能はもりもりですが、一旦自分はcheck-source-columns-have-descあたりをCIに組み込むところからはじめてみようかなと思います!
ということでやりたいことはできそうなのでdbt-checkpoint導入してみようと思います!すでにdbt compileやdbt parseはCIに組み込んでいるのでdbt-checkpointを追加で取り入れることでさらにdbtプロジェクトの頑健性を高めることができそうです!
Model checks:
Script checks:
Source checks:
Macro checks:
Modifiers:
dbt commands:
dbt checks:
©︎ 2025 - Yard