집계 정책 변경

집계 정책 변경 (ALTER AGGREGATION POLICY)

이 기능은 Enterprise Edition(또는 그 이상)이 필요해요. 업그레이드에 대해 문의하려면 Snowflake Support에 연락해 주세요.

aggregation policy의 기존 규칙이나 주석을 대체해요. 또한 aggregation policy의 이름을 바꿀 수도 있어요.

참조:

출처: 문서

본문

Syntax

ALTER AGGREGATION POLICY [ IF EXISTS ]  RENAME TO 

ALTER AGGREGATION POLICY [ IF EXISTS ]  SET BODY -> 

ALTER AGGREGATION POLICY  SET TAG  = '' [ ,  = '' ... ]

ALTER AGGREGATION POLICY  UNSET TAG  [ ,  ... ]

ALTER AGGREGATION POLICY [ IF EXISTS ]  SET COMMENT = ''

ALTER AGGREGATION POLICY [ IF EXISTS ]  UNSET COMMENT

Parameters

name

변경할 집계 정책의 식별자를 지정합니다.

식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자는 대소문자를 구분합니다.

자세한 내용은 Identifier requirements를 참조하세요.

RENAME TO new_name

집계 정책의 새 식별자를 지정합니다. 스키마 내에서 고유해야 합니다. 다른 집계 정책에서 이미 사용 중인 식별자는 사용할 수 없습니다.

자세한 내용은 Identifier requirements를 참조하세요.

객체를 선택적으로 이름을 바꾸면서 다른 데이터베이스 및/또는 스키마로 이동할 수 있습니다. 이렇게 하려면 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된 new_name 값을 각각 db_name.schema_name.object_name 또는 schema_name.object_name 형식으로 지정하세요.

  • 대상 데이터베이스 및/또는 스키마는 이미 존재해야 합니다. 또한 새 위치에 같은 이름의 객체가 이미 존재하면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.
  • 객체를 관리 액세스 스키마로 이동하는 것은 객체 소유자(즉, 객체에 대한 OWNERSHIP 권한을 가진 역할)가 대상 스키마도 소유하지 않는 한 금지됩니다.

SET ...

집계 정책에 설정할 하나 이상의 속성을 지정합니다:

BODY -> expression

집계 정책의 제한 사항을 결정하는 SQL 표현식입니다.

집계 정책의 제약 조건을 정의하려면 SQL 표현식을 사용하여 다음 함수 중 하나 이상을 호출하세요:

NO_AGGREGATION_CONSTRAINT

정책 본문이 이 함수에서 값을 반환하면 쿼리는 제한 없이 집계 제한 테이블 또는 뷰에서 데이터를 반환할 수 있습니다. 예를 들어, 관리자가 집계 제한 테이블 또는 뷰에서 집계되지 않은 결과를 얻어야 할 때 정책 본문이 이 함수를 호출할 수 있습니다.

NO_AGGREGATION_CONSTRAINT를 인수 없이 호출하세요.

AGGREGATION_CONSTRAINT

정책 본문이 이 함수에서 값을 반환하면 쿼리는 결과를 반환하기 위해 데이터를 집계해야 합니다. MIN_GROUP_SIZE 인수를 사용하여 각 집계 그룹에 포함되어야 하는 레코드 수를 지정하세요.

AGGREGATION_CONSTRAINT 함수의 구문은 다음과 같습니다:

AGGREGATION_CONSTRAINT ( MIN_GROUP_SIZE =>  )

여기서:

MIN_GROUP_SIZE => integer_expression

집계 제한 테이블 또는 뷰에 대한 쿼리가 반환하는 그룹에 포함되어야 하는 행 또는 entities 수를 지정합니다.

함수에 인수로 1을 전달하는 것과 0을 전달하는 것 사이에는 차이가 있습니다. 둘 다 결과를 집계해야 합니다.

  • 1을 전달하면 각 집계 그룹에 집계 제한 테이블의 레코드가 하나 이상 포함되어야 합니다. 따라서 외부 조인의 경우 집계 제한 테이블의 레코드가 보호되지 않은 테이블의 레코드와 하나 이상 일치해야 합니다.
  • 0을 전달하면 쿼리가 전적으로 다른 테이블의 레코드로 구성된 그룹을 반환할 수 있습니다. 따라서 집계 제한 테이블과 보호되지 않은 테이블 간의 외부 조인에서 그룹이 집계 제한 테이블의 어떤 레코드와도 일치하지 않는 보호되지 않은 테이블의 레코드로 구성될 수 있습니다.

정책 본문은 사용자 정의 함수, 테이블 또는 뷰를 참조할 수 없습니다.

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

tag 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 를 참조하세요.

COMMENT = 'string_literal'

집계 정책에 대한 주석을 추가하거나 기존 주석을 덮어씁니다.

기본값: 값 없음

UNSET ...

집계 정책에 대해 하나 이상의 속성 및/또는 매개변수를 기본값으로 재설정하여 설정 해제합니다:

  • TAG tag_name [ , tag_name ... ]
  • COMMENT

속성/매개변수를 재설정할 때는 이름만 지정하세요. 속성에 값을 지정하면 오류가 반환됩니다.

Access control requirements

이 작업을 실행하는 데 사용되는 role은 최소한 다음 privileges을 보유해야 합니다:

권한 객체 참고
OWNERSHIP Aggregation policy %ac-ownership%

스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한이 하나 이상 필요하고 상위 스키마에 대한 권한도 하나 이상 필요합니다.

지정된 권한 집합을 가진 사용자 지정 역할을 만드는 방법은 를 참조하세요.

보안 객체에 대해 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반적인 정보는 Overview of Access Control를 참조하세요.

집계 정책 DDL 및 권한에 대한 추가 세부 정보는 를 참조하세요.

Usage notes

  • 기존 집계 정책을 업데이트하려고 하고 정책의 현재 본문을 확인해야 한다면 DESCRIBE AGGREGATION POLICY 명령을 실행하세요. GET_DDL 함수를 사용하여 집계 정책의 전체 정의(본문 포함)를 가져올 수도 있습니다.
  • 집계 정책을 managed access schema로 이동하는 것은(ALTER AGGREGATION POLICY ... RENAME TO 구문 사용) 집계 정책 소유자(즉, 집계 정책에 대한 OWNERSHIP 권한을 가진 역할)가 대상 스키마도 소유하지 않는 한 금지됩니다.
  • 메타데이터 관련:

고객은 Snowflake 서비스를 사용할 때 메타데이터에 개인 데이터(User 객체에 대한 데이터가 아닌 경우), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 해야 합니다. 자세한 내용은 Metadata fields in 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;

더 알아보기 (Learn more)