Die BigQuery Storage API ermöglicht den schnellen Zugriff auf Daten, die in BigQuery gespeichert sind. Mit der BigQuery Storage API können Sie in BigQuery gespeicherte Daten herunterladen, um sie in Analysetools wie der pandas-Bibliothek für Python zu verwenden.
Ziele
In dieser Anleitung können Sie:
- Abfrageergebnisse mithilfe der BigQuery Storage API aus den magischen IPython-Befehlen für BigQuery in einem Jupyter-Notebook in einen pandas-DataFrame herunterladen.
- Abfrageergebnisse mithilfe der BigQuery-Clientbibliothek für Python in einen pandas-DataFrame herunterladen.
- Tabellendaten aus BigQuery mithilfe der BigQuery-Clientbibliothek für Python in einen pandas-DataFrame herunterladen.
- Tabellendaten aus BigQuery mithilfe der BigQuery Storage API-Clientbibliothek für Python in einen pandas-DataFrame herunterladen.
Kosten
BigQuery ist ein kostenpflichtiges Produkt. Für die von Ihnen ausgeführten Abfragen fallen BigQuery-Nutzungskosten an. Das erste Terabyte (1 TB) an verarbeiteten Abfragedaten pro Monat ist kostenlos. Weitere Informationen finden Sie auf der Seite "Preise" für BigQuery.
Die BigQuery Storage API ist ein kostenpflichtiges Produkt. Für die von Ihnen beim Herunterladen eines DataFrames gescannten Tabellendaten fallen Nutzungskosten an. Weitere Informationen finden Sie auf der Seite "Preise" für BigQuery.
Vorbereitung
Bevor Sie mit dieser Anleitung beginnen, rufen Sie die Google Cloud Console auf, erstellen Sie dort ein Projekt oder wählen es aus und aktivieren Sie die Abrechnung.
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.
- BigQuery ist in neuen Projekten automatisch aktiviert. So aktivieren Sie BigQuery in einem vorhandenen Projekt: BigQuery, BigQuery Storage API APIs aktivieren.
- Richten Sie eine Python-Entwicklungsumgebung ein.
Python einrichten - Richten Sie die Authentifizierung für Ihre Entwicklungsumgebung ein.
Authentifizierung einrichten
Sie sollten außerdem mit den magischen IPython-Befehlen für BigQuery, der BigQuery-Clientbibliothek und der Verwendung der Clientbibliothek mit pandas vertraut sein, bevor Sie diese Anleitung durcharbeiten.
Clientbibliotheken installieren
Installieren Sie mindestens Version 1.9.0 der BigQuery-Python-Clientbibliothek und die Python-Clientbibliothek der BigQuery Storage API.
PIP
Installieren Sie die Pakete google-cloud-bigquery
und google-cloud-bigquery-storage
.
pip install --upgrade 'google-cloud-bigquery[bqstorage,pandas]'
Conda
Installieren Sie die Conda-Pakete für BigQuery und die BigQuery Storage API aus dem Community-Kanal conda-forge
.
conda install -c conda-forge google-cloud-bigquery \
google-cloud-bigquery-storage \
pandas \
pyarrow
Abfrageergebnisse mit den magischen IPython-Befehlen für BigQuery herunterladen
Starten Sie den Jupyter-Notebook-Server und erstellen Sie ein neues Jupyter-Notebook. Laden Sie die magischen IPython-Befehle für BigQuery mithilfe des magischen Befehls %load_ext
.
%load_ext google.cloud.bigquery
Laden Sie große Abfrageergebnisse mit der BigQuery Storage API herunter, indem Sie dem magischen Befehl %%bigquery
das Argument --use_bq_storage_api
hinzufügen.
Wenn dieses Argument für kleine Abfrageergebnisse verwendet wird, nutzen die magischen Befehle die BigQuery API zum Herunterladen der Ergebnisse.
Legen Sie für das Attribut context.use_bqstorage_api
die Option True
fest, um standardmäßig die BigQuery Storage API zu verwenden.
Führen Sie nach dem Festlegen des Attributs context.use_bqstorage_api
den magischen Befehl %%bigquery
ohne weitere Argumente aus, um große Ergebnisse mit der BigQuery Storage API herunterzuladen.
Python-Clientbibliotheken verwenden
Python-Clients erstellen
Erstellen Sie ein BigQuery-Client
-Objekt und einen BigQueryStorageClient
mit dem folgenden Code.
Verwenden Sie die Python-Bibliothek "google-auth", um Anmeldedaten mit ausreichender Autorisierung für beide APIs zu erstellen. Zur Vermeidung einer zweimaligen Authentifizierung übergeben Sie an jeden Konstruktor ein Anmeldedatenobjekt.
Abfrageergebnisse mithilfe der BigQuery-Clientbibliothek herunterladen
Führen Sie mit der Methode query
eine Abfrage aus. Rufen Sie die Methode to_dataframe
auf. Damit werden die Ergebnisse mithilfe der BigQuery Storage API vollständig heruntergeladen.
Tabellendaten mithilfe der BigQuery-Clientbibliothek herunterladen
Mit der Methode list_rows
können Sie alle Zeilen in einer Tabelle herunterladen. Dabei wird ein RowIterator
-Objekt zurückgegeben. Laden Sie Zeilen mit der BigQuery Storage API herunter. Dazu rufen Sie die Methode to_dataframe
mit dem Argument bqstorage_client
auf.
Tabellendaten mithilfe der BigQuery Storage API-Clientbibliothek herunterladen
Für eine präzise Steuerung der Filter und des Parallelismus verwenden Sie direkt die BigQuery Storage API-Clientbibliothek. Wenn nur einfache Zeilenfilter erforderlich sind, kann anstelle einer Abfrage eine BigQuery Storage API-Lesesitzung verwendet werden.
Erstellen Sie ein TableReference-Objekt mit der gewünschten zu lesenden Tabelle. Erstellen Sie ein TableReadOptions-Objekt, um Spalten oder Filterzeilen auszuwählen. Erstellen Sie mit der Methode create_read_session
eine Lesesitzung.
Wenn sich in der Sitzung Streams befinden, lesen Sie die Zeilen mit der Methode read_rows
. Rufen Sie die Methode to_dataframe
mit dem Reader auf, um den gesamten Stream in einen Pandas DataFrame zu schreiben. Lesen Sie für eine bessere Leistung parallel aus mehreren Streams. In diesem Codebeispiel wird jedoch der Einfachheit halber nur aus einem einzigen Stream gelesen.
Quellcode für alle Beispiele
Klicken Sie hier, um sich den vollständigen Quellcode für alle Beispiele anzusehen.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Löschen Sie das Projekt. Sie haben in dieser Anleitung keine BigQuery-Ressourcen erstellt. Durch das Löschen Ihres Projekts werden jedoch alle anderen von Ihnen erstellten Ressourcen entfernt.- Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
Weitere Informationen
- Referenz zu den Python-Clientbibliotheken: