Time Travel을 이용한 Table 복구 방법 가이드
안녕하세요. 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