Daten in BigQuery mit JupyterLab untersuchen und visualisieren

Auf dieser Seite finden Sie einige Beispiele zum Untersuchen und Visualisieren von in BigQuery gespeicherten Daten über die JupyterLab-Oberfläche der verwalteten Vertex AI Workbench-Notebookinstanz.

JupyterLab öffnen

  1. Rufen Sie in der Google Cloud Console die Seite Verwaltete Notebooks auf.

    Zu "Verwaltete Notebooks"

  2. Klicken Sie neben dem Namen der verwalteten Notebook-Instanz auf JupyterLab öffnen.

    Ihre verwaltete Notebook-Instanz öffnet JupyterLab.

Daten aus BigQuery lesen

In den nächsten beiden Abschnitten lesen Sie Daten aus BigQuery, die Sie später zur Visualisierung verwenden werden. Diese Schritte sind identisch mit denen in Daten in BigQuery in JupyterLab abfragen. Wenn Sie sie also bereits abgeschlossen haben, können Sie mit dem nächsten Schritt fortfahren: Zusammenfassung der Daten in einer BigQuery-Tabelle abrufen.

Daten mit dem magischen %%bigquery-Befehl abfragen

In diesem Abschnitt schreiben Sie SQL direkt in Notebook-Zellen und schreiben Daten aus BigQuery in das Python-Notebook.

Mit magischen Befehlen, die ein einzelnes oder doppeltes Prozentzeichen (% oder %%) verwenden, nutzen Sie eine minimale Syntax zur Interaktion mit BigQuery im Notebook. Die BigQuery-Clientbibliothek für Python wird in verwalteten Notebooks-Instanzen automatisch installiert. Im Hintergrund verwendet der magische Befehl %%bigquery die BigQuery-Clientbibliothek für Python, um die angegebene Abfrage auszuführen. Die Ergebnisse werden in ein Pandas-DataFrame umgewandelt und optional in einer Variablen gespeichert. Anschließend werden die Ergebnisse angezeigt.

Hinweis: Ab Version 1.26.0 des Python-Pakets google-cloud-bigquery wird die BigQuery Storage API standardmäßig verwendet, um Ergebnisse aus den magischen %%bigquery-Befehlen herunterzuladen.

  1. Wählen Sie zum Öffnen einer Notebook-Datei Datei > Neu > Notebook aus.

  2. Wählen Sie im Dialogfeld Kernel auswählen die Option Python und klicken Sie dann auf Auswählen.

    Ihre neue IPYNB-Datei wird geöffnet.

  3. Geben Sie folgende Anweisung ein, um die Anzahl der Regionen nach Land im Dataset international_top_terms abzurufen:

    %%bigquery
    SELECT
      country_code,
      country_name,
      COUNT(DISTINCT region_code) AS num_regions
    FROM
      `bigquery-public-data.google_trends.international_top_terms`
    WHERE
      refresh_date = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)
    GROUP BY
      country_code,
      country_name
    ORDER BY
      num_regions DESC;
  4. Klicken Sie auf  Zelle ausführen.

    Die Ausgabe sieht in etwa so aus:

    Query complete after 0.07s: 100%|██████████| 4/4 [00:00<00:00, 1440.60query/s]
    Downloading: 100%|██████████| 41/41 [00:02<00:00, 20.21rows/s]
    country_code      country_name    num_regions
    0   TR  Turkey         81
    1   TH  Thailand       77
    2   VN  Vietnam        63
    3   JP  Japan          47
    4   RO  Romania        42
    5   NG  Nigeria        37
    6   IN  India          36
    7   ID  Indonesia      34
    8   CO  Colombia       33
    9   MX  Mexico         32
    10  BR  Brazil         27
    11  EG  Egypt          27
    12  UA  Ukraine        27
    13  CH  Switzerland    26
    14  AR  Argentina      24
    15  FR  France         22
    16  SE  Sweden         21
    17  HU  Hungary        20
    18  IT  Italy          20
    19  PT  Portugal       20
    20  NO  Norway         19
    21  FI  Finland        18
    22  NZ  New Zealand    17
    23  PH  Philippines    17
    ...
    
  5. Geben Sie in die nächste Zelle (unter der Ausgabe der vorherigen Zelle) den folgenden Befehl ein, um dieselbe Abfrage auszuführen. Dieses Mal speichern Sie die Ergebnisse jedoch in einem neuen Pandas-DataFrame namens regions_by_country. Sie geben diesen Namen über ein Argument mit dem magischen Befehl %%bigquery an.

    %%bigquery regions_by_country
    SELECT
      country_code,
      country_name,
      COUNT(DISTINCT region_code) AS num_regions
    FROM
      `bigquery-public-data.google_trends.international_top_terms`
    WHERE
      refresh_date = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)
    GROUP BY
      country_code, country_name
    ORDER BY
      num_regions DESC;

    Hinweis: Weitere Informationen zu verfügbaren Argumenten für den %%bigquery-Befehl finden Sie in der Clientbibliothek-Dokumentation der magischen Befehle.

  6. Klicken Sie auf  Zelle ausführen.

  7. Geben Sie in die nächste Zelle folgenden Befehl ein, um die ersten Zeilen der Abfrageergebnisse aufzurufen, die Sie gerade eingelesen haben:

    regions_by_country.head()
    
  8. Klicken Sie auf  Zelle ausführen.

    Der Pandas-DataFrame regions_by_country kann jetzt dargestellt werden.

Daten über die BigQuery-Clientbibliothek direkt abfragen

<

Zusammenfassung der Daten in einer BigQuery-Tabelle abrufen

In diesem Abschnitt verwenden Sie eine Notebook-Verknüpfung, um zusammenfassende Statistiken und Visualisierungen für alle Felder einer BigQuery-Tabelle abzurufen. So können Sie Ihre Daten schnell profilieren, bevor Sie sich weiter mit ihnen befassen.

Die BigQuery-Clientbibliothek stellt den magischen Befehl %bigquery_stats bereit, den Sie mit einem bestimmten Tabellennamen aufrufen können, um eine Übersicht über die Tabelle und detaillierte Statistiken für alle Spalten der Tabelle bereitzustellen.

  1. Geben Sie in die nächste Zelle folgenden Code ein, um diese Analyse in der Tabelle top_terms für die USA auszuführen:

    %bigquery_stats bigquery-public-data.google_trends.top_terms
    
  2. Klicken Sie auf  Zelle ausführen.

    Nach einiger Zeit wird ein Bild mit verschiedenen Statistiken zu jeder der sieben Variablen in der Tabelle top_terms angezeigt. Die folgende Abbildung zeigt einen Teil einer Beispielausgabe:

    Internationale Top-Suchbegriffe: Übersicht über Statistiken.

BigQuery-Daten visualisieren

In diesem Abschnitt verwenden Sie Darstellungsfunktionen, um die Ergebnisse der Abfragen zu visualisieren, die Sie zuvor in Ihrem Jupyter-Notebook ausgeführt haben.

  1. Geben Sie in die nächste Zelle folgenden Code ein, um mit der Pandas-Methode DataFrame.plot() ein Balkendiagramm zu erstellen, das die Ergebnisse der Abfrage visualisiert, die die Anzahl der Regionen nach Land zurückgibt:

    regions_by_country.plot(kind="bar", x="country_name", y="num_regions", figsize=(15, 10))
    
  2. Klicken Sie auf  Zelle ausführen.

    Das Diagramm sieht etwa so aus:

    Internationale Ergebnisse der Top-Suchbegriffe nach Ländern

  3. Geben Sie in die nächste Zelle folgenden Code ein, um mit der Pandas-Methode DataFrame.plot() ein Streudiagramm zu erstellen, mit dem die Ergebnisse der Abfrage für den Prozentsatz der Überschneidung der wichtigsten Begriffe visualisiert werden, wobei der Abstand nach Tagen berücksichtigt wird:

    pct_overlap_terms_by_days_apart.plot(
      kind="scatter",
      x="days_apart",
      y="pct_overlap_terms",
      s=len(pct_overlap_terms_by_days_apart["num_date_pairs"]) * 20,
      figsize=(15, 10)
      )
    
  4. Klicken Sie auf  Zelle ausführen.

    Das Diagramm sieht etwa so aus: Die Größe jedes Punkts gibt die Anzahl der Datumspaare an, die um jeweils eine bestimmt Anzahl an Tage auseinander liegen. Es gibt beispielsweise mehr Paare, die 1 Tag als 30 Tage auseinander liegen, da die häufigsten Suchbegriffe täglich über etwa einen Monat angezeigt werden.

    Diagramm mit internationalen Top-Suchbegriffen, nach Abstand in Tagen.

Weitere Informationen zur Datenvisualisierung finden Sie in der Pandas-Dokumentation.