Das Python-Paket datalab
wird für die Interaktion mit Google Cloud-Diensten über Datalab-Notebooks verwendet. Das Python-Paket datalab
enthält Jupyter-Magien und Python-Module wie google.datalab.bigquery
, die einen Teil der BigQuery API-Methoden unterstützen.
Die BigQuery-Clientbibliothek google-cloud-bigquery
ist die offizielle Python-Bibliothek für die Interaktion mit BigQuery. Die Clientbibliothek bietet eine Jupyter-Zellmagie zum Ausführen von Abfragen. Diese Funktionen ermöglichen das Senden und Abrufen von Daten mithilfe von pandas-DataFrames und die Bibliothek unterstützt den gesamten Funktionsumfang von BigQuery. Die folgenden Codebeispiele veranschaulichen, wie Entwickler, die mit dem Python-Paket datalab
bereits vertraut sind, allgemeine BigQuery-Vorgänge mit der Bibliothek google-cloud-bigquery
ausführen können.
In der Datei requirements.txt finden Sie die Versionen der Bibliotheken, die für diese Code-Snippets verwendet wurden.
Jupyter-Magien und Shell-Befehle verwenden
Beide Bibliotheken unterstützen das Abfragen von in BigQuery gespeicherten Daten mithilfe einer Zellmagie. Die wichtigsten Unterschiede zwischen den beiden Bibliotheken in Bezug auf Magien sind folgende:
datalab |
google-cloud-bigquery |
|
---|---|---|
Name der Magie | bq |
bigquery |
Name der Jupyter-Erweiterung (wird zum Laden der Magien verwendet) | google.datalab.kernel |
google.cloud.bigquery |
Ausführung von Abfragen | Die Definition und Ausführung von Abfragen kann in separaten Schritten erfolgen. | Die Abfrage wird immer sofort ausgeführt, wenn der magische Befehl ausgeführt wird. |
Von Magien unterstützte Funktionen | Einige Funktionen werden nicht unterstützt. | Mit Magien können nur Abfragen ausgeführt werden. Verwenden Sie für andere BigQuery-Funktionen das Befehlszeilentool oder die Methode google.cloud.bigquery.Client. |
Abfrageergebnisse speichern | Abfrageergebnisse können über die Abfragemagie in einer Zieltabelle gespeichert werden, jedoch nicht in einer Variablen. Zum Speichern der Abfrageergebnisse für eine Variable führen Sie die Abfrage mit Python anstelle von Magien aus (siehe Beispiel). | Abfrageergebnisse können über die Abfragemagie in einer Variablen gespeichert werden, jedoch nicht in einer Zieltabelle. Zum Speichern der Abfrageergebnisse in einer Zieltabelle führen Sie die Abfrage mit Python anstelle von Magien aus (siehe Beispiel). |
Python-Clientbibliothek installieren
Geben Sie den folgenden Befehl in Ihrem Notebook ein, um die BigQuery-Clientbibliothek zusammen mit den Abhängigkeiten zu installieren, die für die Arbeit mit pandas-DataFrames erforderlich sind:
!pip install --upgrade google-cloud-bigquery[pandas,pyarrow]
Magien laden
Jupyter-Magien sind Notebook-spezifische Verknüpfungen, mit denen Sie Befehle mit minimaler Syntax ausführen können. In Jupyter-Notebooks sind viele integrierte Befehle vorinstalliert.
Die Python-Pakete datalab
und google-cloud-python
enthalten zusätzliche magische Befehle, die Sie in Jupyter-Notebooks (einschließlich Datalab) laden können, um mit der Google Cloud zu interagieren.
datalab
datalab
-Magien sind in Datalab-Notebooks vorinstalliert. Geben Sie den folgenden Befehl ein, um die Magien in ein Jupyter-Notebook zu laden:
%load_ext google.datalab.kernel
Weitere Optionen zum Laden von Magien finden Sie im datalab
der Bibliothek Quell-Repository.
google-cloud-bigquery
Geben Sie den folgenden Befehl ein, um die BigQuery-Magie zu laden:
%load_ext google.cloud.bigquery
Die BigQuery-Zellmagie funktioniert in jedem Notebook, in dem das Paket google-cloud-bigquery
installiert ist. Sie benötigen eine Clientbibliothek ab Version 0.32.0, um Zellmagien verwenden zu können.
Abfragen ausführen
Die folgenden Beispiele zeigen, wie Sie mit einer Zellmagie eine Abfrage ausführen. In beiden Beispielen wird die Abfrage ausgeführt und die Ergebnisse werden unter der Eingabezelle angezeigt.
datalab
google-cloud-bigquery
Abfrage ausführen und Ergebnisse in einer Variablen speichern
Das folgende Beispiel zeigt, wie Sie eine Abfrage ausführen und die Ergebnisse in einer Variablen mit dem Namen my_variable
speichern können.
datalab
datalab
kann eine SQL-Abfrage gespeichert werden, ohne sie auszuführen. Dazu wird ein Name mit dem Flag --name
oder -n
übergeben.
google-cloud-bigquery
Parametrisierte Abfrage ausführen
Das folgende Beispiel zeigt, wie eine parametrisierte Abfrage ausgeführt wird. Bei einer parametrisierten Abfrage können Sie Abfrageparameter definieren und die Abfrage in separaten Zellen ausführen. Weitere Informationen finden Sie unter Parametrisierte Abfragen ausführen.
datalab
google-cloud-bigquery
Weitere Befehle
Die Bibliothek datalab
bietet für viele Arten von BigQuery-Vorgängen Magien, während die Bibliothek google-cloud-bigquery
nur eine einzige Zellmagie zum Ausführen von Abfragen enthält. Verwenden Sie das bq
-Befehlszeilentool, um andere Befehle als Abfragen auszuführen. In folgenden Beispielen wird veranschaulicht, wie mit einer datalab
-Zellmagie oder einem BigQuery-Shell-Befehl alle Tabellen im Dataset samples
des Projekts bigquery-public-data
aufgelistet werden können.
datalab
bq
-Befehlszeilentool
Das bq
-Befehlszeilentool wird als Teil des Cloud SDK installiert. Informationen für den Einstieg finden Sie in der Cloud SDK-Installationsanleitung.
Beachten Sie, dass den Shell-Befehlen in einem Notebook das Zeichen !
vorangestellt werden muss. Wenn das bq
-Befehlszeilentool eingerichtet und in Ihrem Notebook verfügbar ist, geben Sie den folgenden Befehl ein. Dieser Befehl entspricht der oben beschriebenen datalab
-Zellmagie.
!bq ls bigquery-public-data:samples
Geben Sie Folgendes ein, um eine vollständige Liste der Befehle aufzurufen:
!bq help
Python-Code verwenden
Neben Jupyter-Magien können Sie BigQuery-Vorgänge auch mit Python-Methoden in den Paketen datalab
und google-cloud-bigquery
ausführen.
Abfrage ausführen
Beide Bibliotheken unterstützen die Ausführung von Abfragen und die Rückgabe der Ergebnisse als pandas-DataFrame.
datalab
google-cloud-bigquery
Daten in eine BigQuery-Tabelle laden
Das folgende Beispiel zeigt, wie Sie ein neues Dataset erstellen und Daten aus einer in Cloud Storage gespeicherten CSV-Datei in eine neue Tabelle laden.
datalab
google-cloud-bigquery
Weitere Beispiele zur Verwendung der BigQuery-Python-Clientbibliothek finden Sie unter Daten im Batch laden und Daten in BigQuery streamen.
Einen pandas DataFrame in eine BigQuery-Tabelle laden
Das folgende Beispiel zeigt, wie Sie ein neues Dataset erstellen und Daten aus einem pandas-DataFrame in eine neue Tabelle laden.
Für bestimmte BigQuery-Vorgänge, z. B. zum Erstellen eines Datasets, werden Standorte benötigt. Wenn bei der Initialisierung eines google-cloud-bigquery
-Clients ein Standort festgelegt wird, ist dies der Standardstandort für Jobs, Datasets und Tabellen, die mit dem Client erstellt werden. Die Bibliothek datalab
bietet keine Möglichkeit, Standorte für Datasets oder Jobs festzulegen, was zu unerwartetem Verhalten führen kann. Weitere Informationen finden Sie unter Dataset-Standorte.
datalab
datalab
führt eine Streaming-Insert-Anweisung aus, wenn Daten aus einem pandas-DataFrame in eine BigQuery-Tabelle geladen werden. Aus diesem Grund stehen die Daten möglicherweise nicht sofort für Abfragen zur Verfügung. Weitere Informationen finden Sie unter Daten in BigQuery streamen.