Understand dbt project objects¶
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 independently of a workspace.
dbtプロジェクトオブジェクトは通常、 dbt-project.yml ファイルを含むdbtプロジェクトディレクトリに基づいています。これは、ワークスペース内からdbtプロジェクトオブジェクトを デプロイ (作成)するときにSnowflakeが使用するパターンです。
dbtプロジェクトオブジェクトは、ロールベースのアクセス制御(RBAC)をサポートします。Snowflakeの他のスキーマレベルのオブジェクトと同様に、dbtプロジェクトオブジェクトの CREATE、ALTER、DROP が可能です。Snowflakeウェアハウスから.:doc:/sql-reference/sql/execute-dbt-project コマンドを使用して、 test や ``run``などのdbtコマンドを実行することができます。タスク を使用すれば、これらのコマンドの実行をスケジュールすることもできます。
dbtプロジェクトオブジェクトの更新方法¶
ワークスペースを編集しても、dbtプロジェクトオブジェクトは自動的に更新されません。オブジェクトにコードの変更を認識させる場合は、その都度、デプロイ(つまり、新しいバージョンを追加)する必要があります。
プロダクションパイプラインを作成するには、dbtプロジェクトオブジェクトを作成して、 タスクで実行をスケジュールする ことをお勧めします。各dbtプロジェクトオブジェクトのバージョンは不変であるため、そうすることで、誰かが明示的に新しいバージョンを追加しない限り、実行間で変更がないことを保証できます。
dbtプロジェクトのファイルを更新するには、たとえば次のようにして、ワークスペースに新しいバージョンを追加する必要があります。
ALTER DBT PROJECT testdbt.public.my_dbt_project_object
ADD VERSION FROM 'snow://workspace/user$.public."all_my_dbt_projects"/versions/last';
dbtプロジェクトをGitで支えており、テストとデプロイを自動化したい場合は、次の例に示すように、Snow CLI snow dbt deploy コマンドを --force オプションを指定して実行します。
snow dbt deploy --source 'snow://workspace/user$.public."all_my_dbt_projects"/versions/last' --force my_dbt_project;
--force を使用するとバージョンを追加できます。これを指定しない場合、すでに作成されたオブジェクトに対して CREATE DBT PROJECT を実行するのと同じになるため、失敗します。
For more information about versioning, see dbtプロジェクトオブジェクトとファイルのバージョン.