はじめに
dbt下記のチュートリアルをやってみた際のメモ(Chapter 05まで)
非常にわかりやすく、どういった機能があるのかを知ることができるのでおすすめです。
dbt Cloudのセットアップ
- Bigqueryの管理者アカウントのJSON形式の鍵をアップロードすることで簡単に連携できる。
- Githubと連携することで後に実装するモデル開発ファイルやテストファイルを管理しやすくなる
- 特にdbt cloud上からブランチ作成やpush可能なのが便利
チュートリアル:モデル開発の基本
- dbtでは、SQLで書かれたデータの抽出を行いテーブルのデータになる処理のまとまりを「モデル」と呼ぶ。
- 左サイドメニューの「initialize your project」を押すことで必要なフォルダ・ファイルが作成される。
- 2023/01/29時点ではデフォルトでdataフォルダがなく、seedsフォルダがある。
- models配下にexampleのフォルダがありサンプルが既に存在している。
dbt run
を行うとこのexample配下も実行されてしまうので注意。
- seedsフォルダ配下にcsvファイルを格納して
dbt seed
を実行することでBigQueryにcsvデータが格納されたテーブルが作成される。1つのcsvファイルにつき1テーブル。 - モデルをデプロイするときは
dbt run
。実行するとBigQuery上に作成したモデル(sql)が反映される。 -
{{ ref(モデル名) }}
とすることで別モデルの結果を参照できる。 - Lineageタブでデータリネージ(モデル間の構造)が確認可能。
チュートリアル:テストとドキュメント
-
models/schama.yml
を作成して、内部にテストケースを記載することでスキーマテストできる。 - テスト例としては、対象カラムがuniqueかnot_nullか等を確認できる。また、対象カラムが許容している値かどうかや指定したカラムと結合しているかどうかのテストができる。
- テストは拡張することも可能。dbt-utils packageのような外部のパッケージされているものも使用可能。
-
models/schama.yml
にdescription
要素を書き足すことでドキュメント化可能。dbt docs generate
で生成して左サイドメニューの本マーク(view docs)で確認できる。
チュートリアル:デプロイの設定
- Enviromentを作成して、そのEnviromentに対してジョブが設定できる。
- ジョブは
dbt test
やdbt run
などdbtコマンドが指定できる。 - スケジュールの設定も可能。