동적 테이블 복제하기¶
복제는 동일한 열 정의를 사용하여 새 동적 테이블을 생성하며, 데이터를 실제로 복사하지 않고 소스 동적 테이블의 모든 기존 데이터를 포함합니다.
동적 테이블을 새 동적 테이블 또는 일반 테이블로 복제할 수 있습니다.
동적 테이블을 새 동적 테이블로 복제하기¶
Cloned dynamic tables, whether cloned directly or as part of a cloned database or schema, are suspended by default.
In DYNAMIC_TABLE_GRAPH_HISTORY, this appears as CLONED_AUTO_SUSPENDED in the SCHEDULING_STATE column. Any downstream dynamic tables are also suspended, shown as UPSTREAM_CLONED_AUTO_SUSPENDED. For more information, see 자동 동적 테이블 서스펜션.
-- Clone a dynamic table to a new dynamic table
CREATE [ OR REPLACE ] [ TRANSIENT ] DYNAMIC TABLE <name>
CLONE <source_dynamic_table>
[ { AT | BEFORE } ( { TIMESTAMP => <timestamp> | OFFSET => <time_difference> | STATEMENT => <id> } ) ]
[
COPY GRANTS
TARGET_LAG = { '<num> { seconds | minutes | hours | days }' | DOWNSTREAM }
WAREHOUSE = <warehouse_name>
]
과거의 특정 시점에 존재했던 동적 테이블을 복제할 수도 있습니다.
CREATE DYNAMIC TABLE my_cloned_dynamic_table CLONE my_dynamic_table AT (TIMESTAMP => TO_TIMESTAMP_TZ('04/05/2013 01:02:03', 'mm/dd/yyyy hh24:mi:ss'));
자세한 내용은 Time Travel을 사용하여 복제하기(데이터베이스, 스키마, 테이블, 동적 테이블, 이벤트 테이블, 스트림만 해당) 섹션을 참조하십시오.
동적 테이블을 새 테이블로 복제하기¶
복제된 테이블은 소스 동적 테이블의 동일한 열 정의 및 데이터를 상속하지만 동적 테이블별 속성은 없습니다. 행 액세스 및 마스킹 정책, 태그, 클러스터링 키, 설명은 유지됩니다.
-- Clone a dynamic table to a new table
CREATE [ OR REPLACE ] TABLE [ IF NOT EXISTS ] <name>
CLONE <source_dynamic_table_name>
[ { AT | BEFORE } ( { TIMESTAMP => <timestamp> | OFFSET => <time_difference> | STATEMENT => <id> } ) ]
동적 테이블을 일반 테이블로 복제하는 작업은 :doc:`일반 테이블 복제하기</sql-reference/sql/create-clone>`와 동일한 고려 사항을 따르지만 다음과 같은 예외가 있습니다.
일반 테이블로 복제하려면 소스 동적 테이블을 :ref:`초기화<label-dynamic_tables_initialization>`해야 합니다.
동적 Apache Iceberg™ 테이블은 복제할 수 없습니다.
동적 테이블의 파이프라인 복제 모범 사례¶
파이프라인을 다시 초기화하지 않으려면 동일한 복제 명령으로 동적 테이블 파이프라인의 모든 요소를 복제합니다. 파이프라인의 모든 요소(예: 기본 테이블, 뷰, 동적 테이블)를 동일한 스키마 또는 데이터베이스에 통합하여 이를 수행할 수 있습니다.