실수로 BigQuery 테이블 중 하나를 삭제했습니다. 그것을 되 찾을 수 있습니까? API가 삭제 취소를 지원하지 않는 것 같습니다.BigQuery 테이블의 삭제를 취소하려면 어떻게해야합니까?
14
A
답변
22
BigQuery의 삭제 취소는 테이블 복사 및 스냅 샷 데코레이터를 통해 가능합니다. 즉, 테이블이 삭제되기 전에 테이블의 스냅 샷을 복사 할 수 있습니다.
이주의 사항 몇 가지가 있습니다
- 당신은 두 단계로이 작업을 수행해야합니다; 먼저 테이블의 스냅 샷을 두 번째 테이블에 복사하십시오. 그런 다음 두 번째 테이블을 원래 위치로 다시 복사 할 수 있습니다.
- 마지막으로 일 이내에 삭제 된 테이블 만 삭제 취소 할 수 있습니다.
- 같은 이름의 테이블을 다시 만든 경우 이전 테이블을 삭제 취소 할 수 없습니다.
여기에 bq
을 사용하는 예가 있지만 BigQuery 웹 UI에서 동일한 작업을 수행 할 수 있습니다.
우선의 우리가 삭제하는거야 더미의 BigQuery 데이터 세트와 테이블을 만들 수 : 테이블이 살아있을 때 이제
$ bq mk -d dataset1
Dataset 'helixdata2:dataset1' successfully created.
$ bq query --destination_table=dataset1.table1 "SELECT 17 as a"
Waiting on bqjob_ra0dedbee5cb4228_0000014a5af133d6_1 ... (0s)
Current status: DONE
+----+
| a |
+----+
| 17 |
+----+
는 한 번에서 현재 유닉스 타임 스탬프를 잡아.
$ date +%s
1418864998
이 시간은 초입니다. 밀리 초가 필요합니다.
'실수'테이블
$ bq rm dataset1.table1
rm: remove table 'helixdata2:dataset1.table1'? (y/N) y
이제 우리는 스냅 샷을 복사하여 테이블을 취소 할 수 있습니다 제거 :
$ bq cp [email protected] dataset1.temp
Waiting on bqjob_r4d8174e2e41ae73_0000014a5af2a028_1 ... (0s)
Current status: DONE
Tables 'helixdata2:[email protected]' successfully copied to
'helixdata2:dataset1.temp'
(우리가 밀리 초를 원하기 때문에 우리가 1000 시간을 곱한 주) 이 테이블의 이전 스냅 샷을 dataset1.temp
에 복사했습니다. 다시 이전 위치로 복사 한 다음 임시 테이블을 제거하십시오.
$ bq cp dataset1.temp dataset1.table1
Waiting on bqjob_r3c0bb9302fb81d59_0000014a5af2dc7b_1 ... (0s)
Current status: DONE
Tables 'helixdata2:dataset1.temp' successfully copied to
'helixdata2:dataset1.table1'
$ bq rm dataset1.temp
rm: remove table 'helixdata2:dataset1.temp'? (y/N) y
이제 테이블이 복원되었는지 확인하자 :
$ bq query "select * from dataset1.table1"
Waiting on bqjob_r5967bea49ed9e97f_0000014a5af34dec_1 ... (0s)
Current status: DONE
+----+
| a |
+----+
| 17 |
+----+
관련 문제
- 1. 동일한 이름으로 새 테이블을 만든 후에 BigQuery 테이블의 삭제를 취소하려면 어떻게해야합니까?
- 2. 링크 작업을 취소하려면 어떻게해야합니까?
- 3. Window.ClosingEvent를 취소하려면 어떻게해야합니까?
- 4. 경고 상자를 취소하려면 어떻게해야합니까?
- 5. 언어 설정을 취소하려면 어떻게해야합니까?
- 6. NSOperation의 종속성을 취소하려면 어떻게해야합니까?
- 7. xtify로 알림을 취소하려면 어떻게해야합니까?
- 8. onkeydown에서 onblur를 취소하려면 어떻게해야합니까?
- 9. 나쁜 커밋을 취소하려면 어떻게해야합니까?
- 10. ngEvent를 취소하려면 어떻게해야합니까?
- 11. Form_Load를 취소하려면 어떻게해야합니까?
- 12. S3 키의 모든 버전을 가져오고 boto를 사용하여 삭제를 취소하려면 어떻게합니까?
- 13. 웹 브라우저에서 리소스로드를 취소하려면 어떻게해야합니까?
- 14. UIScrollView 줌 바운스를 취소하려면 어떻게해야합니까?
- 15. 자바 스크립트 대화를 취소하려면 어떻게해야합니까?
- 16. TFSBuild.proj의 작업에서 빌드를 취소하려면 어떻게해야합니까?
- 17. 다운로드 파일 실행을 취소하려면 어떻게해야합니까?
- 18. 툴팁 자동 숨기기를 취소하려면 어떻게해야합니까?
- 19. [AVAudioSession sharedInstance]를 취소하려면 어떻게해야합니까?
- 20. 큰 BigQuery 테이블의 정렬 된 내보내기를 생성하려면 어떻게해야합니까?
- 21. 다른 테이블의 동일한 열을 병합하는 bigquery
- 22. 기존 테이블의 분할 된 테이블에 BigQuery 삽입
- 23. BigQuery - 테이블의 열 수를 쿼리하는 방법은 무엇입니까?
- 24. Windows에서 파일 삭제를 최적화하려면 어떻게해야합니까?
- 25. "기본"엔터티 삭제를 방지하려면 어떻게해야합니까?
- 26. Oracle에서 특정 테이블의 삭제를 감사하는 방법은 무엇입니까?
- 27. zipalign을 실행 한 apk의 서명을 취소하려면 어떻게해야합니까?
- 28. SmartGWT 창에서 닫기 이벤트를 취소하려면 어떻게해야합니까?
- 29. 프롬프트 확인 창에서 삭제 작업을 취소하려면 어떻게해야합니까?
- 30. Haml에서 레일스 템플릿 생성을 실행 취소하려면 어떻게해야합니까?
을 조금만 또한,이 오류 얻을 경우 "쿼리 작업에서 오류 : 프로젝트 ID가없는 작업을 시작할 수 없습니다." 프로젝트 ID를 추가하십시오. bq 쉘의 경우 : - [bq shell --project_id = myprojectid] – shiva
@ Jordan Tigani 데이터 세트의 스냅 샷을 얻을 수 있습니까? 내가 우연히 삭제 한 테이블이 확실하지 않기 때문에 특정 타임 스탬프에 어떤 테이블이 있는지 알고 싶습니다. – shiva
중요 사항 : 테이블을 다시 만들면 테이블을 삭제 취소 할 수 없습니다. 즉,이 스냅 샷 복구는 "스트리밍 중 필요할 때 테이블 생성"템플릿 테이블 기능과 함께 실수로 복구하는 데 사용할 수 없습니다. 우리는 이것을 어려운 방법으로 배웠습니다 : 실수로 생산 테이블을 삭제했습니다. 즉, 즉시 재 작성되어 스냅 샷에서 복구 할 수 없었습니다. –