Open3

dbtを理解したい!

rakudaCaserakudaCase

機能とメリット

  • 分析コードをモジュール化して一元管理できる
    • view同士の関係性の把握の迷子が解決する
  • ドキュメント自動生成やテスト機能
  • バージョン管理

接続

  • dbt Cloud
    • クラウドツール
    • WebベースのGUIで操作できる
  • dbt Core
    • オープンソースツール
    • ローカルで保守することができる

特徴

  • トランザクションの管理、テーブル削除、スキーマ変更をdbt側で管理することで、定型的なDMLやDDLを書くことを避けることができる
    • SQLのselect文やPythonのDataFrameだけでビジネスロジックを記述し、必要なデータセットを返します。
  • 分析のたびに生データから始めるのではなく、再利用可能なモジュール化されたデータモデルを構築する
rakudaCaserakudaCase

dbtクイックスタート

https://docs.getdbt.com/docs/get-started-dbt
Snowflakeと接続してみる

  1. Snowflakeにデータを読み込む
  2. dbt CloudをSnowflakeに接続する
    • Snowflakeトライアルアカウント内からdbtへPartnerConnectで接続できる(または手動でカスタマイズ接続)
  3. gitでバージョン管理(Partner Connectでは設定済み)
  4. dbtプロジェクトを開始する
  5. 最初のモデルを構築する
    • withとselect文でモデルを作成できる
  6. モデルの実現方法を変更する
  7. サンプルモデルを削除する
  8. 他のモデルの上にモデルを構築する
  9. ソースに基づいてモデルを構築する
    • ソースを使用することでデータの流れを定義し追跡することが可能(ソース→モデル1→モデル2)
  10. モデルにテストを追加する
    • schema.ymlにテストコードを記載して、dbt testでテスト実行
  11. モデルを文書化する
    • schema.ymlに説明を追記してdbt docs generateでドキュメントを生成(jsonが生成される)
    • 開発インターフェース左上の本のアイコンをクリックするとドキュメントが起動する(リロード必要かも)
  12. 変更をコミットする
  13. dbtをデプロイする
    • デプロイ環境設定(Snowflakeの接続時にパスワードが必要)
    • ジョブを作成して実行する
      • ※権限エラー発生
        • WAREHOUSE指定?
        • デフォルトのPC_DBT_DBを指定することで暫定で解決