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

BigQuery - Time Travel이란?

by BTC_.tf 2023. 9. 1.

안녕하세요, 엄.. 팀입니다.

슬슬 날씨가 풀리고 있네요. 이번 주말엔 연인분과 나들이를 나가보는 건 어떨까요?

 

금일의 주제는 GCP가 제공하는 BigQuery 서비스의 Time Travel입니다.

Time Travel은 변경되었거나 삭제된 BigQuery에 저장된 데이터에 Access 할 수 있도록 해줍니다.

기본적으로 지난 7일간의 Time Travel이 가능합니다. 이런 Time Travel을 이용하여 업데이트 또는 삭제된 데이터를 Query하거나, 삭제된 Table을 복원하거나, 만료된 Table을 복원할 수 있습니다.

 

FOR SYSTEM_TIME AS OF 절을 사용하여 Time Travel 기간 이내의 어느 시점에서든 Table의 이전 데이터를 Query할 수 있습니다. 이 절은 상수 Timestamp 표현식을 사용해서 해당 Timestamp에서 현재였던 Tabel 버전을 참조합니다.

Table은 BigQuery에 저장되어야 하며, 외부 Table일 수 없습니다. 또한, Table의 크기는 제한되지 않습니다.

 

SELECT *
FROM [Dataset명.Table명]
  FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR);

위는 FOR SYSTEM_TIME AS OF 절의 예시입니다.

1시간 전의 이전 Table 버전을 반환하는 Query입니다.

 

또한 앞에서 Time Travel을 이용하여 특정 시점의 Table을 복원할 수 있다고 말씀드렸는데, 방법은 다음과 같습니다.

 

bq cp [참조할 Dataset명.참조할 Table명]@-3600000 [복원 지점 Dataset명.복원 지점 Table명]

위는 bq cp 명령어를 사용하여 특정 시점의 Table을 신규 Table에 복원하는 예시입니다.

이는 1시간 전의 Table을 복원하는 명령어인데, -는 현재 시간 기준의 상대 Offset으로 돌아간다는 뜻입니다.

단위는 밀리초이므로 -3600000이 기입된 것입니다.

 

Time Travel은 최소 2일부터 최대 7일까지 설정할 수 있으며, Default Value는 7일입니다.

Dataset Level에서 Time Travel 기간을 설정하면 Dataset 내 모든 Table에 적용이 됩니다.

더 짧은 Time Travel 기간을 사용하면 Storage 비용을 절약할 수 있기에, 데이터 Restore가 크게 중요치 않다면 Time Travel 기간을 줄이는 것도 비용 절감의 방법 중 하나입니다.

또한, 특정 기간에 데이터를 삭제해야하는 데이터 보관 정책에 유리할 수도 있습니다.

 

bq update \
--dataset=true --max_time_travel_hours=[Time Travel 기간] \
[Project명]:[Dataset명]

위는 Time Travel의 기간을 설정하는 명령어입니다.

[Time Travel 기간]의 단위는 시간이며, 24시간의 배수로 지정되어야 합니다.

Time Travel 기간은 최소 2일에서 최대 7일까지 설정할 수 있다고 말씀드렸는데, 그렇다면 48, 72, 96, 120, 144, 168시간으로 설정할 수 있는 것입니다.

 

오늘은 BigQuery가 지원하는 Time Travel에 대해서 알아보았는데요.

다음에 기회가 된다면 Time Travel의 실습을 보여드리고 싶습니다.

다들 한주 고생 많으셨구요, 즐거운 주말 보내시길 바라겠습니다!

그럼 베바!

'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글

VS Code 설치 및 GCP 연동하기  (0) 2023.09.14
Cloud Armor & Firewall  (0) 2023.09.14
[GCP] Service Account Impersonate 실습  (0) 2023.09.01
[GCP] Service Account Impersonate  (0) 2023.08.28
Filestore란?  (0) 2023.08.18

댓글