Abfrageergebnisse in eine Datei exportieren
In diesem Dokument wird beschrieben, wie Abfrageergebnisse als Datei wie CSV oder JSON gespeichert werden.
Beschränkungen
BigQuery unterstützt den Export von verschachtelten oder wiederholten Daten (RECORD-/STRUCT- oder ARRAY-Datentypen) in das CSV-Format nicht. Auch wenn die Felder RECORD oder STRUCT nicht tief verschachtelt zu sein scheinen, behandelt BigQuery sie als verschachtelte Schemafelder und gibt einen Fehler zurück, der darauf hinweist, dass das Schema nicht verschachtelt werden kann.
Wenn Sie Abfrageergebnisse in eine strukturierte CSV-Datei exportieren möchten, muss Ihre Abfrage in eine flache Struktur mit einem Feld pro Abfragespalte normalisiert werden. Sie können verschachtelte Structs normalisieren, indem Sie einzelne Felder mit der Punktnotation auswählen, oder wiederholte Arrays normalisieren, indem Sie den Operator UNNEST verwenden.
Wenn Ihre Tabelle beispielsweise ein Struct customer und ein Array items enthält, normalisieren Sie die Abfrage, bevor Sie sie ausführen und die Ergebnisse in einer CSV-Datei speichern:
SELECT
customer.id AS customer_id,
customer.name AS customer_name,
item
FROM
`my_project.my_dataset.my_table`,
UNNEST(items) AS item;
Abfrageergebnisse in eine lokale Datei herunterladen
Das Herunterladen von Abfrageergebnissen in eine lokale Datei wird vom bq-Befehlszeilentool und der API nicht unterstützt.
Verwenden Sie dieGoogle Cloud -Konsole, um Abfrageergebnisse als CSV- oder durch Zeilenumbruch getrennte JSON-Datei herunterzuladen:
Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.
Klicken Sie auf SQL-Abfrage.
Geben Sie im Textbereich des Abfrageeditors eine gültige GoogleSQL-Abfrage ein.
Optional: Klicken Sie auf Bearbeiten > Abfrageeinstellungen, um den Verarbeitungsstandort zu ändern. Wählen Sie unter Speicherort der Daten den Standort Ihrer Daten aus.
Klicken Sie auf Ausführen.
Wenn die Ergebnisse zurückgegeben werden, klicken Sie auf Ergebnisse speichern und wählen Sie das Format oder den Ort zum Speichern der Ergebnisse aus.
Die Datei wird in das Standard-Downloadverzeichnis Ihres Browsers heruntergeladen.
Abfrageergebnisse in Google Drive speichern
Das Speichern von Abfrageergebnissen in Google Drive wird vom bq-Befehlszeilentool und der API nicht unterstützt.
Möglicherweise erhalten Sie eine Fehlermeldung, wenn Sie versuchen, die BigQuery-Ergebnisse in Google Drive zu speichern. Dieser Fehler tritt auf, weil die Drive SDK API nicht auf Google Workspace zugreifen kann. Um das Problem zu beheben, müssen Sie Ihr Nutzerkonto für den Zugriff auf Google Drive über die Drive SDK API aktivieren.
Verwenden Sie die Google Cloud Console, um Abfrageergebnisse in Google Drive zu speichern:
Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.
Klicken Sie auf SQL-Abfrage.
Geben Sie im Textbereich des Abfrageeditors eine gültige GoogleSQL-Abfrage ein.
Klicken Sie auf Ausführen.
Wenn die Ergebnisse zurückgegeben werden, klicken Sie auf Ergebnisse speichern.
Wählen Sie unter Google Drive die Option CSV oder JSON aus. Wenn Sie Ergebnisse in Google Drive speichern, können Sie den Speicherort nicht auswählen. Die Ergebnisse werden immer im Stammverzeichnis „Meine Ablage“ gespeichert.
Es kann einige Minuten dauern, bis die Ergebnisse in Google Drive gespeichert sind. Wenn die Ergebnisse gespeichert sind, erhalten Sie eine Dialogfeldmeldung mit dem Dateinamen
bq-results-[TIMESTAMP]-[RANDOM_CHARACTERS].[CSV or JSON].
Klicken Sie im Dialogfeld auf Öffnen, um die Datei zu öffnen, oder wechseln Sie zu Google Drive und klicken Sie auf Meine Ablage.
Abfrageergebnisse in Google Sheets speichern
Das Speichern von Abfrageergebnissen in Google Sheets wird vom bq-Befehlszeilentool und der API nicht unterstützt.
Sie erhalten möglicherweise eine Fehlermeldung, wenn Sie versuchen, die BigQuery-Ergebnisse aus Google Sheets zu öffnen. Dieser Fehler tritt auf, weil die Drive SDK API nicht auf Google Workspace zugreifen kann. Um das Problem zu beheben, müssen Sie Ihr Nutzerkonto für den Zugriff auf Google Sheets über die Drive SDK API aktivieren.
Verwenden Sie die Google Cloud Console, um Abfrageergebnisse in Google Sheets zu speichern:
Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.
Klicken Sie auf SQL-Abfrage.
Geben Sie im Textbereich des Abfrageeditors eine gültige GoogleSQL-Abfrage ein.
Optional: Klicken Sie auf Bearbeiten > Abfrageeinstellungen, um den Verarbeitungsstandort zu ändern. Wählen Sie unter Speicherort der Daten den Standort Ihrer Daten aus.
Klicken Sie auf Ausführen.
Wenn die Ergebnisse zurückgegeben werden, klicken Sie auf Save results (Ergebnisse speichern) und wählen Sie Google Sheets (Google Sheets) aus.
Wenn Sie dazu aufgefordert werden, melden Sie sich bei Ihrem Google-Konto an und klicken Sie auf Zulassen, um BigQuery die Berechtigung zu erteilen, die Daten in den Ordner
My Drivein Google Drive zu schreiben.Nachdem Sie den Aufforderungen gefolgt sind, erhalten Sie eine E-Mail, in der bestätigt wird, dass BigQuery-Clienttools mit Ihrem Nutzerkonto verknüpft wurden. Die E-Mail enthält Informationen zu den von Ihnen erteilten Berechtigungen sowie eine Anleitung zum Entziehen der Berechtigungen.
Wenn die Ergebnisse gespeichert wurden, wird unter den Abfrageergebnissen in der Google Cloud Console eine Meldung angezeigt, die in etwa so aussieht:
Saved to Sheets as "results-20190225-103531". Klicken Sie in der Meldung auf den Link, um die Ergebnisse in Google Sheets anzuzeigen, oder rufen Sie den OrdnerMy Driveauf und öffnen Sie die Datei manuell.Wenn Sie Abfrageergebnisse in Google Sheets speichern, beginnt der Dateiname mit
results-[DATE], wobei[DATE]das aktuelle Datum im FormatYYYYMMDDist.
Fehler beim Speichern von Ergebnissen in Google Sheets beheben
Beim Speichern von Daten aus BigQuery in Google Sheets bemerken Sie möglicherweise einige leere Zellen in den Tabellen. Dies ist der Fall, wenn die Daten, die Sie in die Zelle schreiben, das Google Sheets-Limit von 50.000 Zeichen überschreiten. Verwenden Sie zur Behebung dieses Problems eine Stringfunktion in der SQL-Abfrage, um die Spalte mit den langen Daten in zwei oder mehr Spalten aufzuteilen und das Ergebnis anschließend wieder in Tabellen zu speichern.
Abfrageergebnisse in Cloud Storage speichern
So exportieren Sie Ihre Abfrageergebnisse in der Google Cloud Console nach Cloud Storage:
Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.
Klicken Sie auf SQL-Abfrage.
Geben Sie im Textbereich des Abfrageeditors eine gültige GoogleSQL-Abfrage ein.
Klicken Sie auf Ausführen.
Wenn die Ergebnisse zurückgegeben werden, klicken Sie auf Ergebnisse speichern > Cloud Storage.
Gehen Sie im Dialogfeld Nach Google Cloud Storage exportieren folgendermaßen vor:
- Wählen Sie unter GCS-Speicherort den Bucket, den Ordner oder die Datei aus, in den bzw. die Sie die Daten exportieren möchten.
- Wählen Sie unter Exportformat das Format für die exportierten Daten aus: CSV, JSON (durch Zeilenumbruch getrennt), Avro oder Parquet.
- Wählen Sie unter Komprimierung ein Komprimierungsformat aus oder wählen Sie
Nonefür keine Komprimierung aus.
Klicken Sie auf Speichern, um die Abfrageergebnisse zu exportieren.
Wenn Sie den Fortschritt des Jobs prüfen möchten, maximieren Sie den Bereich Jobverlauf und suchen Sie nach dem Job mit dem Typ EXTRACT.
Herunterladen von Abfrageergebnissen einschränken
So verhindern Sie, dass Nutzer Abfrageergebnisse aus der Google Cloud Console herunterladen:
Konfigurieren Sie einen VPC Service Controls-Perimeter, um Daten-Exfiltration zu verhindern. Dadurch wird verhindert, dass Nutzer Daten außerhalb der festgelegten Perimetergrenzen herunterladen und exportieren.
Wenden Sie sich an Cloud Customer Care, um zu beantragen, dass Ihr Google Cloud Projekt oder Ihre Organisation einer eingeschränkten Liste hinzugefügt wird. Dadurch werden die Optionen zum Herunterladen und Exportieren von Daten direkt in der Google Cloud Console deaktiviert.
Nächste Schritte
- Tabelle programmatisch in eine JSON-Datei exportieren
- Informationen zu Kontingenten für Extraktionsjobs
- Informationen zu BigQuery-Speicherpreisen