Przypadkowo usunąłem jeden z moich tabel BigQuery. Czy można to odzyskać? Wygląda na to, że interfejs API nie obsługuje cofnięcia usunięcia.Jak mogę cofnąć usunięcie tabeli BigQuery?
Odpowiedz
Odzyskiwanie w BigQuery jest możliwe dzięki dekoratorom tabel i migawek. Oznacza to, że można skopiować migawkę tabeli przed usunięciem tabeli.
Istnieje kilka zastrzeżeń:
- Musisz to zrobić w dwóch etapach; najpierw skopiuj migawkę tabeli do drugiej tabeli. Następnie możesz skopiować tę drugą tabelę z powrotem do pierwotnej lokalizacji.
- Usunąć można tylko tabele, które zostały usunięte w ciągu ostatnich dni.
- Jeśli odtworzyłeś tabelę o tej samej nazwie, możesz nie odzyskać starej.
Oto przykład z użyciem bq
, ale można zrobić to samo z interfejsem internetowym BigQuery.
Najpierw stwórzmy atrapę zestawu danych BigQuery i stół, który mamy zamiar usunąć:
$ 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 |
+----+
Teraz chwycić aktualny uniksowy znacznik czasu od chwili, gdy stół był żywy.
$ date +%s
1418864998
Zauważ, że ten czas jest w sekundach, potrzebujemy milisekund.
Usuń tabelę „przypadkowo”
$ bq rm dataset1.table1
rm: remove table 'helixdata2:dataset1.table1'? (y/N) y
Teraz możemy przywrócenie usuniętej tabeli kopiując migawkę:
$ 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'
(pamiętać, że mnoży czas przez 1000, ponieważ chcemy milisekund) ten skopiowano starą migawkę tabeli do dataset1.temp
. Skopiujmy go z powrotem do starej lokalizacji, a następnie usuńmy tabelę tymczasową.
$ 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
Teraz upewnij się, że stół został przywrócony:
$ bq query "select * from dataset1.table1"
Waiting on bqjob_r5967bea49ed9e97f_0000014a5af34dec_1 ... (0s)
Current status: DONE
+----+
| a |
+----+
| 17 |
+----+
- 1. Jak cofnąć usunięcie svn
- 2. Jak cofnąć usunięcie gałęzi na githubie?
- 3. dane wstawić do tabeli BigQuery
- 4. Jak mogę cofnąć zatwierdzenie SVN?
- 5. Jak mogę cofnąć usunięcie pliku po uruchomieniu githrm i naciśnięciu przycisku github?
- 6. Google BigQuery Usunąć wiersze?
- 7. Eliminowanie duplikatów rekordów w tabeli BigQuery
- 8. Usuwanie zduplikowanych wierszy z tabeli BigQuery
- 9. Czy mogę cofnąć aktualizację Meteor?
- 10. Jak mogę "cofnąć" klon - pojedynczej gałęzi?
- 11. auto przyrost po usunięcie z tabeli
- 12. BigQuery datatypes
- 13. Dane strumieniowe w BigQuery
- 14. jak cofnąć zapytanie mysql?
- 15. Usunięcie tabeli temp w środowisku wielu użytkowników
- 16. Jak cofnąć wyczyść git
- 17. Jak cofnąć "hg qnew"?
- 18. BigQuery - usuń nieużywaną kolumnę ze schematu
- 19. Jak cofnąć hg init?
- 20. Czy istnieje sposób na eksport schematu tabeli BigQuery jako JSON?
- 21. Uwierzytelnianie przepływu danych w celu odczytania tabeli BigQuery wskazującej Dysk?
- 22. Jak cofnąć "kopię svn"
- 23. Jak cofnąć aktualizację RequestFactory
- 24. Jak cofnąć deklarację `declaration`?
- 25. Jak cofnąć zatwierdzenie
- 26. Jak mogę załadować dane do BigQuery bez błędu formatu ProtoBuf?
- 27. Jak cofnąć aktualizację git-index?
- 28. Jak mogę "cofnąć" scalenie gałęzi funkcjonalności w Git?
- 29. Jak mogę cofnąć moje ostatnie dodanie/zatwierdzenie git?
- 30. Przeniosłem okno kompilacji do własnego okna. Jak mogę to cofnąć?
Tylko trochę więcej, jeśli masz ten błąd „błąd w działaniu Query: Nie można rozpocząć pracę bez id projektu”. Dodaj swój identyfikator projektu. Dla powłoki bq: - [bq shell --project_id = myprojectid] – shiva
@ Jordan Tigani Czy mogę uzyskać migawkę zestawu danych? Chcę wiedzieć, które tabele są obecne w określonym znaczniku czasu, ponieważ nie jestem pewien, które tabele usunąłem przypadkowo. – shiva
Ważna uwaga: nie można * przywrócić usuniętych tabel, jeśli zostały one odtworzone. Oznacza to, że tego odzyskiwania migawki nie można używać do odzyskiwania po błędach w połączeniu z funkcją tworzenia tabel szablonów "twórz tabele na żądanie podczas przesyłania strumieniowego". Dowiedzieliśmy się tego na własnej skórze: przez przypadek usunęliśmy tabelę produkcyjną, która została natychmiast ponownie utworzona, abyśmy nie mogli odzyskać danych z migawki. –