시간 이동을 위한 오브젝트 작성 및 변경
개요
NPSaaS에서 시간 이동 쿼리를 실행하려면 DATA_VERSION_RETENTION_TIME (보존 시간 간격) 을 0이 아닌 값으로 설정하여 시간 이동 테이블, 스키마 또는 데이터베이스 (시간 이동 오브젝트) 를 작성하십시오. DATA_VERSION_RETENTION_TIME 을 설정하려면 이러한 오브젝트 유형에 대해 CREATE 또는 ALTER 명령을 사용하거나 웹 콘솔을 사용하십시오. 1일에서 최대 99일사이를 선택하거나, 시간 오브젝트를 비시간 오브젝트로 변경하려면 0을 선택할 수 있습니다.
스키마 또는 데이터베이스의 모든 테이블에 대한 보존 시간 간격을 설정하기 전에 중요할 수 있는 임시 테이블의 스토리지 비용을 고려하십시오. 시간 여행 공간 사용 관리 를 참조하십시오.
또한 시스템의 기본 DATA_VERSION_RETENTION_TIME 을 설정 할 수 있습니다.
시간 테이블에는 일반적으로 현재 행 및 히스토리 행이 있습니다. 현재 행은 삭제 대상으로 표시되지 않습니다. 실행기록 행은 삭제 대상으로 표시되며 ( DELETE, UPDATE, MERGE 또는 TRUNCATE 문에 의해) 삭제 시간소인 이후의 지정된 보유 시간 간격까지의 시간 이동 쿼리에 표시됩니다.
DATA_VERSION_RETENTION_TIME 값이 0인 테이블은 비임시 테이블입니다. 현재 (삭제되지 않은) 행만 조회에 표시됩니다. 일부 실행기록 행은 증분 백업을 위해 보존될 수 있지만, 행은 시간 이동 쿼리에 액세스할 수 없습니다.
기존 시간 테이블의 DATA_VERSION_RETENTION_TIME 을 0으로 변경하면 테이블이 비시간 테이블이 됩니다. 더 이상 시간 이동 쿼리를 사용하여 실행기록 데이터에 대한 액세스를 지원하지 않습니다.
제한사항
테이블, 스키마 및 데이터베이스의 보존 시간 간격에 대한 변경사항은 기본 노드에서 복제본 노드로 복제되지 않습니다. 히스토리 (삭제된) 테이블 행도 아닙니다.
테이블, 스키마 및 데이터베이스의 보존 시간 간격은 nzbackup 명령으로 자동 백업되고 nzrestore 명령으로 복원됩니다. 테이블 행의 삽입 및 삭제 시간소인은 백업 및 복원되지 않습니다. 복원된 행은 대상 데이터베이스 또는 시스템에서 새로운 삽입 시간소인을 가져오고, 증분 복원으로 삭제된 행은 대상 데이터베이스 또는 시스템에서 새로운 삭제 시간소인을 가져옵니다. 대상에 있는
행의 히스토리 버전 수가 소스 데이터베이스의 히스토리 버전 수와 일치할 것으로 예상하거나 보장하지 않습니다. 예를 들어, 특정 행이 소스에서 백업 증분 사이에 여러 번 업데이트되거나 업데이트된 후 삭제될 수 있습니다. 이 조치를 수행하면 대상에서 해당 행이 단일 삭제됩니다.
추가 SPU 격납장치가 있는 NPSaaS 시스템을 확장하려고 시도하면 프로시저에서 히스토리 (삭제된) 행이 유실됩니다. 모든 현재 행은 새로운 삽입 시간소인과 함께 재분배됩니다.
다음 유형의 테이블은 시간 테이블이 될 수 없습니다.
- 임시 테이블
- 외부 테이블
- 컬럼을 추가 및/또는 삭제하여 변경된 버전화된 테이블
- 행 보안 테이블.
이 제한사항은 다음 명령에 영향을 줍니다.
-
테이블 행 보안 생성, 외부 테이블 생성, 임시 테이블 생성 데이터 버전 유지 시간을 0이 아닌 값으로 지정하면 명령이 실패합니다.
-
변경 테이블 DATA_VERSION_RETENTION_TIME 테이블이 임시, 행 보안, 버전이 있는 테이블 또는 외부 테이블이고 DATA_VERSION_RETENTION_TIME이 0이 아닌 값으로 지정된 경우 명령이 실패합니다.
-
테이블 변경 열 추가, 테이블 변경 열 삭제 테이블에 0이 아닌 DATA_VERSION_RETENTION_TIME이 지정되어 있으면 명령이 실패합니다.
신랑 TABLE VERSIONS 명령은 버전화된 테이블을 버전화되지 않은 테이블로 전환합니다. 이 경우, ALTER TABLE 명령을 사용하여 0이 아닌 DATA_VERSION_RETENTION_TIME 을 지정할 수 있습니다.
watsonx.data 에 대한 DATA_VERSION_RETENTION_TIME 관련 예외
DATA_VERSION_RETENTION_TIME 과 관련된 watsonx.data 에 대한 예외가 있습니다. 다음 표에서는 watsonx.data의 데이터베이스, 스키마 및 테이블에 대한 DATA_VERSION_RETENTION_TIME 특성의 동작을 다룹니다.
| 동작 | 예외 |
|---|---|
| watsonx.data 에 대한 DATA_VERSION_RETENTION_TIME 이 있는 CREATE DATABASE | 허용되지 않음 |
| watsonx.data 에 대한 DATA_VERSION_RETENTION_TIME 이 있는 ALTER DATABASE | 허용되지 않음 |
| watsonx.data 용 DATA_VERSION_RETENTION_TIME 이 있는 CREATE SCHEMA | 허용되지 않음 |
| watsonx.data 용 DATA_VERSION_RETENTION_TIME 이 있는 ALTER SCHEMA | NETEZZA_SCHEMA를 제외하고 허용되지 않음 |
| DATA_VERSION_RETENTION_TIME (시간) 테이블이 있는 CREATE TABLE | NETEZZA_SCHEMA에서만 허용됨 |
| DATA_VERSION_RETENTION_TIME (시간) 테이블이 있는 ALTER TABLE | NETEZZA_SCHEMA에서만 허용됨 |
SYSTEM DEFAULT DATA_VERSION_RETENTION_TIME 이 0이 아닌 경우 CREATE DATABASE는 SYSTEM DEFAULT에서 특성을 상속하지 않습니다. NETEZZA_SCHEMA를 포함하는 CREATE SCHEMA는 DB 특성을 상속하지 않습니다. watsonx.data에 대한 시간 여행 관련 자동 유지보수 태스크에는 영향이나 변경이 필요하지 않습니다.
명령행을 사용하여 시간 이동 오브젝트 작성
명령행을 사용하여 임시 테이블 작성
시간 테이블을 작성하려면 DATA_VERSION_RETENTION_TIME 을 0이 아닌 값으로 설정하십시오.
자세한 구문 및 특권은 CREATE TABLE 명령 을 참조하십시오.
CREATE TABLE <tablename> ( <col>[, <col>… ] ) DATA_VERSION_RETENTION_TIME <number-of-days>;
예:
CREATE TABLE PRODUCT (prodid int, proddesc char(100)) DATA_VERSION_RETENTION_TIME 30;
테이블에 행을 삽입할 때 행은 삽입 트랜잭션의 커미트 시간과 동일한 가상 삽입 시간소인을 수신합니다.
테이블에서 행을 삭제하면 행은 삭제 (또는 자르기) 트랜잭션의 커미트 시간과 동일한 가상 삭제 시간소인을 수신합니다.
명령행을 사용하여 임시 스키마 작성
시간 스키마를 작성하려면 DATA_VERSION_RETENTION_TIME 을 0이 아닌 값으로 설정하십시오.
자세한 구문 및 특권은 CREATE SCHEMA 명령을 참조하십시오.
CREATE SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days>;
예:
CREATE SCHEMA SCHEMA1 DATA_VERSION_RETENTION_TIME 30;
명령행을 사용하여 임시 데이터베이스 작성
시간 데이터베이스를 작성하려면 DATA_VERSION_RETENTION_TIME 을 0이 아닌 값으로 설정하십시오.
자세한 구문 및 특권은 CREATE DATABASE 명령 을 참조하십시오.
CREATE DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days>;
예:
CREATE DATABASE DB1 DATA_VERSION_RETENTION_TIME 30;
웹 콘솔을 사용하여 이동 시간 오브젝트 작성
웹 콘솔을 사용하여 임시 테이블 작성
보유 시간 간격 을 0이 아닌 값으로 설정해야 합니다.
점 문자 (".") 를 포함하는 데이터베이스, 스키마 및 테이블 이름은 보존 시간 간격 을 0이 아닌 값으로 설정하면 시간 이동 통계 및 그래프에 표시되지 않습니다. 보존 시간 간격을 설정하지 않으면 모든 특수 문자가 지원됩니다.
테이블에 행을 삽입할 때 행은 삽입 트랜잭션의 커미트 시간과 동일한 가상 삽입 시간소인을 수신합니다.
테이블에서 행을 삭제하면 행은 삭제 (또는 자르기) 트랜잭션의 커미트 시간과 동일한 가상 삭제 시간소인을 수신합니다.
웹 콘솔을 사용하여 임시 스키마 작성
임시 스키마를 작성하려면 보존 시간 간격 을 0이 아닌 값으로 설정하십시오.
명령행을 사용하여 임시 데이터베이스 작성
임시 데이터베이스를 작성하려면 보존 시간 간격 을 0이 아닌 값으로 설정하십시오.
명령행을 사용하여 시간 이동 오브젝트 변경
명령행을 사용하여 임시 테이블을 비임시 테이블로 변경
시간 테이블을 비시간으로 변경하려면 DATA_VERSION_RETENTION_TIME 을 0으로 설정하십시오.
자세한 구문 및 필요한 특권은 ALTER TABLE 명령 을 참조하십시오.
ALTER TABLE <table> DATA_VERSION_RETENTION_TIME 0;
예:
ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 0;
DATA_VERSION_RETENTION_TIME 을 0으로 설정하면 시간 이동 조회를 실행할 수 없으며 해당 테이블의 히스토리 행에 더 이상 액세스할 수 없습니다. GROOM TABLE 을 사용하여 테이블에서 현재 액세스할 수 없는 히스토리 행의 일부 또는 모두를 재확보할 수 있습니다.
명령행을 사용하여 임시가 아닌 테이블을 임시 테이블로 변경
시간이 아닌 테이블을 시간으로 변경하려면 DATA_VERSION_RETENTION_TIME] 을 0이 아닌 값으로 설정하십시오.
자세한 구문 및 필요한 특권은 ALTER TABLE 명령 을 참조하십시오.
ALTER TABLE <table> DATA_VERSION_RETENTION_TIME <number-of-days>;
예:
ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 30;
먼저 시간 테이블을 사용 안함으로 설정한 후 동일한 테이블을 시간 테이블로 변환한 경우 해당 테이블의 이전 히스토리 행에 대한 액세스 권한이 없습니다. 히스토리 데이터는 테이블이 임시로 변환된 후 행이 삭제되거나 업데이트될 때 수집됩니다.
CREATE TABLE 명령과 마찬가지로 테이블에 삽입되는 행은 삽입 트랜잭션의 커미트 시간과 동일한 가상 삽입 시간소인을 수신합니다. 테이블에서 삭제된 행은 삭제 (또는 자르기) 트랜잭션의 커미트 시간과 동일한 가상 삭제 시간소인을 수신합니다. 테이블의 보존 하한 및 보존 시작 시간은 이 ALTER TABLE 트랜잭션의 커미트 시간과 같거나 그 직전입니다.
기존 행이 없는 CREATE TABLE 명령과 달리 테이블의 기존 표시 가능 행은 이 ALTER TABLE 트랜잭션에 의해 삽입된 것처럼 처리됩니다. 기존의 가시적 행은 보존 시작 시간과 동일한 가상 삽입 시간소인을 수신합니다. 이러한 시간소인을 사용하면 시간 이동 쿼리에 행이 잠재적으로 표시됩니다.
명령행을 사용하여 임시 스키마를 비임시 스키마로 변경
임시 스키마를 비임시로 변경하려면 DATA_VERSION_RETENTION_TIME 을 0으로 설정하십시오.
자세한 구문, 필요한 특권 및 CASCADE 옵션에 대해서는 ALTER SCHEMA 명령 을 참조하십시오.
ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
예:
ALTER SCHEMA SCHEMA DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
명령행을 사용하여 임시가 아닌 스키마를 임시 스키마로 변경
시간이 아닌 스키마를 시간으로 변경하려면 DATA_VERSION_RETENTION_TIME 을 0이 아닌 값으로 설정하십시오.
자세한 구문, 필요한 특권 및 CASCADE 옵션에 대해서는 ALTER SCHEMA 명령 을 참조하십시오.
ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;
예:
ALTER SCHEMA DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;
명령행을 사용하여 임시 데이터베이스를 비임시 데이터베이스로 변경
시간 데이터베이스를 비시간으로 변경하려면 DATA_VERSION_RETENTION_TIME 을 0으로 설정하십시오.
자세한 구문 및 필요한 특권은 ALTER DATABASE 명령 을 참조하십시오.
ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
예:
ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
명령행을 사용하여 임시가 아닌 데이터베이스를 임시 데이터베이스로 변경
시간이 아닌 데이터베이스를 시간으로 변경하려면 DATA_VERSION_RETENTION_TIME 을 0이 아닌 값으로 설정하십시오.
자세한 구문 및 필요한 특권은 ALTER DATABASE 명령 을 참조하십시오.
ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;
예:
ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;
웹 콘솔을 사용하여 시간 이동 오브젝트 변경
웹 콘솔을 사용하여 임시 테이블을 비임시 테이블로 변경
임시 테이블을 비임시 테이블로 변경하려면 보존 시간 간격 을 0으로 설정하십시오.
- 웹 콘솔 시작하기 에 설명된 대로 웹 콘솔에 로그인하십시오.
- 테이블의 보존 시간 간격 업데이트 에 설명된 대로 테이블을 변경하십시오.
보존 시간 간격 을 0으로 설정하면 시간 이동 쿼리를 실행할 수 없으며 해당 테이블의 실행기록 행에 더 이상 액세스할 수 없습니다. GROOM TABLE 을 사용하여 테이블에서 현재 액세스할 수 없는 히스토리 행의 일부 또는 모두를 재확보할 수 있습니다.
웹 콘솔을 사용하여 비임시 테이블을 임시 테이블로 변경
시간이 아닌 테이블을 시간으로 변경하려면 보유 시간 간격 을 0이 아닌 값으로 설정하십시오.
- 웹 콘솔 시작하기 에 설명된 대로 웹 콘솔에 로그인하십시오.
- 테이블의 보존 시간 간격 업데이트 에 설명된 대로 테이블을 변경하십시오.
먼저 시간 테이블을 사용 안함으로 설정한 후 동일한 테이블을 시간 테이블로 변환한 경우 해당 테이블의 이전 히스토리 행에 대한 액세스 권한이 없습니다. 히스토리 데이터는 테이블이 임시로 변환된 후 행이 삭제되거나 업데이트될 때 수집됩니다.
테이블을 작성할 때와 마찬가지로 테이블에 삽입되는 행은 삽입 트랜잭션의 커미트 시간과 동일한 가상 삽입 시간소인을 수신합니다. 테이블에서 삭제된 행은 삭제 (또는 자르기) 트랜잭션의 커미트 시간과 동일한 가상 삭제 시간소인을 수신합니다. 테이블의 보존 하한 및 보존 시작 시간은 이 변경 트랜잭션의 커미트 시간과 같거나 그 직전입니다.
테이블을 작성할 때와 달리, 테이블의 기존 표시 가능 행은 이 변경 트랜잭션에 의해 삽입된 것처럼 처리됩니다. 기존의 가시적 행은 보존 시작 시간과 동일한 가상 삽입 시간소인을 수신합니다. 이러한 시간소인을 사용하면 시간 이동 쿼리에 행이 잠재적으로 표시됩니다.
웹 콘솔을 사용하여 임시 스키마를 비임시 스키마로 변경
임시 스키마를 비임시로 변경하려면 보존 시간 간격 을 0으로 설정하십시오.
- 웹 콘솔 시작하기 에 설명된 대로 웹 콘솔에 로그인하십시오.
- 스키마의 보존 시간 간격 업데이트 에 설명된 대로 테이블을 변경하십시오.
웹 콘솔을 사용하여 비임시 스키마를 임시 스키마로 변경
임시가 아닌 스키마를 임시로 변경하려면 보유 시간 간격 을 0이 아닌 값으로 설정하십시오.
- 웹 콘솔 시작하기 에 설명된 대로 웹 콘솔에 로그인하십시오.
- 스키마의 보존 시간 간격 업데이트 에 설명된 대로 테이블을 변경하십시오.
웹 콘솔을 사용하여 임시 데이터베이스를 비임시 데이터베이스로 변경
시간 데이터베이스를 비시간으로 변경하려면 보존 시간 간격 을 0으로 설정하십시오.
- 웹 콘솔 시작하기 에 설명된 대로 웹 콘솔에 로그인하십시오.
- 데이터베이스의 보존 시간 간격 업데이트 에 설명된 대로 테이블을 변경하십시오.
웹 콘솔을 사용하여 임시가 아닌 데이터베이스를 임시 데이터베이스로 변경
시간이 아닌 데이터베이스를 시간으로 변경하려면 보유 시간 간격 을 0이 아닌 값으로 설정하십시오.
- 웹 콘솔 시작하기 에 설명된 대로 웹 콘솔에 로그인하십시오.
- 데이터베이스의 보존 시간 간격 업데이트 에 설명된 대로 테이블을 변경하십시오.
다음에 수행할 작업
시간 이동 오브젝트를 작성한 후 시간 이동 조회 실행을 시작할 수 있습니다. 자세한 내용은 다음 링크를 참조하십시오.