테이블 스냅샷은 특정 기간의 테이블을 백업해두는 거라고 생각하면 된다.
여기서 특정 기간이라고 하면 빅쿼리의 Time Travel 기간인 최대 7일 전의 테이블 데이터에 한해서 스냅샷을 만들 수 있다.
스냅샷은 읽기 전용이지만 그 스냅샷을 갖고 표준 테이블을 생성할 수 있으며 그때부턴 테이블 수정이 가능하다.
이점
스토리지 비용
스냅샷의 스토리지 비용은 베이스 테이블의 영향을 많이 받는다.
베이스 테이블에서 삭제되거나 변경된 데이터에 대해서만 요금이 청구되는 것이다.
처음 스냅샷을 만들면 비용이 청구되지 않는다.
베이스 테이블의 변경 사항 중 새 데이터가 추가되는 경우도 비용이 청구되지 않는다.
오직 스냅샷에 있는 베이스 테이블에서 데이터를 변경하거나 삭제한 것에 대해서만 비용이 청구되는 것이다.
테이블의 읽기 전용 사본이 필요하면 스냅샷을, 수정 가능한 사본이 필요하다면 테이블 클론을 사용하는 게 좋다.
스냅샷과 유사하지만 수정이 가능하고, 스냅샷은 테이블이 아니었지만 클론은 베이스 테이블과는 독립적인 별도의 테이블이라고 보면 된다.
때문에 클론을 만들 때 베이스 테이블의 액세스 제어 정책이 똑같이 복사된다.
스토리지 비용
클론도 스냅샷과 유사하게 베이스 테이블과 다른 클론의 데이터에 대해서만 요금을 청구한다. 차이는 클론은 읽기 전용이 아닌 독립적인 테이블이므로 새 데이터가 추가될 수 있으므로 그에 대한 요금이 청구된다는 것이다.
스냅샷과 마찬가지로 처음엔 테이블 클론에 대한 스토리지 비용이 발생하지 않고, 기본 테이블에서 변경되거나 삭제되면 그에 대한 테이블 클론 스토리지에 요금이 청구된다.
테이블 클론에도 있는 기본 테이블 데이터가 변경 or 삭제되면 그 데이터의 스토리지에 대한 요금이 청구된다.
또한 스냅샷과 마찬가지로 데이터를 베이스 테이블에 추가하는 경우는 테이블 클론의 해당 데이터 스토리지에 요금이 청구되지 않는다.
공통 제한사항
스냅샷에만 해당되는 제한사항
클론에만 해당되는 제한사항
Google Cloud Console에서 테이블 클론 지원x.
콘솔을 사용하여 테이블 클론을 만들 수 없으며 콘솔의 표준 테이블과 테이블 클론을 구분할 수도 없다. 때문에 빅쿼리의 편집기에서 아래의 쿼리를 통해서만 만들 수 있다.
CREATE TABLE
<프로젝트 ID>.<클론할 테이블 데이터 세트>.<클론할 테이블>
CLONE <프로젝트 ID>.<베이스 데이터 세트>.<베이스 테이블>;