ALTER AGGREGATION POLICY¶
集計ポリシー の既存のルールまたはコメントを置き換えます。また、集計ポリシーの名前を変更することもできます。
- こちらもご参照ください。
構文¶
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
パラメーター¶
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> )
ここで、
integer_expression
は ポリシーの最小グループサイズ に解決されます。関数への引数として
1
と0
を渡すことには違いがあります。どちらも結果を集計する必要があります。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
プロパティ/パラメーターをリセットするときは、名前のみを指定します。プロパティの値を指定すると、エラーが返されます。
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
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 権限も必要であることに注意してください。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して 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);
集計ポリシーの名前を変更します。
ALTER AGGREGATION POLICY my_policy RENAME TO agg_policy_table1;