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.

Anleitung


Hinweis

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  4. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

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

  6. Die BigQuery API muss aktiviert sein.

    API aktivieren

    Wenn Sie ein neues Projekt erstellt haben, wird die BigQuery API automatisch aktiviert.

  7. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    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.

Öffentliche Quelldatendatei herunterladen

  1. Laden Sie die Datei baby names.zip herunter.
  2. Extrahieren Sie die ZIP-Datei. Es enthält eine Datei namens NationalReadMe.pdf, die das Dataset-Schema beschreibt. Weitere Informationen zum Dataset mit Babynamen
  3. Ö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.
  4. Verschieben Sie die Datei in Ihr Arbeitsverzeichnis.
    • Wenn Sie in Cloud Shell arbeiten, klicken Sie auf Mehr >Hochladen, klickenDateien auswählen die Option 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.

Dataset erstellen

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

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

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

    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.

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

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

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. 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:

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

    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