Ho eliminato per errore uno dei miei tavoli BigQuery. È possibile recuperarlo? L'API non sembra supportare l'eliminazione.Come posso annullare l'eliminazione di una tabella BigQuery?
risposta
Undelete in BigQuery è possibile tramite decoratori di copia su tabella e istantanee. Cioè, puoi copiare un'istantanea della tabella prima che la tabella venisse cancellata.
Ci sono un paio di avvertimenti:
- È necessario farlo in due fasi; per prima cosa, copia un'istantanea della tabella in una seconda tabella. Quindi è possibile copiare la seconda tabella nella posizione originale.
- È possibile annullare l'eliminazione delle tabelle eliminate negli ultimi giorni.
- Se è stata ricreata una tabella con lo stesso nome, potrebbe non essere possibile ripristinare la precedente.
Ecco un esempio utilizzando bq
, ma è possibile fare la stessa cosa con l'interfaccia utente Web di BigQuery.
Prima creiamo un set di dati BigQuery manichino e tabella che stiamo andando a eliminare:
$ 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 |
+----+
Ora, afferrare la corrente timestamp Unix da un periodo in cui la tavola era vivo.
$ date +%s
1418864998
Si noti che questa volta è in secondi, avremo bisogno di millisecondi.
Rimuovere la tabella 'accidentalmente'
$ bq rm dataset1.table1
rm: remove table 'helixdata2:dataset1.table1'? (y/N) y
Ora possiamo annullare l'eliminazione della tabella copiando un'istantanea:
$ 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'
(notare abbiamo moltiplicato il tempo del 1000 dal momento che vogliamo millisecondi) Questo copiata una vecchia istantanea della tabella su dataset1.temp
. Ricollociamolo nella vecchia posizione e quindi rimuovere la tabella temporanea.
$ 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
Diamo ora verificare che la tabella è stata restaurata:
$ bq query "select * from dataset1.table1"
Waiting on bqjob_r5967bea49ed9e97f_0000014a5af34dec_1 ... (0s)
Current status: DONE
+----+
| a |
+----+
| 17 |
+----+
- 1. Come creare una tabella di formato JSON nidificata da una tabella piatta in BigQuery?
- 2. Come posso annullare Task.WhenAll?
- 3. Come creare una vista BigQuery
- 4. Come posso generare valori chiave univoci per i record in una tabella BigQuery?
- 5. BigQuery - Verifica se la tabella esiste già
- 6. Bigquery aggiunge colonne allo schema della tabella
- 7. inserire i dati nella tabella BigQuery
- 8. Come posso annullare mix phoenix.gen.html?
- 9. Come ottenere le dimensioni di archiviazione di BigQuery per una singola tabella
- 10. Come modificare un tipo di colonna di una tabella BigQuery interrogando ed esportando su se stesso?
- 11. Posso annullare l'aggiornamento di Meteor?
- 12. Google BigQuery - come rilasciare la tabella con il comando bq?
- 13. Come annullare/annullare attività TPL?
- 14. BigQuery l'esecuzione di una sola query
- 15. BigQuery tipi di dati
- 16. Heroku - Come posso annullare una spinta su heroku?
- 17. Come posso "annullare" una data in un determinato fuso orario?
- 18. Come annullare una 'svn copy'
- 19. Come posso annullare più commit in Mercurial?
- 20. AngularJS - Come annullare una promessa?
- 21. Come annullare una proprietà CSS?
- 22. Impaginazione BigQuery
- 23. Come annullare una chiamata Object.defineProperty?
- 24. Join su Google Bigquery
- 25. Come posso annullare un puntatore in Vai?
- 26. Come pivot in Google BigQuery
- 27. Come posso ruotare una tabella in DB2?
- 28. Come posso partizionare una tabella con HIVE?
- 29. Google BigQuery Elimina righe?
- 30. Creazione/scrittura nella tabella BigQuery parititoned tramite Google Cloud Dataflow
Solo un po 'Inoltre, se si ottiene questo errore "errore di funzionamento Query: Impossibile avviare un lavoro senza un ID di progetto". Aggiungi l'ID del tuo progetto. Per shell bq: - [bq shell --project_id = myprojectid] – shiva
@ Jordan Tigani Posso ottenere l'istantanea di un set di dati? Voglio sapere quali tabelle sono presenti in un determinato timestamp perché non sono sicuro di quali tabelle ho cancellato accidentalmente. – shiva
Nota importante: non è possibile * annullare l'eliminazione delle tabelle se sono state ricreate. Ciò significa che questo recupero dell'istantanea non può essere utilizzato per recuperare dagli errori in combinazione con le funzionalità delle tabelle modello "crea tabelle su richiesta durante lo streaming". L'abbiamo imparato nel modo più duro: abbiamo cancellato per errore una tabella di produzione, che è stata immediatamente ricreata in modo da non poter recuperare dall'istantanea. –