パッケージを作りたいとき、バグっぽい挙動に出くわしたとき、単なる知的好奇心…などなど、dbtの裏側のコードを読む機会があるかもしれません。dbtのコードを読むときに、どこを見ればいいのか、どのような構造になっているのか、といったことをいくつかの例と一緒にまとめてみました。 要約 dbt-coreではなく、dbt-bigqueryなどadapter側の実装の方が重要なことが多いです。 アーキテクチャ まずはdbtのアーキテクチャをざっくりと説明します。dbtでは環境構築時にcoreと各DWH用のadapterをインストールしますが、それぞれ以下のような役割を担っています。 dbt-core: CLI等のユーザーインターフェースを担当 dbt-adapters: DWHとの接続を担当する抽象化レイヤー dbt-bigquery など各種adapter: dbt-adaptersを継承した具体的