Copiare i dati tra le proprie tabelle in BigQuery è diventato molto più semplice negli ultimi anni. I modi per farlo restano però molti, ciascuno con limiti diversi che possono creare confusione. Li passerò in rassegna uno per uno, indicando pro e contro.

Un tempo, copiare dati tra regioni diverse era un'operazione complicata.
Copia tramite Storage
Si poteva copiare da BigQuery a Cloud Storage e poi di nuovo in BigQuery, nell'altra regione. Oltre ad aggiungere un passaggio in più, questo approccio poteva rivelarsi anche costoso. Inoltre, l'orchestrazione era a carico dell'utente: ad esempio con Composer per scheduling, buffering e parallelizzazione.
Dataset Copying
Di recente, la funzionalità Dataset Copying ha reso tutto molto più semplice. Funziona tra regioni diverse ed è gratuita, salvo i costi di rete. Scheduling e funzionalità correlate sono già integrati.
Copia intra-regione con `bq` _, la Job API o Copy Tables_
Copiare all'interno della stessa regione è sempre stato più semplice e, soprattutto, gratuito. Nella stessa regione si può lanciare bq cp da riga di comando, scrivere codice basato sulla Job API, oppure usare "Copy Tables" nella Cloud Console.
Scheduled Queries
La funzionalità Scheduled Queries è un altro modo per copiare i dati all'interno di una regione. Pur non essendo gratuita, è molto flessibile: consente di scrivere qualsiasi istruzione SELECT per l'inserimento in una tabella di destinazione. E, come suggerisce il nome, lo scheduling è integrato.
Tra gli approcci citati, solo bq cp e Scheduled Queries coprono un caso d'uso molto comune: il backup incrementale giornaliero di una tabella partizionata per ingestion time. Sono le uniche opzioni che permettono di copiare solo la partizione dell'ultimo giorno e di preservarla come partizione nella tabella di destinazione.
Ecco le opzioni a confronto in forma tabellare: