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 wissen Sie, was bq ist und wie Sie über eine CLI 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
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch 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.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Aktivieren Sie die BigQuery API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von RollenBei neuen Projekten ist die BigQuery API automatisch aktiviert.
- Optional: Aktivieren Sie die Abrechnung für das Projekt. Die Abrechnung funktioniert auch dann, wenn Sie die Abrechnung nicht aktivieren oder keine Kreditkarte angeben möchten. BigQuery bietet Ihnen eine Sandbox zum Ausführen dieser Schritte. Weitere Informationen finden Sie unter BigQuery-Sandbox aktivieren.
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Datasets, zum Erstellen einer Tabelle, zum Laden von Daten und zum Abfragen von Daten benötigen:
-
Ladejobs und Abfragejobs ausführen:
BigQuery-Jobnutzer (
roles/bigquery.jobUser) -
Dataset erstellen, Tabelle erstellen, Daten in eine Tabelle laden und Tabelle abfragen:
BigQuery-Dateneditor (
roles/bigquery.dataEditor)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
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.
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.zipExtrahieren 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
Mehr Hochladen, klicken Sie auf Dateien auswählen und auf die Optionyob2024.txtund klicken Sie dann auf Hochladen.Wenn Sie in einer lokalen Shell arbeiten, kopieren oder verschieben Sie die Datei
yob2024.txtin das Verzeichnis, in dem Sie das -Tool ausführen.
Dataset erstellen
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_IDErsetzen Sie PROJECT_ID durch Ihre Projekt-ID.
Geben Sie den folgenden Befehl ein, um ein Dataset mit dem Namen
babynameszu erstellen:bq mk --dataset babynamesDie Ausgabe sieht etwa so aus:
Dataset 'babynames' successfully created.Prüfen Sie, ob das Dataset
babynamesjetzt in Ihrem Projekt angezeigt wird:bq ls --datasets=trueDie Ausgabe sieht etwa so aus:
datasetId ------------- babynames
Daten in eine Tabelle laden
Laden Sie im Dataset
babynamesdie Quelldateiyob2024.txtin eine neue Tabelle mit dem Namennames2024:bq load babynames.names2024 yob2024.txt name:string,assigned_sex_at_birth:string,count:integerDie Ausgabe sieht etwa so aus:
Upload complete. Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONEPrüfen Sie, ob die Tabelle
names2024nun im Datasetbabynamesangezeigt wird:bq ls --format=pretty babynamesDie 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: stringundcount: integerist:bq show babynames.names2024Die 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
Tabellendaten abfragen
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 DESCLIMIT 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 ASCLIMIT 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.
Bereinigen
Löschen Sie das Projekt von Google Cloud zusammen mit den Ressourcen, damit Ihrem Konto von Google Cloud 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:
- Wechseln Sie in der Google 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.
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 babynamesDas Flag
--recursivelöscht alle Tabellen im Dataset, einschließlich der Tabellenames2024.Die Ausgabe sieht etwa so aus:
rm: remove dataset 'myproject:babynames'? (y/N)Geben Sie
yein, um den Löschbefehl zu bestätigen.