Daten zwischen eigenen Tabellen in BigQuery zu kopieren, ist in den letzten Jahren deutlich einfacher geworden. Trotzdem gibt es nach wie vor zahlreiche Methoden – jede mit eigenen Einschränkungen, was schnell unübersichtlich wird. Im Folgenden stelle ich die einzelnen Ansätze mit ihren Vor- und Nachteilen vor.

Das Kopieren über Datenregionen hinweg war früher ziemlich aufwendig.
Kopieren über Storage
Sie konnten Daten aus BigQuery nach Cloud Storage exportieren und von dort in der anderen Region wieder zurück nach BigQuery laden. Das bringt nicht nur einen zusätzlichen Zwischenschritt mit sich, sondern kann auch ordentlich ins Geld gehen. Außerdem mussten Sie die Orchestrierung selbst übernehmen – etwa mit Composer für Scheduling, Pufferung und Parallelisierung.
Dataset Copying
Seit Kurzem macht Dataset Copying die Sache deutlich einfacher. Das Feature funktioniert regionsübergreifend und ist – bis auf die Netzwerkkosten – kostenlos. Scheduling und verwandte Funktionen sind direkt integriert.
Kopieren innerhalb einer Region mit `bq` _, der Job API oder Copy Tables_
Innerhalb einer Region war das Kopieren schon immer einfacher – und obendrein kostenlos. Sie können dafür bq cp auf der Kommandozeile ausführen, die Job API per Code ansprechen oder "Copy Tables" in der Cloud Console nutzen.
Scheduled Queries
Eine weitere Möglichkeit, innerhalb einer Region zu kopieren, sind Scheduled Queries. Das Feature ist zwar nicht kostenlos, dafür aber äußerst flexibel: Sie können beliebige SELECT-Statements schreiben, deren Ergebnisse in eine Zieltabelle eingefügt werden. Und wie der Name vermuten lässt, ist Scheduling direkt mit an Bord.
Von den genannten Ansätzen unterstützen nur bq cp und Scheduled Queries einen weit verbreiteten Anwendungsfall: das tägliche inkrementelle Backup einer nach Ingestion-Zeit partitionierten Tabelle. Nur damit lässt sich gezielt die Partition des Vortags kopieren und in der Zieltabelle wieder als Partition ablegen.
Hier Ihre Optionen im tabellarischen Überblick: