사용자 정의 태그를 통한 자동 태그 전파

태그 전파는 소스 오브젝트에 적용되면 오브젝트 태그 가 대상 오브젝트에 자동으로 할당됩니다. 예를 들어, 테이블 및 해당 열과 같은 소스 오브젝트에 태그를 정의할 수 있으며, 이러한 태그는 소스 오브젝트에서 생성한 뷰 또는 다른 테이블과 같은 대상 오브젝트에 자동으로 전파됩니다.

자동 태그 전파의 장점은 다음과 같습니다.

  • 특히 소스 오브젝트나 열에 태그를 적용하여 검색을 용이하게 하고 데이터를 보호할 때 오브젝트 전반의 태그 관리를 간소화할 수 있습니다.

  • 태그와 관련된 모든 정책이 대상 오브젝트에 자동으로 적용되도록 합니다.

계정 수준 APPLY TAG 권한이 있는 태그 소유자만 자동 태그 전파를 구현할 수 있습니다.

전파 유형

오브젝트 종속성, 데이터 이동, 또는 둘 다 있는 경우 태그를 전파하도록 선택할 수 있습니다.

오브젝트 종속성에 대한 태그 전파

오브젝트 종속성에 대해 태그 전파를 구성하면 태그가 소스 오브젝트에서 이를 기반으로 하는 모든 대상 오브젝트로 전파됩니다. 예를 들어, t1 테이블에서 data_sensitivity 태그에 대한 전파를 설정한 다음 t1 을 기반으로 2개의 뷰를 만들면 data_sensitivity 태그가 두 뷰에 모두 전파됩니다.

소스 오브젝트에서 뷰, 보안 뷰, 구체화된 뷰 또는 동적 테이블을 생성하는 것은 오브젝트 종속성으로 간주됩니다.

오브젝트 종속성에 대한 지속적인 전파

오브젝트 종속성에 대해 태그가 구성된 경우 다음 중 하나라도 발생하면 Snowflake가 대상 오브젝트를 지속적으로 업데이트 합니다.

  • 태그가 소스 오브젝트 또는 열에 추가됩니다.

  • 태그의 값이 업데이트됩니다.

  • 태그가 소스 오브젝트 또는 열에서 제거됩니다. 이 경우 Snowflake는 대상 오브젝트 또는 열에서 태그를 제거합니다.

예를 들어, t1 테이블에서 v2 뷰로 CREATE VIEW 문을 실행한 후 data_sensitivity 태그가 전파되었다고 가정해 보겠습니다. t1 에서 data_sensitivity 의 값을 변경하면 v2 의 태그 값도 업데이트됩니다.

자동 태그 전파는 소스 오브젝트의 존재 여부에 따라 달라집니다. 태그가 있는 소스 오브젝트가 삭제되면 태그가 대상 오브젝트로 전파되지 않습니다. 뷰는 기본 테이블이나 다른 뷰와 같은 소스에 종속성이 있으므로 태그는 소스 오브젝트가 존재하는 경우에만 전파됩니다.

데이터 이동을 위한 태그 전파

데이터 이동을 위해 태그 전파가 구성된 경우, 다음 중 하나를 수행하여 소스 오브젝트에서 다른 오브젝트로 데이터를 이동하면 태그가 전파됩니다.

  • CREATE TABLE … AS SELECT (CTAS) 문을 실행하여 테이블을 생성합니다.

  • CREATEDYNAMICTABLE문을 실행합니다.

  • 데이터 조작 언어(DML) 명령 실행. 태그 전파는 다음 DML 명령에 대해 발생합니다.

    • INSERT

    • MERGE

    • UPDATE

    • COPY INTO

CREATE TABLE … CLONECREATE TABLE … LIKE 는 태그 전파를 위해 PROPAGATE 태그 속성에 의존하지 않습니다. 이러한 문을 실행하면 소스의 태그가 항상 대상 오브젝트에 할당됩니다.

참고

오브젝트 종속성에 대한 태그 전파와는 달리, 데이터 이동이 있을 때 대상 오브젝트에 적용되는 태그는 소스 오브젝트에서 태그가 변경되어도 지속적으로 업데이트되지 않습니다.

태그 전파 설정하기

자동 태그 전파를 사용하려면 CREATE TAG 또는 ALTER TAG 명령을 사용하여 PROPAGATE 속성을 설정합니다. 오브젝트 종속성, 데이터 이동 또는 둘 다에 대해 태그가 전파되도록 속성을 구성할 수 있습니다.

태그 전파 설정에 대한 지침은 자동으로 전파할 태그를 정의합니다 섹션을 참조하십시오.

태그 전파 충돌

태그가 서로 다른 소스 오브젝트에서 동일한 대상 오브젝트로 전파될 때 충돌이 발생할 수 있습니다. 태그가 각 소스 오브젝트에서 다른 값을 갖는 경우 해당 태그가 소스 오브젝트에서 대상 오브젝트로 전파될 때 충돌이 발생합니다.

참고

대상 오브젝트에 수동으로 적용된 태그가 있는 경우 기존 태그 값이 전파된 값보다 우선하므로 충돌이 발생하지 않습니다.

대상 오브젝트가 Snowflake 오브젝트 계층 구조에서 상위 오브젝트로부터 값을 상속하는 경우 전파된 값이 우선하며 충돌이 발생하지 않습니다.

태그의 ON_CONFLICT 속성은 충돌이 발생했을 때 어떤 일이 발생하는지를 결정합니다. 태그 전파 충돌을 처리하는 데는 세 가지 옵션이 있습니다.

  • 태그의 값을 문자열 CONFLICT 로 바꿉니다. 태그의 ON_CONFLICT 매개 변수를 설정하지 않은 경우 기본값입니다.

  • 태그의 값을 사용자 정의 문자열로 바꿉니다. ON_CONFLICT 매개 변수를 이 문자열로 설정합니다.

    예를 들어, 값에 충돌이 있을 때 태그의 값을 HIGHLY CONFIDENTIAL 로 설정하려면 다음 SQL 을 사용하여 태그를 생성합니다.

    CREATE TAG data_sensitivity
      PROPAGATE = ON_DEPENDENCY_AND_DATA_MOVEMENT
      ON_CONFLICT = 'HIGHLY CONFIDENTIAL';
    
    Copy
  • 태그의 ALLOWED_VALUES 매개 변수에 있는 값의 순서를 사용하여 사용할 값을 결정합니다. ON_CONFLICT = ALLOWED_VALUES_SEQUENCE 를 설정하여 이 전략을 구현합니다.

    예를 들어, 다음 SQL 문으로 태그를 생성했다고 가정해 보겠습니다.

    CREATE TAG data_sensitivity
      ALLOWED_VALUES 'confidential', 'internal', 'public'
      PROPAGATE = ON_DEPENDENCY
      ON_CONFLICT = ALLOWED_VALUES_SEQUENCE;
    
    Copy

    이 태그에서 internalpublic 값 사이에 충돌이 있는 경우 data_sensitivity 태그의 값은 허용되는 값 목록에서 public 앞에 오므로 internal 이 됩니다.

    ON_CONFLICT = ALLOWED_VALUES_SEQUENCE 를 사용하기로 선택한 경우 ALLOWED_VALUES 매개 변수를 변경하면 충돌이 해결되는 방식에 영향을 미칩니다. 예를 들어, 허용된 목록에서 값의 순서를 변경하면 향후 충돌로 인해 태그에 다른 값이 할당될 수 있습니다.

해결되지 않은 충돌 식별자 확인

태그 전파 충돌이 있을 때 태그 값이 사용자 정의 문자열 또는 기본값인 CONFLICT 문자열로 대체된 경우 TAG_REFERENCES 테이블 함수를 쿼리하여 충돌을 식별할 수 있습니다.

예를 들어, 태그 값을 문자열 CONFLICT 로 바꾸는 기본값을 수락하는 경우 다음 쿼리를 사용하여 충돌이 발생했는지 확인할 수 있습니다.

SELECT tag_name, tag_value, apply_method, level, domain
  FROM table(my_db.INFORMATION_SCHEMA.TAG_REFERENCES('my_table', 'table'))
  WHERE tag_name = '<tag_name>' AND tag_value = 'CONFLICT';
Copy

지원되는 오브젝트

소스에서 대상으로의 태그 전파는 다음 오브젝트 유형에 대해 지원됩니다.

  • 다음 유형의 테이블을 사용할 수 있습니다.

    • 테이블

    • 동적 테이블 - 동적 테이블을 생성하는 것은 태그 전파를 목적으로 하는 오브젝트 종속성 및 데이터 이동으로 간주됩니다.

    • 외부 테이블

    • Iceberg 테이블

    • 임시/일시적 테이블

  • 다음 유형의 뷰가 있습니다.

    • 보안 뷰

    • 구체화된 뷰

제한 사항 및 고려 사항

  • 시스템 태그는 전파되지 않습니다.

  • 상속된 태그 는 전파되지 않습니다.

  • 태그는 공유에서 로컬 오브젝트로 전파되지 않습니다.

  • 오브젝트의 태그 수는 표준 제한 을 초과할 수 없습니다.

  • 소스 테이블에 종속된 뷰가 10,000개를 초과하는 경우 태그 전파가 작동하지 않습니다.

  • 오브젝트 종속성에 대한 태그 전파를 사용하면 태그를 소스 테이블과 대상 뷰 모두에 적용할 수 있습니다. 태그가 마스킹 정책과 연관된 경우 정책의 중복 실행과 관련된 결과가 발생할 수 있습니다.