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

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

시간 이동

기본적으로 지난 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 시간 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 열을 보면 시간 이동 및 장애 안전에 사용된 바이트를 확인할 수 있습니다.

제한사항

  • 시간 이동은 시간 이동 기간 동안의 이전 데이터에 대한 액세스만 제공합니다. 긴급하지 않은 목적으로 테이블 데이터를 시간 이동 기간보다 오래 보존하려면 테이블 스냅샷을 사용합니다.
  • 테이블에 행 수준 액세스 정책이 있거나 이전에 있었던 경우 테이블 관리자만 시간 이동을 사용할 수 있습니다. 자세한 내용은 시간 이동 및 행 수준 액세스를 참조하세요.
  • 시간 이동은 테이블 메타데이터를 복원하지 않습니다.

다음 단계