Daten mit dem bq-Tool laden und abfragen
Hier erfahren Sie, wie Sie mit dem bq-Befehlszeilentool Datasets erstellen, Beispieldaten laden und Tabellen abfragen.
Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.
Hinweis
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Die BigQuery API muss aktiviert sein.
Wenn Sie ein neues Projekt erstellt haben, wird die BigQuery API automatisch aktiviert.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Wenn Sie die Abrechnung für das Google Cloud-Projekt, das Sie in dieser Anleitung verwenden, nicht aktivieren, arbeiten Sie mit Daten in der BigQuery-Sandbox. Mit der BigQuery-Sandbox können Sie BigQuery mit einer begrenzten Anzahl von BigQuery-Features kostenlos nutzen.
Öffentliche Quelldatendatei herunterladen
- Laden Sie die Datei baby names.zip herunter.
- Extrahieren Sie die ZIP-Datei. Es enthält eine Datei namens
NationalReadMe.pdf
, die das Dataset-Schema beschreibt. Weitere Informationen zum Dataset mit Babynamen - Öffnen Sie die Datei
yob2010.txt
. Es handelt sich um eine CSV-Datei mit drei Spalten: Name, das zugewiesene Geschlecht und die Anzahl der Kinder mit diesem Namen. Die Datei hat keine Kopfzeile. - Verschieben Sie die Datei in Ihr Arbeitsverzeichnis.
- Wenn Sie in Cloud Shell arbeiten, klicken Sie auf
yob2010.txt
und klicken Sie dann auf Hochladen. - Wenn Sie in einer lokalen Shell arbeiten, kopieren oder verschieben Sie die Datei
yob2010.txt
in das Verzeichnis, in dem Sie das -Tool ausführen.
- Wenn Sie in Cloud Shell arbeiten, klicken Sie auf
Dataset erstellen
Erstellen Sie ein Dataset mit dem Namen
babynames
:bq mk babynames
Die Ausgabe sieht etwa so aus:
Dataset 'myproject:babynames' successfully created.
Der Name des Datasets kann bis zu 1.024 Zeichen enthalten und aus A-Z, a-z, 0–9 und dem Unterstrich bestehen. Der Name darf nicht mit einer Zahl oder einem Unterstrich beginnen und keine Leerzeichen enthalten.
Prüfen Sie, ob das Dataset
babynames
jetzt in Ihrem Projekt angezeigt wird:bq ls
Die Ausgabe sieht etwa so aus:
datasetId ------------- babynames
Daten in eine Tabelle laden
Laden Sie im Dataset
babynames
die Quelldateiyob2010.txt
in eine neue Tabelle mit dem Namennames2010
:bq load babynames.names2010 yob2010.txt name:string,assigned_sex_at_birth:string,count:integer
Die Ausgabe sieht etwa so aus:
Upload complete. Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONE
In BigQuery werden standardmäßig UTF-8-codierte Daten erwartet. Wenn Sie Daten in ISO-8859-1 (oder Latin-1)-Codierung vorliegen und Probleme auftreten, weisen Sie BigQuery an, Ihre Daten mit
bq load -E=ISO-8859-1
als Latin-1 zu verarbeiten. Weitere Informationen finden Sie unter Codierung.Prüfen Sie, ob die Tabelle
names2010
nun im Datasetbabynames
angezeigt wird:bq ls babynames
Die entsprechende Ausgabe sieht etwa so aus: Einige Spalten werden weggelassen, um die Ausgabe zu vereinfachen.
tableId Type ----------- --------- names2010 TABLE
Bestätigen Sie, dass das Tabellenschema Ihrer neuen
names2010
-Tabellename: string
,assigned_sex_at_birth: string
undcount: integer
ist:bq show babynames.names2010
Die entsprechende Ausgabe sieht etwa so aus: Einige Spalten werden weggelassen, um die Ausgabe zu vereinfachen.
Last modified Schema Total Rows Total Bytes ----------------- ------------------------------- ------------ ------------ 14 Mar 17:16:45 |- name: string 34089 654791 |- assigned_sex_at_birth: string |- count: integer
Tabellendaten abfragen
Ermitteln Sie die beliebtesten Mädchennamen in den Daten:
bq query --use_legacy_sql=false \ 'SELECT name, count FROM `babynames.names2010` WHERE assigned_sex_at_birth = "F" ORDER BY count DESC LIMIT 5;'
Die Ausgabe sieht etwa so aus:
+----------+-------+ | name | count | +----------+-------+ | Isabella | 22925 | | Sophia | 20648 | | Emma | 17354 | | Olivia | 17030 | | Ava | 15436 | +----------+-------+
Ermitteln Sie anhand der Daten die am wenigsten beliebtesten Jungennamen:
bq query --use_legacy_sql=false \ 'SELECT name, count FROM `babynames.names2010` WHERE assigned_sex_at_birth = "M" ORDER BY count ASC LIMIT 5;'
Die Ausgabe sieht etwa so aus:
+----------+-------+ | name | count | +----------+-------+ | Aamarion | 5 | | Aarian | 5 | | Aaqib | 5 | | Aaidan | 5 | | Aadhavan | 5 | +----------+-------+
Namen, die weniger als fünfmal vorkommen, werden in den Quelldaten nicht berücksichtigt, weshalb die Mindesthäufigkeit hier fünf beträgt.
Bereinigen
Löschen Sie das Google Cloud-Projekt mit den Ressourcen, damit Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
Projekt löschen
Wenn Sie das öffentliche Dataset mit der BigQuery-Sandbox abgefragt haben, ist die Abrechnung für Ihr Projekt nicht aktiviert.Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.
So löschen Sie das Projekt:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Ressourcen löschen
Wenn Sie ein vorhandenes Projekt verwendet haben, löschen Sie die erstellten Ressourcen:
Löschen Sie das Dataset
babynames
.bq rm --recursive=true babynames
Das Flag
--recursive
löscht alle Tabellen im Dataset, einschließlich der Tabellenames2010
.Die Ausgabe sieht etwa so aus:
rm: remove dataset 'myproject:babynames'? (y/N)
Geben Sie
y
ein, um den Löschbefehl zu bestätigen.