ALTER DYNAMIC TABLE

동적 테이블 의 속성을 수정합니다.

참고 항목:

CREATE DYNAMIC TABLE, DESCRIBE DYNAMIC TABLE, DROP DYNAMIC TABLE, SHOW DYNAMIC TABLES

이 항목의 내용:

구문

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> ]
Copy

여기서

clusteringAction ::=
  {
    CLUSTER BY ( <expr> [ , <expr> , ... ] )
    | { SUSPEND | RESUME } RECLUSTER
    | DROP CLUSTERING KEY
  }
Copy

자세한 내용은 클러스터링 키 및 클러스터링된 테이블 섹션을 참조하십시오.

tableCommentAction ::=
  {
    ALTER | MODIFY [ ( ]
                           [ COLUMN ] <col1_name> COMMENT '<string>'
                         , [ COLUMN ] <col1_name> UNSET COMMENT
                       [ , ... ]
                   [ ) ]
  }
Copy
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> ... ]
  }
Copy
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> }
          [ , ... ]
     ]
  }
Copy

자세한 내용은 검색 최적화 작업(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> [, ...])
Copy

여기서

  • search_method 는 특정 유형의 조건자에 대한 쿼리를 최적화하는 다음 방법 중 하나를 지정합니다.

  • 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(*)
Copy

다음 식은 지정할 수 없습니다.

ON EQUALITY(*, c1)
ON EQUALITY(c1, *)
ON EQUALITY(v1:path, *)
ON EQUALITY(c1), EQUALITY(*)
Copy

한 대상에 둘 이상의 검색 방법을 지정하려면 쉼표를 사용하여 각 후속 방법과 대상을 구분하십시오.

ALTER DYNAMIC TABLE product ADD SEARCH OPTIMIZATION ON EQUALITY(c1), EQUALITY(c2, c3);
Copy

같은 테이블에서 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);
Copy

그러면 c1, c2, c3, c4 열에 대한 같음 조건자가 테이블 구성에 추가됩니다. 이는 다음 명령을 실행하는 것과 같습니다.

ALTER DYNAMIC TABLE product ADD SEARCH OPTIMIZATION ON EQUALITY(c1, c2, c3, c4);
Copy

예는 특정 열의 검색 최적화 활성화하기 을 참조하십시오.

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;
    
    Copy
  • 초기화 또는 전체 새로 고침 후에는 동적 테이블의 검색 인덱스가 다시 작성됩니다. 이 프로세스에는 기존 인덱스를 제거하고 처음부터 다시 구축하는 작업이 포함되므로 비용이 더 많이 발생할 수 있습니다. 자세한 내용은 검색 최적화 비용 추정 및 관리 섹션을 참조하십시오.

  • 메타데이터 관련:

    주의

    고객은 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';
Copy

Specify downstream target lag for a dynamic table for a dynamic table named product:

ALTER DYNAMIC TABLE product SET TARGET_LAG = DOWNSTREAM;
Copy

Suspend the product dynamic table:

ALTER DYNAMIC TABLE product SUSPEND;
Copy

Resume the product dynamic table:

ALTER DYNAMIC TABLE product RESUME;
Copy

Rename the product dynamic table:

ALTER DYNAMIC TABLE product RENAME TO updated_product;
Copy

Swap the product dynamic table with new-product:

ALTER DYNAMIC TABLE product SWAP WITH new_product;
Copy

Change the clustering key for a table:

ALTER DYNAMIC TABLE product CLUSTER BY (date);
Copy

Remove clustering from a table:

ALTER DYNAMIC TABLE product DROP CLUSTERING KEY;
Copy

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
Copy