ALTER DBT PROJECT

既存の dbtプロジェクトオブジェクト のプロパティを変更します。

こちらもご参照ください。

CREATE DBT PROJECTEXECUTE DBT PROJECTDESCRIBE DBT PROJECTDROP DBT PROJECTSHOW DBT PROJECTS

構文

ALTER DBT PROJECT [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER DBT PROJECT [ IF EXISTS ] ADD VERSION [ <version_name_alias> ]
  FROM '<source_location>'

ALTER DBT PROJECT [ IF EXISTS ] <name> SET
  [ DEFAULT_TARGET = { default_target } ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = { integration_name } ]
  [ COMMENT = '<string_literal>' ]

ALTER DBT PROJECT [ IF EXISTS ] <name> UNSET
  [ DEFAULT_TARGET = { default_target } ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = { integration_name } ]
  [ COMMENT ]
Copy

パラメーター

name

変更するdbtプロジェクトオブジェクトの識別子を指定します。

識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

RENAME TO new_name

dbtプロジェクトオブジェクトの名前を:samp:{new_name} に変更します。新しい識別子は、スキーマに対して一意にする必要があります。

識別子についての詳しい情報は、 識別子の要件 をご参照ください。

オプションでオブジェクトの名前を変更して、オブジェクトを別のデータベースやスキーマに移動できます。これを実行するには、新しいデータベース名やスキーマ名をそれぞれ db_name.schema_name.object_name または schema_name.object_name の形式で含む、修飾された new_name 値を指定します。

注釈

  • 宛先データベースやスキーマはすでに存在している必要があります。また、同じ名前のオブジェクトが宛先データベースにすでに存在することはできません。存在する場合、ステートメントはエラーを返します。

  • オブジェクトを管理アクセススキーマに移動することは、オブジェクトの所有者(つまり、オブジェクトに対して OWNERSHIP 権限を持つロール)がターゲットスキーマも所有している場合を 除き 禁止されています。

オブジェクトの名前を変更すると、そのオブジェクトを参照する他のオブジェクトも新しい名前で更新する必要があります。

ADD VERSION [ version_name_alias ]

現在のバージョン識別子を1つずつ増やすことにより、新しいバージョンを作成します。たとえば、 version$2 から :code:`version$3`など。

version name alias は任意であり、新しく作成された バージョン識別子に対応するカスタム識別子です。version name alias`は、:doc:/sql-reference/identifiers-syntax` に続く必要があります。

FROM 'source_location'

バージョンが作成されるdbtプロジェクトのソースファイルとバージョンの場所を指定する文字列。

dbtプロジェクトのソースファイルは、次のいずれかの場所にあります。

  • Gitリポジトリステージ。たとえば:

    '@my_db.my_schema.my_git_repository_stage/branches/my_branch/path/to/dbt_project_or_projects_parent'

    For more information about creating a Git repository object in Snowflake that connects a Git repository to a workspace for dbt Projects on Snowflake, see Gitリポジトリに接続されたワークスペースを作成する. For more information about creating and managing a Git repository object and stage without using a workspace, see SnowflakeでのGitリポジトリの使用 and CREATE GIT REPOSITORY.

  • 既存のdbtプロジェクトステージ。例えば:

    'snow://dbt/my_db.my_schema.my_existing_dbt_project_object/versions/last'

    バージョン指定子は必須で、last``(前の例で示したように)、 ``first、または``version$<num>``の形式で既存バージョンの指定子とすることができます。詳細については、 Versioning for dbt project objects and files をご参照ください。

  • 内部の名前付きステージ。たとえば:

    '@my_db.my_schema.my_internal_named_stage/path/to/dbt_projects_or_projects_parent'

    内部ユーザーステージとテーブルステージはサポートされていません。

  • Snowflake上のdbtのワークスペース。たとえば:

    'snow://workspace/user$.public."my_workspace_name"/versions/live/path/to/dbt_projects_or_projects_parent'

    ワークスペース名は大文字と小文字が区別され、特殊文字を含めることができるため、ワークスペース名を二重引用符で囲むことをお勧めします。

    バージョン指定子は必須で、lastfirstlive、または``version$<num>``の形式で既存バージョンの指定子とすることができます。詳細については、 Versioning for dbt project objects and files をご参照ください。

SET ...

dbtプロジェクトオブジェクトの1つ以上の指定されたプロパティまたはパラメーターを設定します。

DEFAULT_TARGET = default_target

Specifies the profile used for compilation and subsequent runs (for example, prod) of the dbt project object. This parameter can be overriden by using the EXECUTE DBT PROJECT command with ARGS = --target.

EXTERNAL_ACCESS_INTEGRATIONS = integration_name

Specifies the external access integration used to grant permissions to pull remote dependences from dbt package hub or Github. When declared on an object, dbt deps will run automatically during deployment. For more information, see Understand dependencies for dbt Projects on Snowflake.

COMMENT = 'string_literal'

dbtプロジェクトオブジェクトのコメントを追加するか、既存のコメントを上書きします。

UNSET ...

dbtプロジェクトオブジェクトの1つ以上の指定されたプロパティまたはパラメーターの設定を解除し、 NULL または値なしにします。

  • DEFAULT_TARGET

  • EXTERNAL_ACCESS_INTEGRATIONS

  • COMMENT

1つの ALTER ステートメントで複数のプロパティまたはパラメーターの設定を解除するには、各プロパティまたはパラメーターをコンマで区切ります。

プロパティまたはパラメーターの設定を解除する場合は、プロパティ名またはパラメーター名のみを指定します(上記の構文で値を指定するように指示されている場合を除く)。値を指定するとエラーが返されます。

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、 最低 1 つ の次の 権限 が必要です。

権限

オブジェクト

メモ

OWNERSHIP

dbtプロジェクト

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。

使用上の注意

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

次の例では、SnowflakeのGitリポジトリオブジェクトを更新して、Gitリポジトリから最新のコードを取得し、新しいバージョンを追加してdbtプロジェクトオブジェクトのコンテンツを更新します。

-- Update the Git repository object to fetch the latest code

ALTER GIT REPOSITORY sales_db.integrations_schema.sales_dbt_git_stage FETCH;

-- Add a new version to the dbt project object based on the updated Git repository object

ALTER DBT PROJECT sales_db.dbt_projects_schema.sales_model
  ADD VERSION
  FROM '@sales_db.integrations_schema.sales_dbt_git_stage/branches/main/sales_dbt_project';
Copy