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_VERSION = { FIRST | LAST | VERSION$<num> } ]
  [ DEFAULT_ARGS = '<string_literal>' ]
  [ COMMENT = '<string_literal>' ]

ALTER DBT PROJECT [ IF EXISTS ] <name> UNSET
  [ DEFAULT_ARGS ]
  [ 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'

    SnowflakeでGitリポジトリオブジェクトを作成し、Gitリポジトリを |sf-dbt|のワークスペースに接続する方法については、label-dbt_create_git_integrated_workspace`をご参照ください。ワークスペースを使用せずにGitリポジトリオブジェクトとステージを作成および管理する方法の詳細については、:doc:/developer-guide/git/git-overview` および :doc:`create-git-repository`をご参照ください。

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

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

    バージョン指定子は必須で、last``(前の例で示したように)、 ``first、または``version$<num>``の形式で既存バージョンの指定子とすることができます。詳細については、 dbtプロジェクトオブジェクトとファイルのバージョン管理 をご参照ください。

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

    '@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>``の形式で既存バージョンの指定子とすることができます。詳細については、 dbtプロジェクトオブジェクトとファイルのバージョン管理 をご参照ください。

SET ...

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

DEFAULT_VERSION = { FIRST | LAST | VERSION$num }

/sql-reference/sql/execute-dbt-project`が使用するdbtプロジェクトオブジェクトのデフォルトバージョンを指定します。詳細については、 :ref:`label-dbt_key_concepts_dbt_project_versioning をご参照ください。

DEFAULT_ARGS = 'string_literal'

:doc:`/sql-reference/sql/execute-dbt-project`がコマンドを指定しない場合、デフォルトを指定する文字列 `dbtコマンド`_ および コマンドラインオプション を使用します。

重要

EXECUTEDBTPROJECT コマンドで明示的に指定する引数は、DBTPROJECT 定義で指定されたあらゆるすべてのDEFAULT_ARGSを上書きします。

COMMENT = 'string_literal'

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

UNSET ...

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

  • DEFAULT_VERSION

  • DEFAULT_ARGS

  • 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 権限が必要です。

使用上の注意

  • メタデータについて:

    注意

    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

次の例では、prod ターゲットで実行するdbtプロジェクトオブジェクトのデフォルト引数を設定します。これにより、プロジェクト定義で以前に設定されたデフォルト引数が上書きされます。

ALTER DBT PROJECT sales_db.dbt_projects_schema.sales_model
  SET DEFAULT_ARGS = 'run --target prod';
Copy