ALTER DYNAMIC TABLE¶
동적 테이블 의 속성을 수정합니다.
이 항목의 내용:
구문¶
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> { SUSPEND | RESUME }
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> SWAP WITH <target_dynamic_table_name>
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> REFRESH [ COPY SESSION ]
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> { clusteringAction }
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> { tableColumnCommentAction }
ALTER DYNAMIC TABLE <name> { SET | UNSET } COMMENT = '<string_literal>'
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> dataGovnPolicyTagAction
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> searchOptimizationAction
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> SET
[ TARGET_LAG = { '<num> { seconds | minutes | hours | days }' | DOWNSTREAM } ]
[ WAREHOUSE = <warehouse_name> ]
[ DATA_RETENTION_TIME_IN_DAYS = <integer> ]
[ MAX_DATA_EXTENSION_TIME_IN_DAYS = <integer> ]
[ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
[ LOG_LEVEL = '<log_level>' ]
[ CONTACT ( <purpose> = <contact_name> [ , <purpose> = <contact_name> ... ] ) ]
ALTER DYNAMIC TABLE [ IF EXISTS ] <name> UNSET
[ DATA_RETENTION_TIME_IN_DAYS ],
[ MAX_DATA_EXTENSION_TIME_IN_DAYS ],
[ DEFAULT_DDL_COLLATION ]
[ LOG_LEVEL ]
[ CONTACT <purpose> ]
여기서
clusteringAction ::= { CLUSTER BY ( <expr> [ , <expr> , ... ] ) | { SUSPEND | RESUME } RECLUSTER | DROP CLUSTERING KEY }자세한 내용은 클러스터링 키 및 클러스터링된 테이블 섹션을 참조하십시오.
tableCommentAction ::= { ALTER | MODIFY [ ( ] [ COLUMN ] <col1_name> COMMENT '<string>' , [ COLUMN ] <col1_name> UNSET COMMENT [ , ... ] [ ) ] }dataGovnPolicyTagAction ::= { ADD ROW ACCESS POLICY <policy_name> ON ( <col_name> [ , ... ] ) | DROP ROW ACCESS POLICY <policy_name> | DROP ROW ACCESS POLICY <policy_name> , ADD ROW ACCESS POLICY <policy_name> ON ( <col_name> [ , ... ] ) | DROP ALL ROW ACCESS POLICIES } | { SET AGGREGATION POLICY <policy_name> [ ENTITY KEY ( <col_name> [, ... ] ) ] [ FORCE ] | UNSET AGGREGATION POLICY } | { { ALTER | MODIFY } [ COLUMN ] <col1_name> SET MASKING POLICY <policy_name> [ USING ( <col1_name> , <cond_col_1> , ... ) ] [ FORCE ] | UNSET MASKING POLICY } | { ALTER | MODIFY } [ COLUMN ] <col1_name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ] , [ COLUMN ] <col2_name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ] | { { ALTER | MODIFY } [ COLUMN ] <col1_name> SET PROJECTION POLICY <policy_name> [ FORCE ] | UNSET PROJECTION POLICY } | { ALTER | MODIFY } [ COLUMN ] <col1_name> UNSET TAG <tag_name> [ , <tag_name> ... ] , [ COLUMN ] <col2_name> UNSET TAG <tag_name> [ , <tag_name> ... ] } | { SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ] | UNSET TAG <tag_name> [ , <tag_name> ... ] }searchOptimizationAction ::= { ADD SEARCH OPTIMIZATION [ ON <search_method_with_target> [ , <search_method_with_target> ... ] [ EQUALITY ] ] | DROP SEARCH OPTIMIZATION [ ON { <search_method_with_target> | <column_name> | <expression_id> } [ EQUALITY ] [ , ... ] ] | SUSPEND SEARCH OPTIMIZATION [ ON { <search_method_with_target> | <column_name> | <expression_id> } [ , ... ] ] | RESUME SEARCH OPTIMIZATION [ ON { <search_method_with_target> | <column_name> | <expression_id> } [ , ... ] ] }자세한 내용은 검색 최적화 작업(searchOptimizationAction) 섹션을 참조하십시오.
매개 변수¶
name
변경할 동적 테이블의 식별자입니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
SUSPEND | RESUME
동적 테이블에 대해 수행할 동작을 지정합니다.
SUSPEND
는 동적 테이블에서 새로 고침을 일시 중단합니다. 동적 테이블을 다른 동적 테이블에서 사용하는 경우에도 일시 중단됩니다.RESUME
은 동적 테이블에서 새로 고침을 재개합니다. 재개 작업은 수동으로 일시 중단되지 않은 모든 다운스트림 동적 테이블로 순차적으로 넘어가며 진행됩니다.
RENAME TO new_name
스키마의 다른 어떤 동적 테이블에서도 현재 사용하지 않는 새 식별자로 지정된 동적 테이블의 이름을 바꿉니다.
동적 테이블의 이름을 바꾸려면 동적 테이블의 스키마에 대한 CREATE DYNAMIC TABLE 권한이 필요합니다.
동적 테이블을 다른 데이터베이스 및/또는 스키마로 이동하면서 선택적으로 동적 테이블의 이름을 변경할 수도 있습니다. 그러려면 각각
db_name.schema_name.new_name
또는schema_name.new_name
형식으로 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된new_name
값을 지정하십시오.다음과 같은 제한 사항이 적용됩니다.
대상 데이터베이스 및/또는 스키마가 이미 있어야 합니다. 또한, 새 위치에 이름이 같은 오브젝트가 있으면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.
오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한이 있는 역할)가 대상 스키마도 소유하지 않는 한 오브젝트를 관리되는 액세스 스키마로 이동할 수 없습니다.
오브젝트(테이블, 열 등)의 이름이 바뀌면 그 오브젝트를 참조하는 다른 오브젝트도 새 이름으로 업데이트해야 합니다.
SWAP WITH target_dynamic_table_name
단일 트랜잭션에서 두 개의 동적 테이블을 바꿉니다. 이 작업을 수행하는 데 사용되는 역할에는 두 동적 테이블 모두에 대한 OWNERSHIP 권한이 있어야 합니다.
다음과 같은 제한 사항이 적용됩니다.
동적 테이블 간에는 다른 동적 테이블만 바꿀 수 있습니다.
REFRESH [ COPY SESSION ]
동적 테이블을 수동으로 새로 고쳐야 한다고 지정합니다.
사용자가 일시 중단한 동적 테이블과 자동으로 일시 중단된 동적 테이블은 모두 수동으로 새로 고칠 수 있습니다. 수동으로 새로 고친 동적 테이블은 DYNAMIC_TABLE_REFRESH_HISTORY 함수에서
refresh_trigger
에 대한 출력으로 MANUAL을 반환합니다.동적 테이블을 새로 고치면 동일한 데이터 타임스탬프를 기준으로 모든 업스트림 동적 테이블도 새로 고쳐집니다. 자세한 내용은 동적 테이블의 웨어하우스 또는 목표 지연 변경 섹션을 참조하십시오.
동적 테이블 새로 고침 상태에 대한 자세한 내용은 DYNAMIC_TABLE_REFRESH_HISTORY 섹션을 참조하십시오.
COPY SESSION
현재 사용자와 웨어하우스를 사용하여 현재 세션의 복사본에서 새로 고침 작업을 실행합니다.
이는 한 번의 수동 새로 고침에만 적용되며 동적 테이블의 자격 증명을 영구적으로 업데이트하지는 않습니다. GRANT OWNERSHIP 명령을 사용하여 예약된 새로 고침에 대한 소유권을 이전하십시오. 자세한 내용은 소유권 이전하기 섹션을 참조하십시오.
기본 역할은 동적 테이블을 소유하는 역할이며 보조 역할은 사용자의 DEFAULT_SECONDARY_ROLES 속성과 일치합니다.
SET ...
테이블에 대해 설정할 하나 이상의 속성/매개 변수를 지정합니다(공백, 쉼표 또는 새 줄로 구분).
TARGET_LAG = { num { seconds | minutes | hours | days } | DOWNSTREAM }
동적 테이블의 목표 지연을 지정합니다.
'num seconds | minutes | hours | days'
동적 테이블의 콘텐츠가 기본 테이블에 대한 업데이트보다 지연되어야 하는 최대 시간을 지정합니다.
예:
동적 테이블의 데이터가 5분 이상 지연되면 안 될 경우
5 minutes
를 지정하십시오.동적 테이블의 데이터가 5시간 이상 지연되면 안 될 경우
5 hours
를 지정하십시오.
최소값은 1분입니다. 동적 테이블 A가 다른 동적 테이블 B에 종속된 경우 A의 최소 지연은 B의 지연보다 크거나 같아야 합니다.
DOWNSTREAM
해당 동적 테이블 아래에 있는 동적 테이블이 새로 고쳐질 경우 동적 테이블을 새로 고치도록 지정합니다.
WAREHOUSE = warehouse_name
동적 테이블을 새로 고치기 위한 컴퓨팅 리소스를 제공하는 웨어하우스의 이름을 지정합니다.
동적 테이블의 소유자 역할에는 이 웨어하우스에 대한 USAGE 권한이 있어야 합니다.
DATA_RETENTION_TIME_IN_DAYS = integer
Time Travel용 동적 테이블의 보존 기간을 수정하는 오브젝트 수준 매개 변수입니다. 자세한 내용은 Time Travel 이해 및 사용하기 및 임시 및 일시적 테이블 관련 작업하기 섹션을 참조하십시오.
이 매개 변수에 대한 자세한 설명과 오브젝트 매개 변수에 대한 자세한 내용은 매개 변수 섹션을 참조하십시오.
값:
Standard Edition:
0
또는1
Enterprise Edition:
영구 동적 테이블의 경우
0
~90
일시적 동적 테이블의 경우
0
또는1
참고
0
의 값은 동적 테이블의 Time Travel을 효과적으로 비활성화합니다.MAX_DATA_EXTENSION_TIME_IN_DAYS = integer
Snowflake가 동적 테이블의 스트림이 부실해지는 것을 방지하기 위해 데이터 보존 기간을 연장할 수 있는 최대 일수를 지정하는 오브젝트 매개 변수입니다.
이 매개 변수에 대한 자세한 설명은 MAX_DATA_EXTENSION_TIME_IN_DAYS 섹션을 참조하십시오.
DEFAULT_DDL_COLLATION = 'collation_specification'
동적 테이블에 추가된 모든 새 열에 대한 기본 데이터 정렬 사양 을 지정합니다.
이 매개 변수를 설정해도 기존 열의 데이터 정렬 사양은 변경되지 않습니다.
자세한 내용은 DEFAULT_DDL_COLLATION 섹션을 참조하십시오.
LOG_LEVEL = 'log_level'
활성 이벤트 테이블에서 수집되어 가용성이 제공되는 이 동적 테이블 이벤트 의 심각도 수준을 지정합니다. 지정된 수준(및 더 심각한 수준)의 이벤트가 수집됩니다.
수준에 대한 자세한 내용은 LOG_LEVEL 섹션을 참조하십시오. 로그 수준 설정에 대한 자세한 내용은 로깅, 메트릭 및 추적을 위한 수준 설정하기 섹션을 참조하십시오.
CONTACT ( purpose = contact [ , purpose = contact ... ] )
기존 오브젝트를 하나 이상의 연락처 와 연결합니다.
UNSET ...
동적 테이블에 대해 설정 해제할 속성/매개 변수를 하나 이상 지정하여 다시 기본값으로 재설정합니다.
DATA_RETENTION_TIME_IN_DAYS
MAX_DATA_EXTENSION_TIME_IN_DAYS
DEFAULT_DDL_COLLATION
LOG_LEVEL
CONTACT purposes
클러스터링 작업(clusteringAction
)¶
CLUSTER BY ( expr [ , expr , ... ] )
하나 이상의 테이블 열 또는 열 식을 동적 테이블의 클러스터링 키로 지정(또는 수정)합니다. 자동 클러스터링으로 클러스터링을 유지 관리하는 열/식입니다. 동적 테이블에 대한 클러스터링 키를 지정하기 전에 마이크로 파티션을 이해해야 합니다. 자세한 내용은 Snowflake 테이블 구조 이해하기 섹션을 참조하십시오.
동적 테이블에 클러스터링 키를 사용할 때 다음 사항에 유의하십시오.
열 정의가 필요하며 문에 명시적으로 이를 지정해야 합니다.
클러스터링 키는 모든 테이블에 대해 의도되거나 권장되지 않으며, 일반적으로 매우 큰(예: 멀티 테라바이트 크기의) 테이블에 이점이 있습니다.
SUSPEND | RESUME RECLUSTER
동적 테이블에 대해 자동 클러스터링 을 활성화하거나 비활성화합니다.
DROP CLUSTERING KEY
동적 테이블에 대한 클러스터링 키를 삭제합니다.
클러스터링 키와 재클러스터링에 대한 자세한 내용은 Snowflake 테이블 구조 이해하기 를 참조하십시오.
테이블 설명 작업(tableCommentAction
)¶
ALTER | MODIFY [ ( ]
` .[ COLUMN ] <col1_name> COMMENT '<string>'
., [ COLUMN ] <col1_name> UNSET COMMENT
.[ , ... ]
.[ ) ]
동적 테이블의 열에 대한 설명을 변경하거나 기존 설명을 덮어씁니다.
SET | UNSET COMMENT = '<string_literal>'
동적 테이블에 대한 설명을 추가하거나 기존 설명을 덮어씁니다.
데이터 거버넌스 정책 및 태그 작업(dataGovnPolicyTagAction
)¶
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
태그 이름과 태그 문자열 값을 지정합니다.
태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.
문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트에 대한 태그 할당량 섹션을 참조하십시오.
policy_name
정책의 식별자로, 스키마에 고유한 식별자여야 합니다.
ADD ROW ACCESS POLICY policy_name ON (col_name [ , ... ])
동적 테이블에 행 액세스 정책을 추가합니다.
하나 이상의 열 이름을 지정해야 합니다. 각 열 이름을 구분하는 쉼표로 추가 열을 지정할 수 있습니다.
DROP ROW ACCESS POLICY policy_name
동적 테이블에서 행 액세스 정책을 삭제합니다.
DROP ROW ACCESS POLICY policy_name, ADD ROW ACCESS POLICY policy_name ON ( col_name [ , ... ] )
동적 테이블에 설정된 행 액세스 정책을 삭제하고 단일 SQL 문으로 동일한 동적 테이블에 행 액세스 정책을 추가합니다.
DROP ALL ROW ACCESS POLICIES
동적 테이블에서 모든 행 액세스 정책 연결을 삭제합니다.
{ ALTER | MODIFY } [ COLUMN ] ...
USING ( col_name , cond_col_1 ... )
조건부 마스킹 정책에 전달할 인자를 지정합니다.
목록의 첫 번째 열은 정책 조건에 따라 마스킹하거나 토큰화할 데이터를 지정하고 마스킹 정책이 적용되는 열과 일치해야 합니다.
추가 열은 첫 번째 열에서 선택할 때 쿼리 결과의 각 행에서 마스킹 또는 토큰화를 위해 평가할 데이터를 지정합니다.
USING 절을 생략하면 Snowflake는 조건부 마스킹 정책을 일반 마스킹 정책 으로 취급합니다.
SET AGGREGATION POLICY {policy_name}
[ ENTITY KEY ({col_name} [ , ... ]) ] [ FORCE ]
집계 정책 을 동적 테이블에 할당합니다.
선택 사항인 ENTITY KEY 매개 변수를 사용하여 동적 테이블 내에서 엔터티를 고유하게 식별하는 열을 정의할 수 있습니다. 자세한 내용은 집계 정책을 사용하여 엔터티 수준 개인정보 보호 구현하기 섹션을 참조하십시오.
기존 집계 정책을 새 집계 정책으로 원자적으로 바꾸려면 선택적 FORCE 매개 변수를 사용하십시오.
UNSET AGGREGATION POLICY
동적 테이블에서 집계 정책을 분리합니다.
FORCE
열에 현재 설정된 마스킹 또는 프로젝션 정책을 단일 문에서 다른 정책으로 바꿉니다.
마스킹 정책과 함께
FORCE
키워드를 사용하려면 열에 현재 설정된 마스킹 정책의 데이터 타입(즉, STRING)과 일치하도록 ALTER DYNAMICTABLE 문(즉, STRING)에 있는 정책의 데이터 타입 이 필요합니다.마스킹 정책이 열에 현재 설정되어 있지 않으면 이 키워드를 지정해도 아무 효과가 없습니다.
자세한 내용은 열의 마스킹 정책 바꾸기 또는 프로젝션 정책 바꾸기 섹션을 참조하십시오.
검색 최적화 작업(searchOptimizationAction
)¶
ADD SEARCH OPTIMIZATION
전체 동적 테이블에 대해, 또는 특정 열에 대해 선택적인
ON
절을 지정하는 경우 검색 최적화 를 추가합니다.특히 테이블의 데이터가 자주 변경되는 경우 검색 최적화를 유지 관리하는 비용이 많이 들 수 있습니다. 자세한 내용은 검색 최적화 비용 추정 및 관리 섹션을 참조하십시오.
ON search_method_with_target [, search_method_with_target ... ]
(전체 동적 테이블이 아니라) 특정 열 또는 VARIANT 필드에 대한 검색 최적화를 구성하도록 지정합니다.
search_method_with_target
의 경우 다음 구문을 가진 식을 사용합니다.<search_method>(<target> [, ...])
여기서
search_method
는 특정 유형의 조건자에 대한 쿼리를 최적화하는 다음 방법 중 하나를 지정합니다.GEO
: GEOGRAPHY 유형을 사용하는 조건자.SUBSTRING
: 하위 문자열 및 정규식과 일치하는 조건자(예: [ NOT ] LIKE, [ NOT ] ILIKE, [ NOT ] RLIKE, REGEXP_LIKE 등)EQUALITY
: 같음 조건자와 IN 조건자.
target
은 열, VARIANT 필드 또는 별표(*)를 지정합니다.search_method
의 값에 따라 다음 유형 중 하나의 열 또는 VARIANT 필드를 지정할 수 있습니다.GEO
: GEOGRAPHY 데이터 타입의 열입니다.SUBSTRING
: VARIANTs 의 필드 경로를 포함한 문자열 또는 VARIANT 데이터 타입의 열입니다.EQUALITY
항목에서 설명한 대로 필드 경로를 지정합니다. 중첩된 필드에 대한 검색도 같은 방식으로 개선되었습니다.EQUALITY
: VARIANT 열의 필드에 대한 경로를 포함한 숫자, 문자열, 이진 및 VARIANT 데이터 타입의 열입니다.VARIANT 필드를 지정하려면 점 또는 대괄호 표기법 을 사용하십시오. 예:
my_column:my_field_name.my_nested_field_name
my_column['my_field_name']['my_nested_field_name']
콜론으로 구분된 필드 경로를 사용할 수도 있습니다. 예:
my_column:my_field_name:my_nested_field_name
VARIANT 필드를 지정하면 해당 필드 아래의 모든 중첩 필드에 구성이 적용됩니다.
예를 들어
ON EQUALITY(src:a.b)
를 지정할 경우 다음과 같습니다.이 구성으로 모든 중첩 필드(예:
src:a.b.c
,src:a.b.c.d
등)에서 쿼리on src:a.b
를 개선할 수 있습니다.이 구성은
src:a.b
접두사(예:src:a
,src:z
등)를 사용하는 쿼리에만 영향을 미칩니다.
테이블에서 적용 가능한 모든 열을 대상으로 지정하려면 별표(
*
)를 사용하십시오.주어진 검색 방법에 대해 별표와 특정 열 이름을 모두 지정할 수는 없습니다. 하지만 다양한 검색 방법에서 별표를 지정할 수 있습니다.
예를 들어 다음 식을 지정할 수 있습니다.
ON SUBSTRING(*) ON EQUALITY(*), SUBSTRING(*), GEO(*)
다음 식은 지정할 수 없습니다.
ON EQUALITY(*, c1) ON EQUALITY(c1, *) ON EQUALITY(v1:path, *) ON EQUALITY(c1), EQUALITY(*)
한 대상에 둘 이상의 검색 방법을 지정하려면 쉼표를 사용하여 각 후속 방법과 대상을 구분하십시오.
ALTER DYNAMIC TABLE product ADD SEARCH OPTIMIZATION ON EQUALITY(c1), EQUALITY(c2, c3);
같은 테이블에서 ALTER DYNAMIC TABLE … ADD SEARCH OPTIMIZATION ON … 명령을 여러 번 실행하는 경우 각 후속 명령이 테이블의 기존 구성에 추가됩니다. 예를 들어 다음 명령을 실행한다고 가정하겠습니다.
ALTER DYNAMIC TABLE product ADD SEARCH OPTIMIZATION ON EQUALITY(c1, c2); ALTER DYNAMIC TABLE product ADD SEARCH OPTIMIZATION ON EQUALITY(c3, c4);
그러면
c1
,c2
,c3
,c4
열에 대한 같음 조건자가 테이블 구성에 추가됩니다. 이는 다음 명령을 실행하는 것과 같습니다.ALTER DYNAMIC TABLE product ADD SEARCH OPTIMIZATION ON EQUALITY(c1, c2, c3, c4);
예는 특정 열의 검색 최적화 활성화하기 을 참조하십시오.
DROP SEARCH OPTIMIZATION
전체 동적 테이블에 대해, 또는 특정 열에서 선택적인
ON
절을 지정하는 경우 검색 최적화 를 제거합니다.다음과 같은 제한 사항이 적용됩니다.
동적 테이블에 검색 최적화 속성이 있는 경우 동적 테이블을 삭제했다가 삭제를 취소하면 검색 최적화 속성이 유지됩니다.
동적 테이블에서 검색 최적화 속성을 제거한 다음 다시 추가하면 처음 추가할 때와 똑같은 비용이 발생합니다.
ON search_method_with_target | column_name | expression_id [, ... ]
(전체 동적 테이블에 대해 검색 최적화를 삭제하는 것이 아니라) 특정 열 또는 VARIANT 필드에 대한 검색 최적화 구성을 삭제하도록 지정합니다.
삭제할 열 구성을 식별하려면 다음 중 하나를 지정하십시오.
search_method_with_target
의 경우 열 또는 VARIANT 필드가 될 수 있는 하나 이상의 특정 대상에 대한 쿼리를 최적화하는 방법을 지정합니다. 앞서 설명한 구문 을 사용합니다.column_name
의 경우 검색 최적화를 위해 구성된 열의 이름을 지정합니다. 열 이름을 지정하면 열에서 VARIANT 필드를 사용하는 식을 포함하여 해당 열에 대한 모든 식이 삭제됩니다.expression_id
의 경우 DESCRIBE SEARCH OPTIMIZATION 명령의 출력에 나열된 식의 ID를 지정합니다.
항목 사이에 쉼표를 사용하여 대상, 열 이름, 식 ID로 검색 방법의 조합을 지정할 수 있습니다.
예는 특정 열의 검색 최적화 삭제하기 을 참조하십시오.
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
OWNERSHIP 또는 OPERATE |
변경하려는 동적 테이블입니다. |
일부 작업은 OWNERSHIP 권한으로만 지원됩니다. 자세한 내용은 동적 테이블 변경 권한 섹션을 참조하십시오. |
스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
동적 테이블을 변경하려면 해당 동적 테이블에 대한 OPERATE 권한이 있는 역할을 사용해야 합니다. 일반 정보는 동적 테이블의 메타데이터 보기 권한 섹션을 참조하십시오.
You cannot make changes to the masking policy after you’ve created the dynamic table.
기존 동적 테이블을 업데이트하려는데 현재 정의를 확인해야 하는 경우 GET_DDL 함수를 호출하십시오.
ALTER TABLE 명령을 실행하면 동적 테이블에서 데이터 메트릭 함수를 사용할 수 있습니다. 자세한 내용은 데이터 메트릭 함수를 사용하여 데이터 품질 검사 수행 섹션을 참조하십시오.
IDENTIFIER() 를 사용하여 변경할 동적 테이블의 이름을 지정할 수 없습니다. 예를 들어 다음 문은 지원되지 않습니다.
ALTER DYNAMIC TABLE IDENTIFIER(product) SUSPEND;
초기화 또는 전체 새로 고침 후에는 동적 테이블의 검색 인덱스가 다시 작성됩니다. 이 프로세스에는 기존 인덱스를 제거하고 처음부터 다시 구축하는 작업이 포함되므로 비용이 더 많이 발생할 수 있습니다. 자세한 내용은 검색 최적화 비용 추정 및 관리 섹션을 참조하십시오.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
Change the target lag time of a dynamic table named product
to 1 hour:
ALTER DYNAMIC TABLE product SET
TARGET_LAG = '1 hour';
Specify downstream target lag for a dynamic table for a dynamic table named product
:
ALTER DYNAMIC TABLE product SET TARGET_LAG = DOWNSTREAM;
Suspend the product
dynamic table:
ALTER DYNAMIC TABLE product SUSPEND;
Resume the product
dynamic table:
ALTER DYNAMIC TABLE product RESUME;
Rename the product
dynamic table:
ALTER DYNAMIC TABLE product RENAME TO updated_product;
Swap the product
dynamic table with new-product
:
ALTER DYNAMIC TABLE product SWAP WITH new_product;
Change the clustering key for a table:
ALTER DYNAMIC TABLE product CLUSTER BY (date);
Remove clustering from a table:
ALTER DYNAMIC TABLE product DROP CLUSTERING KEY;
Perform a manual refresh of product
using the user, secondary roles, and warehouse settings
from the current session. This ensures that the refresh operation runs with the exact context
of the user session.
ALTER DYNAMIC TABLE product REFRESH COPY SESSION