bq-Tool verwenden
In dieser Anleitung erfahren Sie, wie Sie bq
, das Python-basierte Befehlszeilentool (Command-Line Interface, CLI) für BigQuery, verwenden, um ein Dataset zu erstellen, Beispieldaten zu laden und Tabellen abzufragen. Nach Abschluss dieser Anleitung kennen Sie bq
und wissen, wie Sie über eine Befehlszeilenschnittstelle mit BigQuery arbeiten.
Eine vollständige Referenz aller bq
-Befehle und -Flags finden Sie in der Referenz zum bq-Befehlszeilentool.
Eine detaillierte Anleitung dazu finden Sie direkt in der Google Cloud Console. Klicken Sie dazu einfach auf Anleitung:
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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify 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.
Laden Sie die Daten der US-amerikanischen Sozialversicherungsbehörde herunter. Öffnen Sie dazu die folgende URL in einem neuen Browsertab:
https://www.ssa.gov/OACT/babynames/names.zip
Extrahieren Sie die Datei.
Weitere Informationen zum Dataset-Schema finden Sie in der
NationalReadMe.pdf
-Datei, die Sie extrahiert haben.Um sich die Daten anzusehen, öffnen Sie die Datei
yob2024.txt
. Diese Datei enthält kommagetrennte Werte für den Namen, das bei der Geburt 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
yob2024.txt
und klicken Sie dann auf Hochladen.Wenn Sie in einer lokalen Shell arbeiten, kopieren oder verschieben Sie die Datei
yob2024.txt
in das Verzeichnis, in dem Sie das -Tool ausführen.
Wenn Sie Cloud Shell über die Dokumentation gestartet haben, geben Sie den folgenden Befehl ein, um Ihre Projekt-ID festzulegen. So müssen Sie die Projekt-ID nicht in jedem Kommandozeilenbefehl angeben.
gcloud config set project PROJECT_ID
Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.
Geben Sie den folgenden Befehl ein, um ein Dataset mit dem Namen
babynames
zu erstellen:bq mk --dataset babynames
Die Ausgabe sieht etwa so aus:
Dataset 'babynames' successfully created.
Prüfen Sie, ob das Dataset
babynames
jetzt in Ihrem Projekt angezeigt wird:bq ls --datasets=true
Die Ausgabe sieht etwa so aus:
datasetId ------------- babynames
Laden Sie im Dataset
babynames
die Quelldateiyob2024.txt
in eine neue Tabelle mit dem Namennames2024
:bq load babynames.names2024 yob2024.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
Prüfen Sie, ob die Tabelle
names2024
nun im Datasetbabynames
angezeigt wird:bq ls --format=pretty babynames
Die entsprechende Ausgabe sieht etwa so aus: Einige Spalten werden weggelassen, um die Ausgabe zu vereinfachen.
+-----------+-------+ | tableId | Type | +-----------+-------+ | names2024 | TABLE | +-----------+-------+
Bestätigen Sie, dass das Tabellenschema Ihrer neuen
names2024
-Tabellename: string
,assigned_sex_at_birth: string
undcount: integer
ist:bq show babynames.names2024
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 31904 607494 |- assigned_sex_at_birth: string |- count: integer
Ermitteln Sie die beliebtesten Mädchennamen in den Daten:
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "F" ORDER BY count DESC LIMIT 5'
Die Ausgabe sieht etwa so aus:
+-----------+-------+ | name | count | +-----------+-------+ | Olivia | 14718 | | Emma | 13485 | | Amelia | 12740 | | Charlotte | 12552 | | Mia | 12113 | +-----------+-------+
Ermitteln Sie anhand der Daten die am wenigsten beliebtesten Jungennamen:
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "M" ORDER BY count ASC LIMIT 5'
Die Ausgabe sieht etwa so aus:
+---------+-------+ | name | count | +---------+-------+ | Aaran | 5 | | Aadiv | 5 | | Aadarsh | 5 | | Aarash | 5 | | Aadrik | 5 | +---------+-------+
Namen, die weniger als fünfmal vorkommen, werden in den Quelldaten nicht berücksichtigt, weshalb die Mindesthäufigkeit hier fünf beträgt.
- 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.
Löschen Sie das Dataset
babynames
.bq rm --recursive=true babynames
Das Flag
--recursive
löscht alle Tabellen im Dataset, einschließlich der Tabellenames2024
.Die Ausgabe sieht etwa so aus:
rm: remove dataset 'myproject:babynames'? (y/N)
Geben Sie
y
ein, um den Löschbefehl zu bestätigen.
Wenn Sie die Abrechnung für das Google Cloud -Projekt, das Sie in dieser Anleitung verwenden, nicht aktivieren, laden Sie die Daten in die BigQuery-Sandbox hoch und führen dort Abfragen aus. Mit der BigQuery-Sandbox können Sie BigQuery mit einer begrenzten Anzahl von BigQuery-Features kostenlos nutzen.
Datei mit den Quelldaten herunterladen
Die heruntergeladene Datei enthält ca. 7 MB an Daten zu beliebten Babynamen. Sie wird von der US-amerikanischen Sozialversicherungsbehörde bereitgestellt.
Weitere Informationen zu den Daten finden Sie auf der Seite Hintergrundinformation für populäre Namen der US-amerikanischen Sozialversicherungsbehörde.
Dataset erstellen
Daten in eine Tabelle laden
Tabellendaten abfragen
Bereinigen
Löschen Sie das Google Cloud -Projekt zusammen 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 und Sie müssen das Projekt nicht löschen.Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das zum Ausführen der Anleitung erstellte Projekt löschen.
So löschen Sie das Projekt:
Ressourcen löschen
Wenn Sie ein vorhandenes Projekt verwendet haben, löschen Sie die erstellten Ressourcen: