Snowflakeでのdbtプロジェクト¶
dbt Core は、 SQL 変換の定義、テスト、デプロイに使用できるオープンソースのデータ変換ツールとフレームワークです。
dbt Projects on Snowflake では、なじみのあるSnowflakeの機能を使用し、通常は次のようにして、dbt Coreプロジェクトを作成、編集、テスト、実行、管理できます。
有効なdbtプロジェクトを開始する: (
dbt_project.yml、profile.yml、/models/...を使用)これは Snowsight のワークスペース、またはSnowflakeに接続したGitリポジトリのいずれかに保存されます。必要な権限 を持つロールで、データベース、スキーマ、ウェアハウスを準備します。依存関係をインストールする: Snowflake ワークスペース、ローカルマシン、またはgitオーケストレーション内で
dbt depsコマンドを実行し、dbtプロジェクトのdbt_packagesフォルダーを作成します。詳細については、 Snowflake上のdbtプロジェクトの依存関係を理解する をご参照ください。
DBT PROJECT オブジェクトをデプロイする: プロジェクトファイルをそのオブジェクトの新しいバージョンにコピーして、スキーマレベルの DBT PROJECT オブジェクトを作成します。これは、CREATE OR REPLACE DBT PROJECT … FROM <source> コマンド、または
snow dbt deploySnowflake CLI コマンドを使用して実行できます。詳細については、 dbtプロジェクトオブジェクトのデプロイ をご参照ください。
Snowflakeでdbtプロジェクトを実行する: EXECUTE DBT PROJECT コマンド、または
snow dbt executeSnowflake CLI コマンドを使用して、dbtプロジェクトオブジェクト内でdbt Coreプロジェクトを実行します。dbtプロジェクトを実行するには、dbt Coreコマンドを呼び出してモデルをビルドまたはテストする必要があります。これを、スケジュールし、オーケストレーションします。詳細については、 EXECUTE DBT PROJECT をご参照ください。
Snowflakeタスクを使用してスケジュールする: Snowflakeタスクを使用して、dbtプロジェクトの実行をスケジュールおよびオーケストレーションします。
詳細については、 Snowflakeでdbtプロジェクトの実行をスケジュールする をご参照ください。
CI/CD 統合を設定する: Snowflake CLI コマンドを使用して、デプロイと実行を CI/CD ワークフローに統合します。
dbtプロジェクトオブジェクトはSnowflakeのCLI コマンドをサポートします。これを使用すると、コマンドラインからdbtプロジェクトを作成および管理することができます。これは、dbtプロジェクトをデータエンジニアリングワークフローや CI/CD パイプラインに統合する際に便利です。詳細については、 Snowflake CLI、 CI/CD と Snowflake CLI の統合 および snow dbtコマンド をご参照ください。
dbtプロジェクトをモニターする: dbtプロジェクト実行を手動で実行する場合でも、タスクを使用してスケジュール上でdbtプロジェクトオブジェクトを実行する場合でも、Snowflakeのモニタリング機能を使用して、dbtプロジェクトの実行を検査し、管理し、調整できます。
詳細については、 Snowflakeでdbtプロジェクトを監視する をご参照ください。
主な概念¶
dbtプロジェクトオブジェクト dbtオブジェクトは、
dbt_project.ymlファイルと、モデルやソースなどのdbtアセットを定義するファイルセットを含むディレクトリです。DBT PROJECT は、Snowflake内にあるdbtプロジェクトのバージョン管理されたソースファイルを含むスキーマレベルのオブジェクトです。dbtプロジェクトオブジェクトをワークスペースに接続することも、ワークスペースから独立してオブジェクトを作成および管理することもできます。Snowflakeの他のスキーマレベルオブジェクトと同様に、dbtプロジェクトオブジェクトに対して、CREATE、ALTER、および DROP を実行できます。dbtプロジェクトオブジェクトは通常、
dbt-project.ymlファイルを含むdbtプロジェクトディレクトリに基づいています。これは、ワークスペース内からdbtプロジェクトオブジェクトをデプロイ(作成)するときにSnowflakeが使用するパターンです。詳細については、 dbtプロジェクトオブジェクトについて をご参照ください。
スキーマのカスタマイズ: dbt はデフォルトの マクロ
generate_schema_nameを使用して、モデルが構築される場所を決定します。dbtがモデル、シード、スナップショット、テストテーブルをどのように構築するかをカスタマイズすることができます。詳細については、 スキーマ生成とカスタマイズについて をご参照ください。
ワークスペース: Snowflakeウェブインターフェイスのワークスペースは、Gitに接続されたウェブ IDE で、1つまたは複数のdbtプロジェクトを視覚化、テスト、実行、およびスキャフォールドすること、それらをSnowflake dbtプロジェクトオブジェクトにリンクして作成/更新すること、および他のSnowflakeコードを1か所で編集することができます。
詳細については、 dbt Projects on Snowflake のワークスペースを使用 をご参照ください。
バージョン管理: すべてのdbtプロジェクトオブジェクトはバージョン管理されます。バージョンは
snow://dbt/<db>.<schema>.<project>/versions/...の下に置かれます。詳細については、 dbtプロジェクトオブジェクトとファイルのバージョン管理 をご参照ください。