【dbt】dbt ~ 基礎知識編 ~

■ はじめに

dbt の良さとか、何ができるかってのを徐々にだがメモしていく

目次

【1】dbt
【2】サポートデータプラットフォーム
【3】利点
 1)環境の切替が容易
 2)シンプルな実装が可能
 3)ドキュメント生成
 4)テストの自動化
【4】動画

【1】dbt

* dbt = data build tool
* ELT(抽出, 変換, 格納)の Transform(変換)を担うツール

【2】サポートデータプラットフォーム

* 主要なDWHは、網羅されているといっていいかも。

https://docs.getdbt.com/docs/supported-data-platforms

* Snowflake
* PostgreSQL
* Redshift
* Spark
* Databricks
etc...

【3】利点

1)環境の切替が容易
2)シンプルな実装が可能
3)ドキュメント生成
4)テストの自動化
などなど

1)環境の切替が容易

* 以下の環境について、YAMLの設定ファイルで切替が容易
 + Dev/Stage/Prodなどの環境単位 ... .dbt/profiles.yml
 + Database/Schema 単位 ... models\[MODEL_NAME]\scheme.yml

2)シンプルな実装が可能

* CTE(WIHT句)により、ネストの少ないスクリプトを実装可能
* マクロ機能や変数により、共通部品化することにより
 DRY(Don't Repeat yourself)原則に当てはめることが可能

3)ドキュメント生成

* モデルやフィールドの説明を記載
* モデルの依存関係を図で可視化が可能

=> 詳細は、以下の関連記事を参照のこと

dbt ~ ドキュメント化 / dbt docs ~
https://dk521123.hatenablog.com/entry/2023/12/10/125512

4)テストの自動化

* 「dbt test」により(今までになかった)
 SQLの自動テストが可能

【4】動画

* 公式

https://courses.getdbt.com/collections/beginner

参考文献

https://dev.classmethod.jp/articles/dbt-overview-2023/
https://engineer.retty.me/entry/2022/09/14/172635
https://www.flywheel.jp/topics/what_is_dbt/
https://zenn.dev/dbt_tokyo/books/537de43829f3a0/viewer/what_dbt

関連記事

dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/30/151003
dbt ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2023/12/16/152147
dbt ~ 環境設定 / Docker 編 ~
https://dk521123.hatenablog.com/entry/2024/10/11/230419
dbt ~ 基本編 / Model ~
https://dk521123.hatenablog.com/entry/2023/11/25/231128
dbt ~ DB/Schema/Table の指定方法 ~
https://dk521123.hatenablog.com/entry/2024/09/29/185918
dbt ~ Model あれこれ ~
https://dk521123.hatenablog.com/entry/2023/11/26/224522
dbt ~ 基本編 / Source ~
https://dk521123.hatenablog.com/entry/2023/12/08/111012
dbt ~ 基本編 / Seed ~
https://dk521123.hatenablog.com/entry/2023/11/20/230946
dbt ~ Hooks ~
https://dk521123.hatenablog.com/entry/2023/12/11/040122
dbt ~ aliases ~
https://dk521123.hatenablog.com/entry/2023/12/13/031018
dbt ~ 更新 / 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/12/07/060129
dbt ~ 更新 / Update or Insert / Insert ~
https://dk521123.hatenablog.com/entry/2023/12/19/224453
dbt ~ 更新 / Delete and Insert ~
https://dk521123.hatenablog.com/entry/2023/12/20/000104
dbt ~ 更新 / DROP + CTAS ~
https://dk521123.hatenablog.com/entry/2023/12/04/000000
dbt ~ ドキュメント化 / dbt docs ~
https://dk521123.hatenablog.com/entry/2023/12/10/125512
dbt ~ dbt CLI
https://dk521123.hatenablog.com/entry/2024/07/21/234811
dbt Macro ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/11/29/003751
dbt Macro ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2024/10/22/002940
dbt Macro ~ DWHごとに処理切替 / adapter.dispach ~
https://dk521123.hatenablog.com/entry/2024/08/20/150724
dbt ~ 条件分岐 ~
https://dk521123.hatenablog.com/entry/2024/09/11/003301
dbt で生成されるSQL文を確認する
https://dk521123.hatenablog.com/entry/2024/08/25/002741
dbt ~ Snowflakeテーブル ~
https://dk521123.hatenablog.com/entry/2024/08/29/153801
dbt 設定初期時でのトラブル
https://dk521123.hatenablog.com/entry/2023/06/19/000000
dbt を v1.8 に更新後エラー
https://dk521123.hatenablog.com/entry/2024/08/24/002455
動的なdbt 実行時でのトラブル
https://dk521123.hatenablog.com/entry/2024/09/10/145921
Python with dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/07/20/034930
Python with dbt ~ rows_affected ~
https://dk521123.hatenablog.com/entry/2024/09/02/234559