오브젝트 태그 소개¶
태그란 무엇입니까?¶
태그는 다른 Snowflake 오브젝트에 할당할 수 있는 스키마 수준 오브젝트입니다. 사용자는 태그를 Snowflake 오브젝트에 할당할 때 태그를 임의의 문자열 값과 연결합니다. Snowflake는 태그 및 해당 문자열 값을 키-값 페어로 저장합니다. 태그는 스키마에 고유하며 태그 값은 항상 문자열이어야 합니다.
다음은 오브젝트 태그의 일반적인 특징입니다.
오브젝트에는 동시에 여러 개의 태그가 있을 수 있습니다. 자세한 내용은 태그 할당량 섹션을 참조하십시오.
1개의 태그를 여러 오브젝트 유형에 동시에 할당할 수 있습니다(예: 웨어하우스와 테이블을 동시에 할당).
할당할 때 태그 문자열 값은 중복되거나 고유할 수 있습니다. 예를 들어, 여러 테이블을
cost_center태그에 할당할 수 있으며 태그의 문자열 값이 항상sales일 수 있습니다. 또는 각 테이블마다 문자열 값을 다르게 설정할 수 있습니다(예:engineering,marketing,finance).
태그를 정의하고 Snowflake 오브젝트에 태그를 할당하면, 태그를 쿼리하여 오브젝트의 사용량을 모니터링하고 감사 및 보고와 같은 데이터 거버넌스 작업을 용이하게 할 수 있습니다.
하이라이트¶
- 사용 편의성:
태그를 한 번 정의하면 여러 다른 오브젝트에 여러 번 적용할 수 있습니다.
- 태그 상속:
태그는 상속되기 때문에 보안 오브젝트 계층 구조에서 상위의 오브젝트에 태그를 적용하면 모든 하위 오브젝트에 태그가 적용됩니다. 예를 들어, 테이블에 태그를 설정하면 해당 테이블의 모든 열에 태그가 상속됩니다.
- 자동 전파:
소스 오브젝트에서 대상 오브젝트로 자동으로 전파되도록 태그를 구성합니다.
- 복제 시 일관적인 할당:
Snowflake는 기본 데이터베이스의 태그 및 태그 할당을 보조 데이터베이스로 복제합니다.
- 중앙 집중식 또는 분산형 관리:
태그는 내부 및 외부 규정 요구 사항을 쉽게 준수할 수 있도록 다양한 관리 방식을 지원합니다.
중앙 집중식 접근법에서는
tag_admin사용자 지정 역할을 생성해 태그를 생성하고 Snowflake 오브젝트에 적용할 수 있습니다.분산형 방식에서 개별 팀은 Snowflake 오브젝트에 태그를 적용하고
tag_admin사용자 지정 역할은 태그를 생성하여 일관적으로 태그 이름을 지정할 수 있습니다.
태그가 오브젝트에 연결되는 방법¶
태그는 다음과 같은 방법으로 오브젝트와 연결할 수 있습니다.
누군가 CREATE <object> 또는 ALTER <object> 명령을 사용하여 오브젝트에 태그를 수동으로 설정했습니다. 태그 설정하기 섹션을 참조하십시오.
이 오브젝트는 Snowflake 보안 가능한 오브젝트 계층 구조에서 상위의 오브젝트로부터 태그를 상속받았습니다. 예를 들어, 계정의 웨어하우스는 계정에 설정된 태그를 상속합니다. 태그 상속 섹션을 참조하십시오.
태그는 한 오브젝트에서 다른 오브젝트로 자동으로 전파되었습니다. 태그는 오브젝트가 다른 오브젝트에 종속성(예: 태그가 지정된 테이블을 기반으로 하는 뷰)이 있거나 데이터가 태그가 지정된 오브젝트에서 다른 오브젝트로 이동할 때(예: CTAS 문을 사용하여 테이블을 생성하는 경우) 전파될 수 있습니다. 사용자 정의 태그를 통한 자동 태그 전파 섹션을 참조하십시오.
민감한 데이터가 포함된 것으로 분류된 열에 태그가 자동으로 설정되었습니다. 자동 민감한 데이터 분류에서 태그 맵을 사용하여 이러한 태그를 설정하는 방법을 알아보려면 태그 매핑 정보 섹션을 참조하십시오.
누군가 CREATE TABLE … LIKE 또는 CREATE TABLE … CLONE 명령을 사용하여 태그가 있는 기존 테이블에서 테이블을 생성했습니다.
태그가 오브젝트와 어떻게 연관되었는지 확인합니다¶
다음 뷰와 함수에는 태그가 오브젝트와 어떻게 연결되었는지 보여주는 apply_method 열이 포함됩니다.
예를 들어, 태그가 오브젝트에 수동으로 설정되었는지 또는 전파되었는지 확인하려면 다음 명령을 실행하여 apply_method 열의 값을 확인할 수 있습니다.
SELECT tag_name, tag_value, apply_method, level, domain FROM TABLE(my_db.INFORMATION_SCHEMA.TAG_REFERENCES('my_table', 'TABLE'));
태그 할당량¶
테이블과 뷰를 포함하여 단일 오브젝트에 최대 50개의 태그를 설정할 수 있습니다.
태그 제한에 도달하여 태그를 삭제하려면 ALTER <오브젝트> UNSET TAG 문을 실행합니다.
열에 대한 별도의 할당량¶
단일 테이블의 열에 최대 50개의 서로 다른 태그를 설정할 수 있습니다. 이는 결합된 모든 열에 대한 제한입니다.
열 제한은 테이블에 설정된 태그 수에 대한 제한과는 별개입니다. 예를 들어, 테이블과 해당 열 모두에 태그가 있는 다음과 같은 테이블을 생성한다고 가정해 보겠습니다.
CREATE TABLE t1 (
COL1 INT WITH TAG (tag1='col1', tag2='col1'),
COL2 INT WITH TAG (tag1='col2'),
)
WITH TAG (tag3='t1');
Snowflake를 사용하면 다음을 수행할 수 있습니다.
테이블 ``t1``에 49개의 태그를 더 설정합니다.
``t1``의 열에 48개의 태그를 더 설정합니다. 제한은 다른 태그에 적용되므로 ``tag1``은 두 번 계산되지 않습니다.
CREATE TABLE 또는 ALTER TABLE 문을 실행하여 테이블의 열에 태그를 적용하는 경우, 고유한 태그-엔터티 연결의 최대 개수는 100개이며, 여기서 엔터티는 테이블 또는 열에 해당합니다. 예를 들어, 1,000개의 열이 있는 테이블이 있고 모든 열에 동일한 태그를 연결하려면 10개의 ALTER 문을 실행해야 합니다.
Enterprise Edition이 필요한 기능¶
태그 생성 및 설정은 모든 계정에서 사용할 수 있습니다. 그러나 Enterprise Edition 이상이 요구되는 고급 기능이 있습니다. 다음 기능을 사용하려면 계정이 Enterprise Edition 이상이어야 합니다.
지원되는 오브젝트¶
다음 테이블에는 Snowflake 보안 가능 오브젝트 계층 구조를 기반으로 하는 열을 포함하여, 태그에 지원되는 오브젝트가 나와 있습니다.
아래 테이블에서 달리 지정하지 않는 한 CREATE <오브젝트> 문 또는 ALTER <오브젝트> 문으로 오브젝트에 태그를 설정할 수 있습니다.
태그는 CREATE TABLE, CREATE VIEW, ALTER TABLE … MODIFY COLUMN 또는 ALTER VIEW 문을 사용하여 열에 태그를 설정할 수 있습니다.
오브젝트 계층 구조 |
지원되는 오브젝트 |
참고 |
|---|---|---|
조직 |
계정 |
|
계정 |
애플리케이션 |
|
애플리케이션 패키지 |
||
컴퓨팅 풀 |
||
데이터베이스 |
||
장애 조치 그룹 |
||
통합 |
모든 유형 이 지원됩니다. ALTER INTEGRATION 명령을 사용하여 통합에 태그를 설정합니다. |
|
네트워크 정책 |
ALTER NETWORK POLICY 명령을 사용하여 네트워크 정책에 태그를 설정합니다. |
|
복제 그룹 |
||
역할 |
||
공유 |
태그는 데이터 공유 공급자의 의해 공유에 설정됩니다. 이러한 태그는 데이터 공유 컨슈머에게 표시되지 않습니다. ALTER SHARE 명령을 사용하여 공유에 태그를 설정합니다. |
|
사용자 |
||
웨어하우스 |
||
데이터베이스 |
데이터베이스 역할 |
ALTER DATABASE ROLE 명령을 사용하여 데이터베이스 역할에 태그를 설정합니다. |
스키마 |
||
스키마 |
집계 정책 |
|
경고 |
||
BUDGET 인스턴스 |
ALTER BUDGET 명령을 사용하여 SNOWFLAKE.CORE.BUDGET 클래스의 인스턴스에 태그를 설정합니다. |
|
CLASSIFICATION 인스턴스 |
ALTER SNOWFLAKE.ML.CLASSIFICATION 명령을 사용하여 SNOWFLAKE.ML.CLASSIFICATION 클래스의 인스턴스에 태그를 설정합니다. |
|
동적 테이블 |
||
이벤트 테이블 |
||
외부 함수와 UDF |
ALTER FUNCTION 명령을 사용하여 외부 함수 또는 UDF에 태그를 설정합니다. |
|
외부 테이블 |
CREATE EXTERNAL TABLE 문을 사용하여 태그가 포함된 외부 테이블을 생성할 수 있습니다. 외부 테이블의 태그 할당을 관리하려면 ALTER TABLE 명령을 사용하십시오. |
|
Git 리포지토리 |
||
Apache Iceberg™ 테이블 |
||
이미지 리포지토리 |
||
조인 정책 |
||
구체화된 뷰 |
||
노트북 |
||
비밀번호 정책 |
||
파이프 |
ALTER PIPE 문으로 파이프에 태그를 설정합니다. |
|
정책 |
마스킹, 비밀번호, 행 액세스, 세션, 집계, 조인 또는 프로젝션 정책에 해당 ALTER <policy> 문와 함께 태그를 설정합니다. |
|
절차 |
ALTER PROCEDURE 문으로 저장 프로시저에 태그를 설정합니다. |
|
프로젝션 정책 |
||
세션 정책 |
||
스냅샷 |
:doc:`블록 저장소 볼륨 스냅샷</developer-guide/snowpark-container-services/block-storage-volume>`을 위한 것입니다. |
|
스냅샷 세트 |
:doc:`WORM 스냅샷</user-guide/snapshots>`을 위한 것입니다. 특정 데이터베이스, 스키마 또는 테이블에 대한 스냅샷 세트를 포함합니다. |
|
스테이지 |
ALTER STAGE 문으로 스테이지에 태그를 설정합니다. |
|
스트림 |
||
Streamlit |
||
테이블 |
||
작업 |
ALTER TASK 문으로 작업에 태그를 설정합니다. |
|
뷰 |
||
테이블 또는 뷰 |
열 |
이벤트 테이블 을 포함합니다. |
제한 사항 및 고려 사항¶
- 향후 권한 부여:
태그에 대한 향후 권한 부여 는 지원되지 않습니다.
해결 방법으로 APPLY TAG 권한을 사용자 지정 역할에 부여하여 해당 역할이 또 다른 오브젝트에 태그를 적용하도록 허용하십시오.
- Snowflake Native App:
버전이 지정된 스키마에 태그가 있는 경우 설정 스크립트를 생성할 때 주의하십시오. 자세한 내용은 버전 스키마 고려 사항 섹션을 참조하십시오.