본문 바로가기
CSP (Cloud Service Provider)/GCP

Time Travel을 이용한 Table 복구 방법 가이드

by BTC_ming2 2022. 10. 4.

안녕하세요. MC에몽입니다.

오늘은 GCP BigQuery Dataset의 Table DATA를 Time Travel을 통해 복구하는 방법에 대해 알아보도록 하겠습니다.

Time Trael은 7일 내로 삭제된 Bigquery Table을 복구할 수 있는 기능입니다.


먼저, 해당 작업을 실행하기 위해서는 다음과 같은 권한이 필요합니다.
 - Bigquery Admin (roles/bigquery.admin)

1. 이전에 삭제한 Dataset Name을 가진 Dataset을 생성합니다.
 - Dataset을 생성하지 않는 경우, 복구가 불가능하니 주의하시기 바랍니다.




2. 삭제된 Dataset 및 Table Name을 확인합니다.

============================
SELECT *

FROM `region-us`.INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE

WHERE DELETED = true;

============================


3. Time Travel bq문을 통한 복구 가능한 Data를 확인합니다.

============================
SELECT
  concat('bq cp ',table_schema,'.',table_name,'@',UNIX_MILLIS(timestamp),'    삭제된 Dataset Name.',table_name)

FROM
   `region-us`.INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE

WHERE TABLE_SCHEMA = "삭제된 Dataset Name"

AND DELETED = true;

============================



4. 2번에서 확인한 복구를 희망하는 data를 다음 bq문을 통해 복구합니다.
 - bp cp [삭제된 Dataset Name].[Table Name]@-[삭제된 시점(m/s)] [Dataset Name].[Table Name]


5. 다음과 같이 결과를 확인한 뒤, 3번에서 만든 Dataset을 삭제합니다.
6. 결과 확인.




이렇게 실수로 삭제하거나, 다시 필요해진 table을 Time Travel을 통해 복구하여 사용할 수 있습니다.

다음시간에는 좀 더 유익한 시간으로 돌아오겠습니다.


See You Later!

 

 

참고 문헌
[1] https://cloud.google.com/bigquery/docs/managing-datasets?hl=ko#deleting_a_dataset
[2] https://cloud.google.com/bigquery/docs/time-travel

댓글