Snowflakeでのdbtプロジェクト

dbt Core は、 SQL 変換の定義、テスト、デプロイに使用できるオープンソースのデータ変換ツールとフレームワークです。

dbt Projects on Snowflake では、なじみのあるSnowflakeの機能を使用し、通常は次のようにして、dbt Coreプロジェクトを作成、編集、テスト、実行、管理できます。

  1. 有効なdbtプロジェクトを開始する:dbt_project.ymlprofile.yml/models/... を使用)これは Snowsight のワークスペース、またはSnowflakeに接続したGitリポジトリのいずれかに保存されます。必要な権限 を持つロールで、データベース、スキーマ、ウェアハウスを準備します。

  2. 依存関係をインストールする: Snowflake ワークスペース、ローカルマシン、またはgitオーケストレーション内で dbt deps コマンドを実行し、dbtプロジェクトの dbt_packages フォルダーを作成します。

    詳細については、 Snowflake上のdbtプロジェクトの依存関係を理解する をご参照ください。

  3. DBT PROJECT オブジェクトをデプロイする: プロジェクトファイルをそのオブジェクトの新しいバージョンにコピーして、スキーマレベルの DBT PROJECT オブジェクトを作成します。これは、CREATE OR REPLACE DBT PROJECT … FROM <source> コマンド、または snow dbt deploy Snowflake CLI コマンドを使用して実行できます。

    詳細については、 dbtプロジェクトオブジェクトのデプロイ をご参照ください。

  4. Execute the deployed dbt project object: Execute a dbt Core project within a dbt project object by using the EXECUTE DBT PROJECT command or the snow dbt execute Snowflake CLI command. Executing a dbt project involves invoking dbt Core commands to build or test models; this is what you schedule and orchestrate.

    詳細については、 EXECUTE DBT PROJECT をご参照ください。

  5. Schedule with Snowflake tasks: Use Snowflake tasks to schedule and orchestrate dbt project object executions.

    詳細については、 Schedule execution of dbt project objects on Snowflake をご参照ください。

  6. CI/CD 統合を設定する: Snowflake CLI コマンドを使用して、デプロイと実行を CI/CD ワークフローに統合します。

    The Snowflake CLI supports commands to create, execute, and manage dbt project objects from the command line. This is useful for integrating dbt projects into your data engineering workflows and CI/CD pipelines. For more information, see Snowflake CLI, CI/CD と Snowflake CLI の統合, and snow dbtコマンド.

  7. Monitor the dbt project object: Use Snowflake monitoring features to inspect, manage, and tune dbt project execution whether you execute a dbt project object manually or use tasks to execute dbt project objects on a schedule.

    詳細については、 dbt Projects on Snowflake をモニターする をご参照ください。

主な概念

  • dbtプロジェクトオブジェクト dbtオブジェクトは、 dbt_project.yml ファイルと、モデルやソースなどのdbtアセットを定義するファイルセットを含むディレクトリです。DBT PROJECT は、Snowflake内にあるdbtプロジェクトのバージョン管理されたソースファイルを含むスキーマレベルのオブジェクトです。dbtプロジェクトオブジェクトをワークスペースに接続することも、ワークスペースから独立してオブジェクトを作成および管理することもできます。Snowflakeの他のスキーマレベルオブジェクトと同様に、dbtプロジェクトオブジェクトに対して、CREATE、ALTER、および DROP を実行できます。

    A dbt project object is typically based on a dbt project directory that contains a dbt_project.yml file. This is the pattern that Snowflake uses when you deploy (create) a dbt project object from within a workspace.

    詳細については、 Understand dbt project objects をご参照ください。

  • スキーマのカスタマイズ: dbt はデフォルトの マクロ generate_schema_name を使用して、モデルが構築される場所を決定します。dbtがモデル、シード、スナップショット、テストテーブルをどのように構築するかをカスタマイズすることができます。

    詳細については、 Understand schema generation and customization をご参照ください。

  • ワークスペース: Snowflakeウェブインターフェイスのワークスペースは、Gitに接続されたウェブ IDE で、1つまたは複数のdbtプロジェクトを視覚化、テスト、実行、およびスキャフォールドすること、それらをSnowflake dbtプロジェクトオブジェクトにリンクして作成/更新すること、および他のSnowflakeコードを1か所で編集することができます。

    詳細については、 Workspaces for dbt Projects on Snowflake をご参照ください。

  • バージョン管理: すべてのdbtプロジェクトオブジェクトはバージョン管理されます。バージョンは snow://dbt/<db>.<schema>.<project>/versions/... の下に置かれます。

    For more information, see Versions for dbt project objects and files.

  • Supported dbt Core versions: Snowflake provides managed runtimes for specific dbt Core versions. You can pin a version at creation time, override it per execution, or set an account-level default.

    For more information, see |sf-dbt|でサポートされているdbt Coreバージョン.

  • Supported commands: dbt project objects support a subset of dbt commands and flags.

    For more information, see サポートされているdbtコマンドとフラグ.