CREATE AGGREGATION POLICY

현재/지정된 스키마에서 새 집계 정책 을 생성하거나 기존 집계 정책을 대체합니다.

집계 정책을 생성한 후 ALTER TABLE 명령을 사용하여 테이블에 집계 정책을 할당하거나 ALTER VIEW 명령을 사용하여 뷰를 추가합니다.

참고 항목:

집계 정책 DDL 참조

구문

CREATE [ OR REPLACE ] AGGREGATION POLICY [ IF NOT EXISTS ] <name>
  AS () RETURNS AGGREGATION_CONSTRAINT -> <body>
  [ COMMENT = '<string_literal>' ]
Copy

매개 변수

name

집계 정책의 식별자로, 스키마에 고유한 식별자여야 합니다.

식별자 값은 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

body

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

집계 정책의 제약 조건을 정의하려면 SQL 식을 사용하여 다음 내부 함수 중 하나 이상을 호출하십시오.

NO_AGGREGATION_CONSTRAINT

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

인자 없이 NO_AGGREGATION_CONSTRAINT를 호출합니다.

AGGREGATION_CONSTRAINT

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

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

AGGREGATION_CONSTRAINT ( MIN_GROUP_SIZE => <integer_expression> )
Copy

여기서 integer_expression정책의 최소 그룹 크기 로 확인됩니다.

함수에 대한 인자로 10 을 전달하는 것은 차이가 있습니다. 둘 다 결과를 집계해야 합니다.

  • 또한 1 을 전달하려면 각 집계 그룹에 집계 제한 테이블의 레코드가 하나 이상 포함되어 있어야 합니다. 따라서 외부 조인의 경우 집계 제한 테이블의 레코드가 하나 이상 보호되지 않는 테이블의 레코드와 일치해야 합니다.

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

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

COMMENT = 'string_literal'

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

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE AGGREGATION POLICY

스키마

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

집계 정책 DDL 및 권한에 대한 추가적인 세부 사항은 권한과 명령 섹션을 참조하십시오.

사용법 노트

  • 기존 집계 정책을 업데이트하고 정책의 현재 본문을 확인해야 할 경우 DESCRIBE AGGREGATION POLICY 명령 또는 GET_DDL 함수를 실행하십시오.

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

5개 이상의 행 그룹을 반환하는 쿼리가 필요한 집계 정책을 만듭니다.

CREATE AGGREGATION POLICY my_policy AS ()
  RETURNS AGGREGATION_CONSTRAINT ->
  AGGREGATION_CONSTRAINT(MIN_GROUP_SIZE => 5);
Copy

admin 역할을 가진 사용자가 집계되지 않은 결과를 반환하도록 허용하는 동시에 다른 모든 쿼리에서는 5개 이상의 행 그룹을 반환하도록 요구하는 집계 정책을 만듭니다.

CREATE AGGREGATION POLICY my_policy AS ()
  RETURNS AGGREGATION_CONSTRAINT ->
    CASE
      WHEN CURRENT_ROLE() = 'ADMIN'
        THEN NO_AGGREGATION_CONSTRAINT()
      ELSE AGGREGATION_CONSTRAINT(MIN_GROUP_SIZE => 5)
    END;
Copy