dbt
cloud版もある。
pythonの処理で書いていくと、手続きが入り組んでいって、可読性が落ちる。
sqlで書いていけば、宣言型の記述で可読性を保てる。
また、一般的に処理をするステージごとにdirectoryを分けて、step処理を記述できる。
ステージにより処理の分離
sqlファイルによる処理を、その処理のステージごとに
1. RawData
2. Seeds/Sources(取り込み)
3. taging(正規化)
4. Intermediate
5. Marts(データマート)
飛ばしてもたぶん大丈夫?
呼び名:
モデル:
sqlファイル1つがモデルと呼ばれる。
staging, intermediate, marts などにそのsqlファイルは置かれ、それぞれにモデルがあることになる。
{{...}} でマクロ展開
モデルごとに schema.yml で unique/not_null/accepted_values などのビルトインテストを定義できます
dbt docs generate→ dbt docs serve