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 Befehlszeile 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:

Anleitung


Hinweis

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.

  6. Enable the BigQuery API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

    Bei neuen Projekten ist die BigQuery API automatisch aktiviert.

  7. 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.
  8. In the Google Cloud console, activate Cloud Shell.

    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.

    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:

    • Lade- 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.

    1. 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
      
    2. Extrahieren Sie die Datei.

      Weitere Informationen zum Dataset-Schema finden Sie in der NationalReadMe.pdf-Datei, die Sie extrahiert haben.

    3. 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.

    4. 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 Option 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.

    Dataset erstellen

    1. 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.

    1. 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.
      
    2. 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
      

    Daten in eine Tabelle laden

    1. Laden Sie im Dataset babynames die Quelldatei yob2024.txt in eine neue Tabelle mit dem Namen names2024:

      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
      
    2. Prüfen Sie, ob die Tabelle names2024 nun im Dataset babynames 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 |
      +-----------+-------+
      
    3. Bestätigen Sie, dass das Tabellenschema Ihrer neuen names2024-Tabelle name: string, assigned_sex_at_birth: string und count: 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
      

    Tabellendaten abfragen

    1. 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 |
      +-----------+-------+
      
    2. 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.

    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:

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. 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:

    1. Löschen Sie das Dataset babynames.

      bq rm --recursive=true babynames
      

      Das Flag --recursive löscht alle Tabellen im Dataset, einschließlich der Tabelle names2024.

      Die Ausgabe sieht etwa so aus:

      rm: remove dataset 'myproject:babynames'? (y/N)
      
    2. Geben Sie y ein, um den Löschbefehl zu bestätigen.

    Nächste Schritte