시간 이동 및 장애 안전을 위한 데이터 보관

이 문서에서는 데이터 세트의 시간 이동장애 안전 데이터 보관 기간을 설명합니다. 시간 이동 및 장애 안전 기간 동안 데이터를 복구해야 할 경우 데이터 세트의 테이블에서 변경하거나 삭제한 데이터는 계속 저장됩니다.

시간 이동

기본적으로 지난 7일을 포함하는 시간 이동 기간 내의 어느 시점이든 데이터에 액세스할 수 있습니다. 시간 이동을 사용하면 업데이트 또는 삭제된 데이터를 쿼리하거나, 삭제된 테이블 또는 데이터 세트를 복원하거나, 만료된 테이블을 복원할 수 있습니다.

시간 이동 기간 구성

이동 기간을 최소 2일부터 최대 7일까지 설정할 수 있습니다. 기본값은 7일입니다. 데이터 세트 수준에서 시간 이동 기간을 설정합니다. 이후 데이터 세트 내의 모든 테이블에 적용됩니다. 프로젝트 수준 기본값을 구성할 수도 있습니다.

업데이트되거나 삭제된 데이터를 복구하는 데 더 오랜 시간이 걸리는 것이 중요한 경우에는 시간 이동 기간을 더 길게 구성하고, 필요하지 않은 경우에는 더 짧게 구성할 수 있습니다. 더 짧은 시간 이동 기간을 사용하면 물리적 스토리지 청구 모델을 사용할 때 스토리지 비용을 절약할 수 있습니다. 논리적 스토리지 청구 모델을 사용할 때는 이러한 절감액이 적용되지 않습니다.

스토리지 청구 모델이 비용에 미치는 영향에 대한 자세한 내용은 청구를 참조하세요.

시간 이동 기간이 테이블 및 데이터 세트 복구에 미치는 영향

삭제된 테이블 또는 데이터 세트는 삭제 시점에 적용된 시간 이동 기간을 사용합니다.

예를 들어 시간 이동 기간이 2일인 경우 기간을 7일로 늘려도 해당 변경 전에 삭제된 테이블은 여전히 2일 동안만 복구할 수 있습니다. 마찬가지로, 시간 이동 기간이 5일이고 이 기간을 3일로 줄이는 경우에도 변경 전에 삭제된 테이블은 여전히 5일 동안 복구할 수 있습니다.

시간 이동 기간은 데이터 세트 수준에서 설정되므로 삭제 취소되기 전까지 삭제된 데이터 세트의 시간 이동 기간을 변경할 수 없습니다.

시간 이동 기간을 단축하고 테이블을 삭제한 후에 더 오랜 기간의 데이터 복구가 필요함을 깨닫는 경우에는 테이블 삭제 시점 전의 테이블 스냅샷을 만들면 됩니다. 삭제된 테이블이 복구 가능한 상태에서 이를 수행해야 합니다. 자세한 내용은 시간 이동을 사용하여 테이블 스냅샷 만들기를 참조하세요.

시간 이동 기간 지정

Google Cloud 콘솔, bq 명령줄 도구 또는 BigQuery API를 사용하여 데이터 세트의 시간 이동 기간을 지정할 수 있습니다.

새 데이터 세트의 시간 이동 기간을 지정하는 방법에 대한 자세한 내용은 데이터 세트 만들기를 참조하세요.

기존 데이터 세트의 시간 이동 기간을 업데이트하는 방법에 대한 안내는 시간 이동 기간 업데이트를 참조하세요.

타임스탬프가 시간 이동 기간 이외의 시간 또는 테이블 생성 이전의 시간을 지정하는 경우 쿼리가 실패하고 다음과 비슷한 오류가 반환됩니다.

Table ID was created at time which is
before its allowed time travel interval timestamp. 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_STORAGETABLE_STORAGE_BY_ORGANIZATION 뷰의 TIME_TRAVEL_PHYSICAL_BYTESFAIL_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

장기 물리적 스토리지에서 데이터를 삭제하는 것도 동일한 방식으로 작동합니다.

제한사항

다음 단계