ALTER AGGREGATION POLICY

集計ポリシー の既存のルールまたはコメントを置き換えます。また、集計ポリシーの名前を変更することもできます。

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

集計ポリシー DDL 参照

構文

ALTER AGGREGATION POLICY [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER AGGREGATION POLICY [ IF EXISTS ] <name> SET BODY -> <expression>

ALTER AGGREGATION POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER AGGREGATION POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER AGGREGATION POLICY [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'

ALTER AGGREGATION POLICY [ IF EXISTS ] <name> UNSET COMMENT
Copy

パラメーター

name

変更する集計ポリシーの識別子を指定します。

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

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

RENAME TO new_name

集計ポリシーの新しい識別子を指定します。スキーマに対して一意である必要があります。識別子が別の集計ポリシーにすでに配置されている場合、新しい識別子は使用できません。

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

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

注釈

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

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

SET ...

集計ポリシーに設定する1つ(または複数)のプロパティを指定します。

BODY -> expression

集計ポリシーの制限を決定する SQL 式。

集計ポリシーの制約を定義するには、 SQL 式を使用して以下の内部関数を1つ以上呼び出します。

NO_AGGREGATION_CONSTRAINT

ポリシー本体がこの関数から値を返す場合、クエリは集計制約付きテーブルまたはビューから制限なしでデータを返すことができます。たとえば、管理者が集計制約付きテーブルまたはビューから集計されていない結果を取得する必要がある場合、ポリシーの本体でこの関数を呼び出すことができます。

引数なしで NO_AGGREGATION_CONSTRAINT を呼び出します。

AGGREGATION_CONSTRAINT

ポリシー本体がこの関数から値を返す場合、結果を返すにはクエリでデータを集計する必要があります。MIN_GROUP_SIZE 引数を使用して、各集計グループに含める必要がある記録の数を指定します。

AGGREGATION_CONSTRAINT 関数の構文は次のとおりです。

AGGREGATION_CONSTRAINT ( MIN_GROUP_SIZE => <integer_expression> )
Copy

条件:

MIN_GROUP_SIZE => integer_expression

集計制約のあるテーブルまたは表示に対するクエリによって返されるグループに含める必要のある行 または エンティティ の数を指定します。

関数への引数として 10 を渡すことには違いがあります。どちらも結果を集計する必要があります。

  • 1 を渡すには、各集計グループに集計制約付きテーブルからの記録が少なくとも1つ含まれていることも必要です。したがって外部結合では、集計制約付きテーブルの少なくとも1つの記録が、保護されていないテーブルの記録と一致する必要があります。

  • 0 を渡すと、クエリは別のテーブルの記録のみで構成されるグループを返すことができます。したがって、集計制約付きテーブルと保護されていないテーブル間の外部結合では、グループは集計制約付きテーブルのどの記録とも一致しない保護されていないテーブルの記録で構成される可能性があります。

ポリシーの本文では、ユーザー定義の関数、テーブル、ビューを参照することはできません。

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

タグ の名前とタグ文字列の値を指定します。

タグ値は常に文字列であり、タグ値の最大文字数は256です。

ステートメントでのタグの指定に関する情報については、 オブジェクトのタグクォータ をご参照ください。

COMMENT = 'string_literal'

集計ポリシーのコメントを追加するか、既存のコメントを上書きします。

デフォルト: 値なし

UNSET ...

集計ポリシーに対して、デフォルトにリセットして設定を解除する1つまたは複数のプロパティおよび/またはパラメーターを指定します。

  • TAG tag_name [ , tag_name ... ]

  • COMMENT

プロパティ/パラメーターをリセットするときは、名前のみを指定します。プロパティの値を指定すると、エラーが返されます。

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

注意

OWNERSHIP

集計ポリシー

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*も*付与されている必要はありません。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

集計ポリシー DDL と権限の詳細については、 権限とコマンド をご参照ください。

使用上の注意

  • 既存の集計ポリシーを更新するためにポリシーの現在の本文を確認する必要がある場合は、 DESCRIBE AGGREGATION POLICY コマンドを実行します。また、 GET_DDL 関数を使用して、集計ポリシーの本文を含む完全な定義を取得することもできます。

  • 集計ポリシーを マネージドアクセススキーマ に(ALTER AGGREGATION POLICY ... RENAME TO 構文を使用して)移動することは、集計ポリシーの所有者(つまり、集計ポリシーの OWNERSHIP 権限を持つロール)がターゲットスキーマも所有している場合を 除き、禁止されています。

  • メタデータについて:

    注意

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

集計ポリシーの SQL 式を変更し、すべての状況で2行の最小グループサイズを要求します。

ALTER AGGREGATION POLICY my_policy SET BODY -> AGGREGATION_CONSTRAINT(MIN_GROUP_SIZE=>2);
Copy

集計ポリシーの名前を変更します。

ALTER AGGREGATION POLICY my_policy RENAME TO agg_policy_table1;
Copy