시간 이동 및 장애 안전을 위한 데이터 보관
이 문서에서는 데이터 세트의 시간 이동 및 장애 안전 데이터 보관 기간을 설명합니다. 시간 이동 및 장애 안전 기간 동안 데이터를 복구해야 할 경우 데이터 세트의 테이블에서 변경하거나 삭제한 데이터는 계속 저장됩니다.
시간 이동
기본적으로 지난 7일을 포함하는 시간 이동 기간 내의 어느 시점이든 데이터에 액세스할 수 있습니다. 시간 이동을 사용하면 업데이트 또는 삭제된 데이터를 쿼리하거나, 삭제된 테이블 또는 데이터 세트를 복원하거나, 만료된 테이블을 복원할 수 있습니다.
시간 이동 기간 구성
이동 기간을 최소 2일부터 최대 7일까지 설정할 수 있습니다. 기본값은 7일입니다. 데이터 세트 수준에서 시간 이동 기간을 설정합니다. 이후 데이터 세트 내의 모든 테이블에 적용됩니다. 프로젝트 수준 기본값을 구성할 수도 있습니다.
업데이트되거나 삭제된 데이터를 복구하는 데 더 오랜 시간이 걸리는 것이 중요한 경우에는 시간 이동 기간을 더 길게 구성하고, 필요하지 않은 경우에는 더 짧게 구성할 수 있습니다. 더 짧은 시간 이동 기간을 사용하면 물리적 스토리지 청구 모델을 사용할 때 스토리지 비용을 절약할 수 있습니다. 논리적 스토리지 청구 모델을 사용할 때는 이러한 절감액이 적용되지 않습니다.
스토리지 청구 모델이 비용에 미치는 영향에 대한 자세한 내용은 청구를 참조하세요.
시간 이동 기간이 테이블 및 데이터 세트 복구에 미치는 영향
삭제된 테이블 또는 데이터 세트는 삭제 시점에 적용된 시간 이동 기간을 사용합니다.
예를 들어 시간 이동 기간이 2일인 경우 기간을 7일로 늘려도 해당 변경 전에 삭제된 테이블은 여전히 2일 동안만 복구할 수 있습니다. 마찬가지로, 시간 이동 기간이 5일이고 이 기간을 3일로 줄이는 경우에도 변경 전에 삭제된 테이블은 여전히 5일 동안 복구할 수 있습니다.
시간 이동 기간은 데이터 세트 수준에서 설정되므로 삭제 취소되기 전까지 삭제된 데이터 세트의 시간 이동 기간을 변경할 수 없습니다.
시간 이동 기간을 단축하고 테이블을 삭제한 후에 더 오랜 기간의 데이터 복구가 필요함을 깨닫는 경우에는 테이블 삭제 시점 전의 테이블 스냅샷을 만들면 됩니다. 삭제된 테이블이 복구 가능한 상태에서 이를 수행해야 합니다. 자세한 내용은 시간 이동을 사용하여 테이블 스냅샷 만들기를 참조하세요.
시간 이동 기간 지정
Google Cloud 콘솔, bq 명령줄 도구 또는 BigQuery API를 사용하여 데이터 세트의 시간 이동 기간을 지정할 수 있습니다.
새 데이터 세트의 시간 이동 기간을 지정하는 방법에 대한 자세한 내용은 데이터 세트 만들기를 참조하세요.
기존 데이터 세트의 시간 이동 기간을 업데이트하는 방법에 대한 안내는 시간 이동 기간 업데이트를 참조하세요.
타임스탬프가 시간 이동 기간 이외의 시간 또는 테이블 생성 이전의 시간을 지정하는 경우 쿼리가 실패하고 다음과 비슷한 오류가 반환됩니다.
TableID
was created at time which is before its allowed time travel intervaltimestamp
. Creation time:timestamp
시간 이동 및 행 수준 액세스
테이블에 행 수준 액세스 정책이 있거나 있었던 경우 테이블 관리자만 테이블의 이전 데이터에 액세스할 수 있습니다.
다음 Identity and Access Management(IAM) 권한이 필요합니다.
권한 | 리소스 |
---|---|
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
|
이전 데이터에 액세스하는 테이블 |
다음 BigQuery 역할은 필요한 권한을 제공합니다.
역할 | 리소스 |
---|---|
roles/bigquery.admin
|
이전 데이터에 액세스하는 테이블 |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
권한은 커스텀 역할에 추가할 수 없습니다.
다음 명령어를 실행하여 동일한 Unix epoch 시간을 가져옵니다.
date -d '2023-08-04 16:00:34.456789Z' +%s000
bq 명령줄 도구에서 이전 명령어로부터 수신된 UNIX epoch 시간
1691164834000
을 바꿉니다. 다음 명령어를 실행하여 동일한 데이터 세트myDatasetID
내에 있는 다른 테이블restoredTable
의 삭제된 테이블deletedTableID
를 복원합니다.bq cp myProjectID:myDatasetID.deletedTableID@1691164834000 myProjectID:myDatasetID.restoredTable
장애 안전
BigQuery는 장애 안전 기간을 제공합니다. 장애 안전 기간 중 삭제된 데이터는 긴급 복구에 사용할 수 있도록 시간 이동 기간 후 7일 동안 자동으로 보관됩니다. 데이터는 테이블 수준에서 데이터를 복구할 수 있습니다. 테이블이 삭제된 시점의 타임스탬프로 표현되는 특정 시점의 테이블 데이터가 복구됩니다. 장애 안전 기간은 구성할 수 없습니다.
장애 안전 스토리지에 있는 데이터를 쿼리하거나 직접 복구할 수 없습니다. 장애 안전 스토리지에서 데이터를 복구하려면 Cloud Customer Care에 문의하세요.
청구
물리적 바이트를 사용하도록 스토리지 청구 모델을 설정하는 경우 시간 이동 및 장애 안전 스토리지에 사용된 바이트는 별도로 청구됩니다. 시간 이동 및 장애 안전 스토리지는 현재 물리적 스토리지 요율로 청구됩니다. 데이터 보관 요구에 맞게 스토리지 비용을 분산하도록 시간 이동 기간을 구성할 수 있습니다.
논리적 바이트를 사용하도록 스토리지 청구 모델을 설정하는 경우 시간 이동 및 장애 안전 스토리지의 총 스토리지 비용이 청구되는 기본 요율에 포함됩니다.
다음 표에서는 물리적 및 논리적 스토리지 비용을 비교해서 보여줍니다.
청구 모델 | 비용 지불 대상 |
---|---|
물리적(압축) 스토리지 |
|
논리적(비압축) 스토리지(기본 설정) |
|
물리적 스토리지를 사용하는 경우 TABLE_STORAGE
및 TABLE_STORAGE_BY_ORGANIZATION
뷰의 TIME_TRAVEL_PHYSICAL_BYTES
및 FAIL_SAFE_PHYSICAL_BYTES
열을 보면 시간 이동 및 장애 안전에 사용된 바이트를 확인할 수 있습니다. 이러한 뷰 중 하나를 사용해서 비용을 예측하는 방법에 대한 예시는 스토리지 청구 예측을 참조하세요.
스토리지 비용은 시간 이동 및 장애 안전 데이터에 적용되지만 BigQuery의 다른 곳에 데이터 스토리지 요금이 적용되지 않는 경우에만 요금이 청구됩니다. 다음 세부정보가 적용됩니다.
- 테이블을 만들면 시간 이동 또는 장애 안전 스토리지 비용이 발생하지 않습니다.
- 데이터가 변경되거나 삭제되면 시간 이동 기간 및 장애 안전 기간 동안 시간 이동으로 저장된 변경 또는 삭제된 데이터의 스토리지에 대한 요금이 청구됩니다. 이는 테이블 스냅샷 및 클론의 스토리지 가격 책정과 유사합니다.
데이터 보관 예시
다음 표는 삭제되거나 변경된 데이터가 스토리지 보관 기간 사이에서 이동하는 방식을 보여줍니다. 이 예시는 시간 이동 기간이 7일인 총 활성 스토리지가 200GiB이고 50GiB가 삭제되는 상황을 보여줍니다.
0일차 | 1일차 | 2일차 | 3일차 | 4일차 | 5일 차 | 6일차 | 7일차 | 8일차 | 9일 차 | 10일차 | 11일차 | 12일차 | 13일차 | 14일차 | 15일차 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
활성 스토리지 | 200 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 |
시간 이동 스토리지 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | |||||||||
장애 안전 스토리지 | 50 | 50 | 50 | 50 | 50 | 50 | 50 |
장기 물리적 스토리지에서 데이터를 삭제하는 것도 동일한 방식으로 작동합니다.
제한사항
- 시간 이동은 시간 이동 기간 동안의 이전 데이터에 대한 액세스만 제공합니다. 긴급하지 않은 목적으로 테이블 데이터를 시간 이동 기간보다 오래 보존하려면 테이블 스냅샷을 사용합니다.
- 테이블에 행 수준 액세스 정책이 있거나 이전에 있었던 경우 테이블 관리자만 시간 이동을 사용할 수 있습니다. 자세한 내용은 시간 이동 및 행 수준 액세스를 참조하세요.
- 시간 이동은 테이블 메타데이터를 복원하지 않습니다.
- 다음 테이블 유형에서는 데이터 이동이 지원되지 않습니다.
- 외부 테이블
- 임시 캐시 쿼리 결과 테이블
- 임시 세션 테이블
- 임시 멀티 문 테이블
- 외부 데이터 세트에 나열된 테이블입니다.
다음 단계
- 시간 이동 데이터 쿼리 및 복구 방법 알아보기
- 테이블 스냅샷 자세히 알아보기