스트림 관리하기

이 항목에서는 스트림 관리와 관련된 관리 작업에 대해 설명합니다.

이 항목의 내용:

뷰와 기본 테이블에서 변경 내용 추적 활성화하기

사용자가 뷰에서 변경 데이터를 쿼리하려면 뷰와 기본 테이블에서 변경 내용 추적을 활성화해야 합니다.

주어진 뷰 또는 기본 테이블에 대한 오브젝트 소유자(즉, OWNERSHIP 권한이 있는 역할)만 변경 내용 추적을 활성화할 수 있습니다.

다음 옵션을 사용해 변경 내용 추적을 활성화할 수 있습니다.

  1. 뷰 소유자 역할을 사용하여 뷰에서 스트림을 만듭니다. 이 동작으로 뷰에서 변경 내용 추적을 활성화합니다.

    같은 역할이 기본 테이블도 소유하는 경우 테이블에서도 변경 내용 추적이 활성화됩니다. 그렇지 않으면 테이블 소유자가 테이블에서 변경 내용 추적을 명시적으로 활성화해야 합니다. 이러한 단계에 대해서는 이 항목의 기본 테이블에서 변경 내용 추적을 명시적으로 활성화하기 를 참조하십시오.

  2. 뷰와 테이블에서 변경 내용 추적을 명시적으로 활성화합니다. 지침은 이 섹션의 나머지 지침을 참조하십시오.

뷰에서 변경 내용 추적을 명시적으로 활성화하기

(CREATE VIEW를 사용해) 뷰를 만들거나 (ALTER VIEW를 사용해) 나중에 뷰를 만들 때 CHANGE_TRACKING 매개 변수를 설정합니다.

변경 내용 추적은 뷰의 기본 테이블에서도 명시적으로 활성화해야 합니다. 지침은 이 항목의 기본 테이블에서 변경 내용 추적을 명시적으로 활성화하기 를 참조하십시오.

예를 들어 테이블에서 행 중 일부를 선택하는 현재 스키마에 보안 뷰를 만듭니다.

CREATE SECURE VIEW v CHANGE_TRACKING = TRUE AS SELECT col1, col2 FROM t;
Copy

예를 들어 변경 내용 추적을 활성화하도록 기존 뷰를 수정합니다.

ALTER VIEW v2 SET CHANGE_TRACKING = TRUE;
Copy

기본 테이블에서 변경 내용 추적을 명시적으로 활성화하기

중요

CHANGE_TRACKING을 지정하려고 뷰를 만들거나 변경할 때 변경 내용 추적을 활성화하도록 연결된 종속 데이터베이스 오브젝트가 자동으로 업데이트됩니다. 작업 중에는 기본 리소스가 잠기므로 DDL/DML 작업에 대기 시간이 발생할 수 있습니다. 자세한 내용은 리소스 잠금 섹션을 참조하십시오.

문을 실행하는 사용자가 충분한 권한(OWNERSHIP)을 가진 역할을 지정하지 않은 경우 문이 실패하고 기본 데이터베이스 오브젝트가 업데이트되지 않으며 잠금이 해제됩니다.

(CREATE TABLE를 사용해) 테이블을 만들거나 (ALTER TABLE를 사용해) 나중에 뷰를 만들 때 CHANGE_TRACKING 매개 변수를 설정합니다.

예를 들어 현재 스키마에 테이블을 만들려면 다음을 수행하십시오.

CREATE TABLE t (col1 STRING, col2 NUMBER) CHANGE_TRACKING = TRUE;
Copy

예를 들어 변경 내용 추적을 활성화하도록 기존 테이블을 수정하려면 다음을 수행하십시오.

ALTER TABLE t1 SET CHANGE_TRACKING = TRUE;
Copy

중요

CHANGE_TRACKING을 지정하기 위해 TABLE을 생성하거나 변경할 때 DML 작업에 대한 대기 시간을 유발할 수 있는 작업 기간 동안 테이블이 잠깁니다. 자세한 내용은 리소스 잠금 섹션을 참조하십시오.

스트림 부실 방지하기

스트림이 부실해지지 않도록 하려면 반드시 STALE_AFTER 타임스탬프 이전(즉, 원본 오브젝트의 연장된 데이터 보존 기간 내)에 변경 데이터를 정기적으로 사용하는 것이 좋습니다.

스트림의 데이터 보존 기간을 보려면 DESCRIBE STREAM 또는 SHOW STREAMS 명령을 실행하십시오. STALE_AFTER 열 타임스탬프는 스트림이 현재 부실 상태가 될 것으로 예측되는 때(또는 과거 시점의 타임스탬프인 경우에는 부실 상태가 된 때)를 나타냅니다. 이 타임스탬프는 DATA_RETENTION_TIME_IN_DAYS 또는 MAX_DATA_EXTENSION_TIME_IN_DAYS 매개 변수 설정 중 더 큰 값을 현재 타임스탬프에 더해 계산됩니다. 타임스탬프가 과거 시점인 경우 스트림이 이미 부실 상태일 수 있습니다. 또한 STALE 열은 실제로는 스트림이 아직 부실 상태가 아닐 수도 있지만 스트림이 부실해질 것으로 예상되는지 여부를 나타냅니다.

스트림의 변경 데이터를 사용하면 STALE_AFTER 타임스탬프가 앞으로 이동합니다.

자세한 내용은 데이터 보존 기간 및 부실 섹션을 참조하십시오.

Snowsight 에서 스트림 보기 및 관리하기

Snowsight 에서 스트림을 보고 관리하려면 다음을 수행하십시오.

  1. Snowsight 에 로그인합니다.

  2. Data » Databases 를 선택합니다.

  3. 특정 데이터베이스와 스키마의 경우 Streams 를 선택하고 관리하려는 스트림을 선택합니다.

Snowsight 에서 스트림을 볼 때 다음을 수행할 수 있습니다.

  • Details 섹션에서 스트림이 적용되는 테이블 이름, 스트림 유형, 스트림이 오래되었는지 여부를 검토합니다.

  • 스트림 생성에 사용된 SQL 문을 검토합니다.

  • 스트림에 대한 권한을 관리합니다. Snowsight로 오브젝트 권한 관리하기 섹션을 참조하십시오.