Snowflakeでのdbtプロジェクト¶
dbt Core は、 SQL 変換の定義、テスト、デプロイに使用できるオープンソースのデータ変換ツールとフレームワークです。
|sf-dbt|では、なじみのある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コマンドを呼び出してモデルをビルドまたはテストする必要があります。これを、スケジュールし、オーケストレーションします。For more information, see 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 project objects: A dbt project is a directory that contains a
dbt_project.ymlfile and a set of files that define dbt assets, such as models and sources. A DBT PROJECT is a schema-level object that contains versioned source files for your dbt project in Snowflake. You can connect a dbt project object to a workspace, or you can create and manage the object independent of a workspace. You can CREATE, ALTER, and DROP dbt project objects like other schema-level objects in Snowflake.dbtプロジェクトオブジェクトは通常、
dbt-project.ymlファイルを含むdbtプロジェクトディレクトリに基づいています。これは、ワークスペース内からdbtプロジェクトオブジェクトをデプロイ(作成)するときにSnowflakeが使用するパターンです。詳細については、 dbtプロジェクトオブジェクトについて をご参照ください。
スキーマのカスタマイズ: dbt はデフォルトの マクロ
generate_schema_nameを使用して、モデルが構築される場所を決定します。dbtがモデル、シード、スナップショット、テストテーブルをどのように構築するかをカスタマイズすることができます。詳細については、 スキーマ生成とカスタマイズについて をご参照ください。
ワークスペース: Snowflakeウェブインターフェイスのワークスペースは、Gitに接続されたウェブ IDE で、1つまたは複数のdbtプロジェクトを視覚化、テスト、実行、およびスキャフォールドすること、それらをSnowflake dbtプロジェクトオブジェクトにリンクして作成/更新すること、および他のSnowflakeコードを1か所で編集することができます。
詳細については、 |sf-dbt|のワークスペースを使用 をご参照ください。
バージョン管理: すべてのdbtプロジェクトオブジェクトはバージョン管理されます。バージョンは
snow://dbt/<db>.<schema>.<project>/versions/...の下に置かれます。詳細については、 dbtプロジェクトオブジェクトとファイルのバージョン管理 をご参照ください。