Gestione dei set di dati
Questo documento descrive come copiare i set di dati, ricrearli in un'altra posizione, proteggerli, eliminarli, ripristinare le tabelle dai set di dati eliminati e annullare l'eliminazione dei set di dati in BigQuery.
In qualità di amministratore di BigQuery, puoi organizzare e controllare l'accesso alle tabelle e alle viste utilizzate dagli analisti. Per ulteriori informazioni sui set di dati, consulta Introduzione ai set di dati.
Non puoi modificare il nome di un set di dati esistente o spostarlo dopo la sua creazione. Come soluzione alternativa per modificare il nome del set di dati, puoi copiare un set di dati e modificare il nome del set di dati di destinazione. Per spostare un set di dati, puoi seguire uno dei seguenti metodi:
Ruoli obbligatori
Questa sezione descrive i ruoli e le autorizzazioni necessari per gestire i set di dati. Se il set di dati di origine o di destinazione si trova nello stesso progetto di quello che stai utilizzando per la copia, non sono necessarie autorizzazioni o ruoli aggiuntivi per quel set di dati.
Per ottenere le autorizzazioni necessarie per gestire i set di dati, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Copiare un set di dati (beta):
-
Amministratore BigQuery (
roles/bigquery.admin
) nel progetto di destinazione -
Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) sul set di dati di origine -
Editor dati BigQuery (
roles/bigquery.dataEditor
) nel set di dati di destinazione
-
Amministratore BigQuery (
-
Eliminare un set di dati:
Proprietario dati BigQuery (
roles/bigquery.dataOwner
) nel progetto -
Ripristina un set di dati eliminato:
Utente BigQuery (
roles/bigquery.user
) nel progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire i set di dati. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per gestire i set di dati sono necessarie le seguenti autorizzazioni:
-
Copia un set di dati:
-
bigquery.transfers.update
nel progetto di destinazione -
bigquery.jobs.create
nel progetto di destinazione -
bigquery.datasets.get
nel set di dati di origine e di destinazione -
bigquery.tables.list
nel set di dati di origine e di destinazione -
bigquery.datasets.update
nel set di dati di destinazione -
bigquery.tables.create
nel set di dati di destinazione
-
-
Elimina un set di dati:
-
bigquery.datasets.delete
sul progetto -
bigquery.tables.delete
sul progetto
-
-
Ripristinare un set di dati eliminato:
-
bigquery.datasets.create
sul progetto -
bigquery.datasets.get
nel set di dati
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Introduzione a IAM.
Copiare i set di dati
Puoi copiare un set di dati, inclusi i dati partizionati all'interno di una regione o tra regioni, senza estrarre, spostare o ricaricare i dati in BigQuery. BigQuery utilizza BigQuery Data Transfer Service nel backend per copiare i set di dati. Per le considerazioni sulla località durante il trasferimento dei dati, consulta Località e trasferimenti dei dati.
Per ogni configurazione di copia del set di dati, puoi avere una sola esecuzione di trasferimento attiva alla volta. Le esecuzioni di trasferimento aggiuntive sono in coda. Se utilizzi la console Google Cloud, puoi pianificare le copie ricorrenti e configurare email o notifiche Pub/Sub con BigQuery Data Transfer Service.
Limitazioni
Quando copi i set di dati, si applicano le seguenti limitazioni:
Non puoi copiare le seguenti risorse da un set di dati di origine:
- Visualizzazioni.
- Routine, incluse le funzioni definite dall'utente.
- Tabelle esterne.
- Tabelle Change Data Capture (CDC) se il job di copia si estende su più regioni. È supportata la copia delle tabelle CDC all'interno della stessa regione.
Il job di copia delle tabelle tra regioni non è supportato per le tabelle criptate con chiavi di crittografia gestite dal cliente (CMEK) quando il set di dati di destinazione non è criptato con CMEK e non è fornito alcun CMEK. È supportata la copia delle tabelle con crittografia predefinita tra regioni.
Puoi copiare tutte le tabelle criptate all'interno della stessa regione, incluse le tabelle criptate con CMEK.
Non puoi utilizzare le seguenti risorse come set di dati di destinazione per i job di copia:
- Spazio di archiviazione ottimizzato per le scritture.
Set di dati criptato con CMEK se il job di copia è in più regioni e la tabella di origine non è criptata con CMEK.
Tuttavia, le tabelle criptate con CMEK sono consentite come tabelle di destinazione durante la copia all'interno della stessa regione.
La frequenza minima tra i job di copia è di 12 ore.
L'aggiunta di dati a una tabella partizionata nel set di dati di destinazione non è supportata.
Se una tabella esiste nel set di dati di origine e nel set di dati di destinazione e la tabella di origine non è cambiata dall'ultima copia riuscita, viene ignorata. La tabella di origine viene ignorata anche se è selezionata la casella di controllo Sovrapponi tabelle di destinazione.
Quando tronchi le tabelle nel set di dati di destinazione, il job di copia del set di dati non rileva le modifiche apportate alle risorse nel set di dati di destinazione prima di avviare il job di copia. Il job di copia del set di dati sovrascrive tutti i dati nel set di dati di destinazione, incluse le tabelle e lo schema.
La tabella di destinazione potrebbe non riflettere le modifiche apportate alle tabelle di origine dopo l'avvio di un job di copia.
La copia di un set di dati non è supportata nelle regioni BigQuery Omni.
Per copiare un set di dati in un progetto in un altro perimetro di servizio VPC Service Controls, devi impostare le seguenti regole di uscita:
Nella configurazione del perimetro di servizio Controlli di servizio VPC del progetto di destinazione, l'entità IAM deve disporre dei seguenti metodi:
bigquery.datasets.get
bigquery.tables.list
bigquery.tables.get
,bigquery.tables.getData
Nella configurazione del perimetro di servizio Controlli di servizio VPC del progetto di origine, il metodo dell'entità IAM utilizzato deve essere impostato su
All Methods
.
Copiare un set di dati
Seleziona una delle seguenti opzioni:
Console
Abilita BigQuery Data Transfer Service per il set di dati di destinazione.
Assicurati di disporre dei ruoli richiesti.
Se intendi configurare le notifiche di esecuzione del trasferimento per Pub/Sub (opzione 2 più avanti in questi passaggi), devi disporre dell'autorizzazione
pubsub.topics.setIamPolicy
.Se configuri solo le notifiche via email, le autorizzazioni Pub/Sub non sono necessarie. Per saperne di più, consulta le notifiche di esecuzione di BigQuery Data Transfer Service.
Crea un set di dati BigQuery nella stessa regione o in una regione diversa da quella del set di dati di origine.
Opzione 1: utilizza la funzione di copia di BigQuery
Per creare un trasferimento una tantum, utilizza la funzione di copia di BigQuery:
Vai alla pagina BigQuery.
Nel riquadro Spazio di esplorazione, espandi il progetto e seleziona un set di dati.
Nella sezione Informazioni sul set di dati, fai clic su
Copia e poi segui questi passaggi:Nel campo Set di dati, crea un nuovo set di dati o seleziona un ID set di dati esistente dall'elenco.
I nomi dei set di dati all'interno di un progetto devono essere univoci. Il progetto e il set di dati possono trovarsi in regioni diverse, ma non tutte le regioni sono supportate per la copia dei set di dati tra regioni.
Nel campo Località viene visualizzata la posizione del set di dati di origine.
(Facoltativo) Per sovrascrivere sia i dati che lo schema delle tabelle di destinazione con le tabelle di origine, seleziona la casella di controllo Sovrascrive le tabelle di destinazione. Sia le tabelle di origine che quelle di destinazione devono avere lo stesso schema di partizionamento.
Per copiare il set di dati, fai clic su Copia.
Opzione 2: utilizza BigQuery Data Transfer Service
Per pianificare le copie ricorrenti e configurare le notifiche via email o Pub/Sub, utilizza BigQuery Data Transfer Service nella console Google Cloud del progetto di destinazione:
Vai alla pagina Trasferimenti di dati.
Fai clic su Crea un trasferimento.
Nell'elenco Origine, seleziona Copia set di dati.
Nel campo Nome visualizzato, inserisci un nome per l'esecuzione del trasferimento.
Nella sezione Opzioni di programmazione:
In Frequenza di ripetizione, scegli un'opzione per la frequenza di esecuzione del trasferimento:
Se selezioni Personalizzata, inserisci una frequenza personalizzata, ad esempio
every day 00:00
. Per ulteriori informazioni, consulta Formattazione della pianificazione.In Data di inizio e ora di esecuzione, inserisci la data e l'ora di inizio del trasferimento. Se scegli Inizia ora, questa opzione è disattivata.
Nella sezione Impostazioni di destinazione, seleziona un set di dati di destinazione per memorizzare i dati del trasferimento. Puoi anche fare clic su CREA NUOVO SET DI DATI per creare un nuovo set di dati prima di selezionarlo per questo trasferimento.
Nella sezione Dettagli dell'origine dati, inserisci le seguenti informazioni:
- In Set di dati di origine, inserisci l'ID del set di dati che vuoi copiare.
- In Progetto di origine, inserisci l'ID progetto del set di dati di origine.
Per sovrascrivere sia i dati che lo schema delle tabelle di destinazione con le tabelle di origine, seleziona la casella di controllo Sovrapponi tabelle di destinazione. Sia la tabella di origine sia quella di destinazione devono avere lo stesso schema di partizione.
Nel menu Account di servizio, seleziona un account di servizio tra quelli associati al tuo progetto Google Cloud. Puoi associare un account di servizio al trasferimento anziché utilizzare le credenziali utente. Per ulteriori informazioni sull'utilizzo degli account di servizio con i trasferimenti di dati, consulta Utilizzare gli account di servizio.
- Se hai eseguito l'accesso con un'identità federata, è necessario un account di servizio per creare un trasferimento. Se hai eseguito l'accesso con un Account Google, un account di servizio per il trasferimento è facoltativo.
- L'account di servizio deve avere i ruoli richiesti.
(Facoltativo) Nella sezione Opzioni di notifica, segui questi passaggi:
- Per attivare le notifiche via email, fai clic sul pulsante di attivazione/disattivazione. Se attivi questa opzione, il proprietario della configurazione del trasferimento riceve una notifica via email quando un'esecuzione del trasferimento non va a buon fine.
- Per attivare le notifiche Pub/Sub, fai clic sul pulsante di attivazione/disattivazione e poi seleziona un nome di argomento dall'elenco o fai clic su Crea un argomento. Questa opzione configura le notifiche di esecuzione di Pub/Sub per il trasferimento.
Fai clic su Salva.
bq
Abilita BigQuery Data Transfer Service per il set di dati di destinazione.
Assicurati di disporre dei ruoli richiesti.
Per creare un set di dati BigQuery, utilizza il comando
bq mk
con il flag di creazione del set di dati--dataset
e il flaglocation
:bq mk \ --dataset \ --location=LOCATION \ PROJECT:DATASET
Sostituisci quanto segue:
LOCATION
: la posizione in cui vuoi copiare il set di datiPROJECT
: l'ID del set di dati di destinazioneDATASET
: il nome del set di dati di destinazione
Per copiare un set di dati, utilizza il comando
bq mk
con il flag di creazione del trasferimento--transfer_config
e il flag--data_source
. Devi impostare il flag--data_source
sucross_region_copy
. Per un elenco completo dei valori validi per il flag--data_source
, consulta i flag transfer-config nel riferimento allo strumento a riga di comando bq.bq mk \ --transfer_config \ --project_id=PROJECT \ --data_source=cross_region_copy \ --target_dataset=DATASET \ --display_name=NAME \ --service_account_name=SERCICE_ACCOUNT \ --params='PARAMETERS'
Sostituisci quanto segue:
NAME
: il nome visualizzato per il job di copia o la configurazione del trasferimentoSERVICE_ACCOUNT
: il nome dell'account di servizio utilizzato per autenticare il trasferimento. L'account di servizio deve essere di proprietà dello stessoproject_id
utilizzato per creare il trasferimento e deve disporre di tutte le autorizzazioni richieste.PARAMETERS
: i parametri per la configurazione del trasferimento in formato JSONI parametri per la configurazione di una copia del set di dati includono quanto segue:
source_dataset_id
: l'ID del set di dati di origine che vuoi copiaresource_project_id
: l'ID del progetto in cui si trova il set di dati di origineoverwrite_destination_table
: un flag facoltativo che ti consente di troncare le tabelle di una copia precedente e aggiornare tutti i dati
Sia le tabelle di origine che quelle di destinazione devono avere lo stesso schema di partizionamento.
I seguenti esempi mostrano la formattazione dei parametri in base all'ambiente del sistema:
Linux: utilizza virgolette singole per racchiudere la stringa JSON, ad esempio:
'{"source_dataset_id":"mydataset","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'
Linea di comando di Windows: utilizza le virgolette doppie per racchiudere la stringa JSON e inserisci un'interpretazione letterale delle virgolette doppie all'interno della stringa con una barra inversa, ad esempio:
"{\"source_dataset_id\":\"mydataset\",\"source_project_id\":\"mysourceproject\",\"overwrite_destination_table\":\"true\"}"
PowerShell: utilizza le virgolette singole per racchiudere la stringa JSON e inserisci un carattere di escape per le virgolette doppie nella stringa con una barra rovesciata, ad esempio:
'{\"source_dataset_id\":\"mydataset\",\"source_project_id\":\"mysourceproject\",\"overwrite_destination_table\":\"true\"}'
Ad esempio, il seguente comando crea una configurazione di copia del set di dati denominata
My Transfer
con un set di dati di destinazione denominatomydataset
e un progetto con l'IDmyproject
.bq mk \ --transfer_config \ --project_id=myproject \ --data_source=cross_region_copy \ --target_dataset=mydataset \ --display_name='My Transfer' \ --params='{ "source_dataset_id":"123_demo_eu", "source_project_id":"mysourceproject", "overwrite_destination_table":"true" }'
API
Abilita BigQuery Data Transfer Service per il set di dati di destinazione.
Assicurati di disporre dei ruoli richiesti.
Per creare un set di dati BigQuery, chiama il metodo
datasets.insert
con una risorsa set di dati definita.Per copiare un set di dati, utilizza il metodo
projects.locations.transferConfigs.create
e fornisci un'istanza della risorsaTransferConfig
.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Installa il client Python per l'API BigQuery Data Transfer conpip install google-cloud-bigquery-datatransfer
. Poi, crea una configurazione di trasferimento per copiare il set di dati.
Per evitare costi di archiviazione aggiuntivi, ti consigliamo di eliminare il set di dati precedente.
Visualizza i job di copia dei set di dati
Per visualizzare lo stato e i dettagli di un job di copia del set di dati nella console Google Cloud:
Nella console Google Cloud, vai alla pagina Trasferimenti dati.
Seleziona un trasferimento di cui vuoi visualizzare i dettagli, quindi svolgi i seguenti passaggi:
Nella pagina Dettagli trasferimento, seleziona un'esecuzione del trasferimento.
Per aggiornare, fai clic su
Aggiorna.
Ricrea i set di dati in un'altra posizione
Per spostare manualmente un set di dati da una posizione all'altra:
-
Esportare i dati dalle tabelle BigQuery in un bucket Cloud Storage nella stessa posizione del set di dati o in una posizione contenuta nella posizione del set di dati. Ad esempio, se il set di dati si trova nella località
EU
multiregione, puoi esportare i dati nella localitàeurope-west1
Belgio, che fa parte dell'UE.Non sono previsti costi per l'esportazione dei dati da BigQuery, ma sono previsti costi per l'archiviazione dei dati esportati in Cloud Storage. Le esportazioni di BigQuery sono soggette ai limiti relativi ai job di esportazione.
-
Copia o sposta i dati dal bucket Cloud Storage di esportazione in un nuovo bucket creato nella posizione di destinazione. Ad esempio, se sposti i dati dalla regione multipla
US
alla regione di Tokyoasia-northeast1
, dovrai trasferirli in un bucket creato a Tokyo. Per informazioni sul trasferimento degli oggetti Cloud Storage, consulta Copiare, rinominare e spostare gli oggetti nella documentazione di Cloud Storage.Il trasferimento di dati tra regioni comporta addebiti per il traffico in uscita dalla rete in Cloud Storage.
-
Crea un nuovo set di dati BigQuery nella nuova posizione, quindi carica i dati dal bucket Cloud Storage nel nuovo set di dati.
Non ti viene addebitato alcun costo per il caricamento dei dati in BigQuery, ma ti verranno addebitati costi per l'archiviazione dei dati in Cloud Storage fino a quando non eliminerai i dati o il bucket. Ti viene inoltre addebitato il costo di archiviazione dei dati in BigQuery dopo il caricamento. Il caricamento dei dati in BigQuery è soggetto ai limiti dei job di caricamento.
Puoi anche utilizzare Cloud Composer per spostare e copiare set di dati di grandi dimensioni in modo programmatico.
Per ulteriori informazioni sull'utilizzo di Cloud Storage per archiviare e spostare set di dati di grandi dimensioni, consulta Utilizzare Cloud Storage con i big data.
Set di dati sicuri
Per controllare l'accesso ai set di dati in BigQuery, consulta Controllo dell'accesso ai set di dati. Per informazioni sulla crittografia dei dati, vedi Crittografia at-rest.
Elimina set di dati
Quando elimini un set di dati utilizzando la console Google Cloud, le tabelle e le visualizzazioni al suo interno, inclusi i relativi dati, vengono eliminate. Quando elimini un set di dati utilizzando lo strumento a riga di comando bq, devi utilizzare il flag -r
per eliminare le tabelle e le visualizzazioni.
Per eliminare un set di dati, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.
Espandi l'opzione
Azioni e fai clic su Elimina.Nella finestra di dialogo Elimina set di dati, inserisci
delete
nel campo e fai clic su Elimina.
SQL
Per eliminare un set di dati, utilizza l'istruzione DDL DROP SCHEMA
.
L'esempio seguente elimina un set di dati denominato mydataset
:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
DROP SCHEMA IF EXISTS mydataset;
Per impostazione predefinita, questa operazione funziona solo per eliminare un set di dati vuoto. Per eliminare un set di dati e tutti i relativi contenuti, utilizza la parola chiave
CASCADE
:DROP SCHEMA IF EXISTS mydataset CASCADE;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
bq
Utilizza il comando bq rm
con il flag --dataset
o -d
, facoltativo.
Se il set di dati contiene tabelle, devi utilizzare il flag -r
per rimuovere tutte le tabelle nel set di dati. Se utilizzi il flag -r
, puoi omettere il flag --dataset
o -d
.
Dopo aver eseguito il comando, il sistema chiede conferma. Puoi utilizzare il flag -f
per saltare la conferma.
Se stai eliminando una tabella in un progetto diverso da quello predefinito,
aggiungi l'ID progetto al nome del set di dati nel seguente formato:
PROJECT_ID:DATASET
.
bq rm -r -f -d PROJECT_ID:DATASET
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoDATASET
: il nome del set di dati da eliminare
Esempi:
Inserisci il seguente comando per rimuovere un set di dati denominato mydataset
e tutte le sue tabelle dal progetto predefinito. Il comando utilizza il
-d
flag.
bq rm -r -d mydataset
Quando richiesto, digita y
e premi Invio.
Inserisci il seguente comando per rimuovere mydataset
e tutte le tabelle al suo interno da myotherproject
. Il comando non utilizza il flag facoltativo -d
.
Il flag -f
viene utilizzato per saltare la conferma.
bq rm -r -f myotherproject:mydataset
Puoi utilizzare il comando bq ls
per confermare che il set di dati è stato eliminato.
API
Chiama il metodo
datasets.delete
per eliminare il set di dati e imposta il parametro deleteContents
su true
per eliminare le tabelle al suo interno.
C#
Il seguente esempio di codice elimina un set di dati vuoto.
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery C#.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Installa il client Python per l'API BigQuery Data Transfer conpip install google-cloud-bigquery-datatransfer
. Poi, crea una configurazione di trasferimento per copiare il set di dati.
Il seguente esempio di codice elimina un set di dati e tutti i relativi contenuti:
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Installa il client Python per l'API BigQuery Data Transfer conpip install google-cloud-bigquery-datatransfer
. Poi, crea una configurazione di trasferimento per copiare il set di dati.
Java
Il seguente esempio di codice elimina un set di dati vuoto.
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Installa il client Python per l'API BigQuery Data Transfer conpip install google-cloud-bigquery-datatransfer
. Poi, crea una configurazione di trasferimento per copiare il set di dati.
Il seguente esempio di codice elimina un set di dati e tutti i relativi contenuti:
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Installa il client Python per l'API BigQuery Data Transfer conpip install google-cloud-bigquery-datatransfer
. Poi, crea una configurazione di trasferimento per copiare il set di dati.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione PHP riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery PHP.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Installa il client Python per l'API BigQuery Data Transfer conpip install google-cloud-bigquery-datatransfer
. Poi, crea una configurazione di trasferimento per copiare il set di dati.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Installa il client Python per l'API BigQuery Data Transfer conpip install google-cloud-bigquery-datatransfer
. Poi, crea una configurazione di trasferimento per copiare il set di dati.
Ruby
Il seguente esempio di codice elimina un set di dati vuoto.
Prima di provare questo esempio, segui le istruzioni di configurazione Ruby riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Ruby.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Installa il client Python per l'API BigQuery Data Transfer conpip install google-cloud-bigquery-datatransfer
. Poi, crea una configurazione di trasferimento per copiare il set di dati.
Il seguente esempio di codice elimina un set di dati e tutti i relativi contenuti:
Ripristinare le tabelle dai set di dati eliminati
Puoi ripristinare le tabelle di un set di dati eliminato che rientrano nella finestra di spostamento nel tempo del set di dati. Per ripristinare l'intero set di dati, consulta Annulla eliminazione dei set di dati.
- Crea un set di dati con lo stesso nome e nella stessa posizione dell'originale.
- Scegli un timestamp precedente all'eliminazione del set di dati originale utilizzando un formato in millisecondi dall'epoca, ad esempio
1418864998000
. Copia la tabella
originaldataset.table1
al momento1418864998000
nel nuovo set di dati:bq cp originaldataset.table1@1418864998000 mydataset.mytable
Per trovare i nomi delle tabelle non vuote presenti nel set di dati eliminato, esegui una query sulla
INFORMATION_SCHEMA.TABLE_STORAGE
visualizzazione del set di dati all'interno della finestra di viaggio nel tempo.
Annulla eliminazione dei set di dati
Puoi annullare l'eliminazione di un set di dati per ripristinarlo allo stato in cui si trovava al momento dell'eliminazione. Puoi annullare l'eliminazione solo dei set di dati che rientrano nella finestra di spostamento cronologico. Questo recupero include tutti gli oggetti contenuti nel set di dati, le proprietà del set di dati e le impostazioni di sicurezza. Per le risorse che non vengono recuperate, consulta Limitazioni del ripristino dei set di dati.
Limitazioni del ripristino dei set di dati
- I set di dati ripristinati potrebbero fare riferimento a principi di sicurezza che non esistono più.
- I riferimenti a un set di dati eliminato nei set di dati collegati non vengono ripristinati dall'annullamento dell'eliminazione. Gli abbonati devono iscriversi di nuovo per ripristinare manualmente i link.
- I tag delle attività non vengono ripristinati annullando l'eliminazione.
- Devi aggiornare manualmente le visualizzazioni materializzate e riautorizzare visualizzazioni autorizzate, set di dati autorizzati e routine autorizzate. Tieni presente che, quando le risorse autorizzate (viste, set di dati e routine) vengono eliminate, possono essere necessarie fino a 24 ore prima che l'autorizzazione venga eliminata. Pertanto, se anulli l'eliminazione di un set di dati con una risorsa autorizzata meno di 24 ore dopo l'eliminazione, è possibile che la nuova autorizzazione non sia necessaria. Come best practice, verifica sempre l'autorizzazione dopo aver annullato l'eliminazione delle risorse.
Annullare l'eliminazione di un set di dati
Per annullare l'eliminazione di un set di dati, seleziona una delle seguenti opzioni:
SQL
Utilizza l'istruzione DDL (Data Definition Language) UNDROP SCHEMA
:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
UNDROP SCHEMA
DATASET_ID
;Sostituisci
DATASET_ID
con il set di dati di cui vuoi annullare l'eliminazione.Specifica la posizione del set di dati di cui vuoi annullare l'eliminazione.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire query interattive.
API
Chiama il
metodo datasets.undelete
.
Quando annulli l'eliminazione di un set di dati, potrebbero verificarsi i seguenti errori:
ALREADY_EXISTS
: nella regione in cui hai provato a annullare l'eliminazione esiste già un set di dati con lo stesso nome. Non puoi utilizzare l'annullamento dell'eliminazione per sovrascrivere o unire i set di dati.NOT_FOUND
: il set di dati che stai tentando di recuperare ha superato la finestra di viaggio nel tempo, non è mai esistito o non hai specificato la posizione corretta del set di dati.ACCESS_DENIED
: non disponi delle autorizzazioni corrette per Annulla eliminazione di questo set di dati.
Quote
Per informazioni sulle quote di copia, consulta Eseguire i job di copia.
L'utilizzo dei job di copia è disponibile in INFORMATION_SCHEMA
. Per scoprire come eseguire query sulla vista INFORMATION_SCHEMA.JOBS
, consulta la vista JOBS
.
Prezzi
Per informazioni sui prezzi per la copia dei set di dati, consulta Prezzi della replica dei dati.
BigQuery invia dati compressi per la copia tra regioni, pertanto i dati fatturati potrebbero essere inferiori alle dimensioni effettive del set di dati. Per ulteriori informazioni, vedi Prezzi di BigQuery.
Passaggi successivi
- Scopri come creare set di dati.
- Scopri come aggiornare i set di dati.