Open3
dbtを理解したい!
dbt
dbtは、SQLによるデータ変換ツール
機能とメリット
- 分析コードをモジュール化して一元管理できる
- view同士の関係性の把握の迷子が解決する
- ドキュメント自動生成やテスト機能
- バージョン管理
接続
- dbt Cloud
- クラウドツール
- WebベースのGUIで操作できる
- dbt Core
- オープンソースツール
- ローカルで保守することができる
特徴
- トランザクションの管理、テーブル削除、スキーマ変更をdbt側で管理することで、定型的なDMLやDDLを書くことを避けることができる
- SQLのselect文やPythonのDataFrameだけでビジネスロジックを記述し、必要なデータセットを返します。
- 分析のたびに生データから始めるのではなく、再利用可能なモジュール化されたデータモデルを構築する
dbtクイックスタート
Snowflakeと接続してみる
- Snowflakeにデータを読み込む
- dbt CloudをSnowflakeに接続する
- Snowflakeトライアルアカウント内からdbtへPartnerConnectで接続できる(または手動でカスタマイズ接続)
- gitでバージョン管理(Partner Connectでは設定済み)
- dbtプロジェクトを開始する
- 最初のモデルを構築する
- withとselect文でモデルを作成できる
- モデルの実現方法を変更する
- サンプルモデルを削除する
- 他のモデルの上にモデルを構築する
- ソースに基づいてモデルを構築する
- ソースを使用することでデータの流れを定義し追跡することが可能(ソース→モデル1→モデル2)
- モデルにテストを追加する
-
schema.yml
にテストコードを記載して、dbt test
でテスト実行
-
- モデルを文書化する
-
schema.yml
に説明を追記してdbt docs generate
でドキュメントを生成(jsonが生成される) - 開発インターフェース左上の本のアイコンをクリックするとドキュメントが起動する(リロード必要かも)
-
- 変更をコミットする
- dbtをデプロイする
- デプロイ環境設定(Snowflakeの接続時にパスワードが必要)
- ジョブを作成して実行する
- ※権限エラー発生
- WAREHOUSE指定?
- デフォルトのPC_DBT_DBを指定することで暫定で解決
- ※権限エラー発生