arrow_back

BigQuery mit Dataproc Serverless für Spark laden

Anmelden Teilnehmen
Zugriff auf über 700 Labs und Kurse nutzen

BigQuery mit Dataproc Serverless für Spark laden

Lab 45 Minuten universal_currency_alt 5 Guthabenpunkte show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Zugriff auf über 700 Labs und Kurse nutzen

Übersicht

Dataproc Serverless ist ein vollständig verwalteter Dienst, mit dem sich Open-Source-Datenverarbeitungs- und Analysearbeitslasten einfacher ausführen lassen, ohne dass Sie die Infrastruktur verwalten oder Arbeitslasten manuell abstimmen müssen.

Dank der optimierten Umgebung von Dataproc Serverless für Spark können Sie vorhandene Spark-Arbeitslasten ganz einfach zu Google Cloud migrieren.

In diesem Lab führen Sie eine Batch-Arbeitslast in einer Dataproc Serverless-Umgebung aus. Die Arbeitslast verwendet eine Spark-Vorlage, um eine Avro-Datei zu verarbeiten und eine BigQuery-Tabelle zu erstellen und zu laden.

Aufgaben

  • Umgebung konfigurieren
  • Lab-Assets herunterladen
  • Spark-Code konfigurieren und ausführen
  • Daten in BigQuery ansehen

Einrichtung

Vor dem Klick auf „Lab starten“

Hinweis: Bitte lesen Sie sich diese Anleitung durch.

Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Qwiklabs-Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Voraussetzungen

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
  • Genügend Zeit, um das Lab abzuschließen
Hinweis: Auch wenn Sie bereits ein eigenes Google Cloud-Konto oder ‑Projekt haben, sollten Sie es nicht für das Lab verwenden. Hinweis: Wenn Sie ein Pixelbook verwenden, führen Sie dieses Lab in einem Inkognitofenster aus.

Lab starten und bei der Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite sehen Sie ein Feld, in dem Ihre temporären Anmeldedaten für dieses Lab angezeigt werden.

    Feld für Anmeldedaten

  2. Kopieren Sie den Nutzernamen und klicken Sie dann auf Google Console öffnen. Im Lab werden Ressourcen aktiviert und ein neuer Tab mit der Seite Konto auswählen wird geöffnet.

    Tipp: Öffnen Sie die Tabs nebeneinander in separaten Fenstern.
  3. Klicken Sie auf der Seite „Konto auswählen“ auf Anderes Konto verwenden. Die Anmeldeseite wird geöffnet.

    Dialogfeld zum Auswählen eines Kontos mit hervorgehobener Option „Anderes Konto verwenden“

  4. Fügen Sie den Nutzernamen ein, den Sie aus dem Feld mit den Verbindungsinformationen kopiert haben. Kopieren Sie dann das Passwort und fügen Sie es ein.

Hinweis: Sie müssen die Anmeldedaten aus dem Feld mit den Verbindungsinformationen verwenden. Bitte geben Sie nicht Ihre Anmeldedaten für Google Cloud Skills Boost ein. Auch wenn Sie bereits ein eigenes Google Cloud-Konto haben, sollten Sie es nicht für dieses Lab verwenden, um Gebühren zu vermeiden.
  1. Klicken Sie sich durch die nachfolgenden Seiten:
  • Akzeptieren Sie die Nutzungsbedingungen.
  • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
  • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie sich eine Liste der Google Cloud-Produkte und ‑Dienste ansehen möchten, klicken Sie oben links auf das Navigationsmenü. Cloud Console-Menü

Google Cloud Shell aktivieren

Google Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud.

Mit Google Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie in der Cloud Console in der rechten oberen Symbolleiste auf „Cloud Shell öffnen“.

    Hervorgehobenes Cloud Shell-Symbol

  2. Klicken Sie auf Weiter.

Die Bereitstellung und Verbindung mit der Umgebung dauert einen kleinen Moment. Wenn Sie verbunden sind, sind Sie auch bereits authentifiziert und das Projekt ist auf Ihre PROJECT_ID eingestellt. Beispiel:

Hervorgehobene Projekt-ID im Cloud Shell-Terminal

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  • Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list

Ausgabe:

Konten mit Anmeldedaten: - @.com (aktiv)

Beispielausgabe:

Konten mit Anmeldedaten: - google1623327_student@qwiklabs.net
  • Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] Projekt =

Beispielausgabe:

[core] Projekt = qwiklabs-gcp-44776a13dea667a6 Hinweis: Die vollständige Dokumentation zu gcloud finden Sie in der Übersicht zur gcloud CLI.

Aufgabe 1: Umgebung konfigurieren

Zuerst führen Sie einige Aufgaben zur Konfiguration der Umgebung aus, um die Ausführung einer Dataproc Serverless-Arbeitslast zu unterstützen.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um den Zugriff über private IP-Adressen zu aktivieren:
gcloud compute networks subnets update default --region={{{project_0.default_region |REGION}}} --enable-private-ip-google-access
  1. Erstellen Sie mit dem folgenden Befehl einen neuen Cloud Storage-Bucket als Staging-Speicherort:
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}
  1. Erstellen Sie mit dem folgenden Befehl einen neuen Cloud Storage-Bucket als temporären Speicherort für BigQuery, während eine Tabelle erstellt und geladen wird:
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}-bqtemp
  1. Erstellen Sie ein BigQuery-Dataset zum Speichern der Daten.
bq mk -d loadavro Umgebung konfigurieren

Aufgabe 2: Lab-Assets herunterladen

Als Nächstes laden Sie einige Assets, die Sie zum Abschließen des Labs benötigen, auf die für das Lab bereitgestellte Compute Engine-VM herunter. Die restlichen Schritte des Labs führen Sie in der Compute Engine-VM aus.

  1. Klicken Sie im Navigationsmenü auf Compute Engine. Hier sehen Sie eine für Sie bereitgestellte Linux-VM. Klicken Sie neben der Instanz lab-vm auf die Schaltfläche SSH.

Seite „GCE-VM-Instanz“

  1. Laden Sie am VM-Terminal-Prompt die Avro-Datei herunter, die zur Speicherung in BigQuery verarbeitet wird.
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/campaigns.avro
  1. Verschieben Sie anschließend die Avro-Datei in den zuvor erstellten Cloud-Storage-Bucket für das Staging.
gcloud storage cp campaigns.avro gs://{{{project_0.project_id |PROJECT_ID}}}
  1. Laden Sie ein Archiv mit dem Spark-Code herunter, der in der serverlosen Umgebung ausgeführt werden soll:
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/dataproc-templates.zip
  1. Extrahieren Sie das Archiv:
unzip dataproc-templates.zip
  1. Wechseln Sie zum Python-Verzeichnis.
cd dataproc-templates/python Lab-Assets herunterladen

Aufgabe 3: Spark-Code konfigurieren und ausführen

In dieser Aufgabe legen Sie einige Umgebungsvariablen im Terminal der VM-Instanz fest und führen eine Spark-Vorlage aus, um Daten in BigQuery zu laden.

  1. Legen Sie die folgenden Umgebungsvariablen für die Dataproc Serverless-Umgebung fest:
export GCP_PROJECT={{{project_0.project_id |PROJECT_ID}}} export REGION={{{project_0.default_region |REGION}}} export GCS_STAGING_LOCATION=gs://{{{project_0.project_id |PROJECT_ID}}} export JARS=gs://cloud-training/dataengineering/lab_assets/idegc/spark-bigquery_2.12-20221021-2134.jar
  1. Führen Sie den folgenden Code aus, um die Spark-Vorlage „Cloud Storage to BigQuery“ auszuführen und die Avro-Datei in BigQuery zu laden.
./bin/start.sh \ -- --template=GCSTOBIGQUERY \ --gcs.bigquery.input.format="avro" \ --gcs.bigquery.input.location="gs://{{{project_0.project_id |PROJECT_ID}}}" \ --gcs.bigquery.input.inferschema="true" \ --gcs.bigquery.output.dataset="loadavro" \ --gcs.bigquery.output.table="campaigns" \ --gcs.bigquery.output.mode=overwrite\ --gcs.bigquery.temp.bucket.name="{{{project_0.project_id |PROJECT_ID}}}-bqtemp" Hinweis: Sie können Warnungen wie diese ruhig ignorieren: WARN FileStreamSink: Assume no metadata directory. Error while looking for metadata directory in the path... Da es sich um einen kleinen Test handelt, ist kein Metadatenverzeichnis erforderlich. Hinweis: Wenn Sie eine Fehlermeldung dazu erhalten, dass der Batch-Job fehlgeschlagen ist, warten Sie kurz und führen Sie den Befehl dann noch einmal aus, bis der Job erfolgreich ist. Spark-Code konfigurieren und ausführen

Aufgabe 4: Prüfen, ob die Daten in BigQuery geladen wurden

Nachdem Sie die Spark-Vorlage erfolgreich ausgeführt haben, können Sie nun die Ergebnisse in BigQuery prüfen.

  1. Sehen Sie sich die Daten in der neuen Tabelle in BigQuery an.
bq query \ --use_legacy_sql=false \ 'SELECT * FROM `loadavro.campaigns`;'
  1. Die Abfrage sollte Ergebnisse ähnlich den folgenden zurückgeben:

Beispielausgabe:

+------------+--------+---------------------+--------+---------------------+----------+-----+ | created_at | period | campaign_name | amount | advertising_channel | bid_type | id | +------------+--------+---------------------+--------+---------------------+----------+-----+ | 2020-09-17 | 90 | NA - Video - Other | 41 | Video | CPC | 81 | | 2021-01-19 | 30 | NA - Video - Promo | 325 | Video | CPC | 137 | | 2021-06-28 | 30 | NA - Video - Promo | 78 | Video | CPC | 214 | | 2021-03-15 | 30 | EU - Search - Brand | 465 | Search | CPC | 170 | | 2022-01-01 | 30 | EU - Search - Brand | 83 | Search | CPC | 276 | | 2020-02-18 | 30 | EU - Search - Brand | 30 | Search | CPC | 25 | | 2021-06-08 | 30 | EU - Search - Brand | 172 | Search | CPC | 201 | | 2020-11-29 | 60 | EU - Search - Other | 83 | Search | CPC | 115 | | 2021-09-11 | 30 | EU - Search - Other | 86 | Search | CPC | 237 | | 2022-02-17 | 30 | EU - Search - Other | 64 | Search | CPC | 296 | +------------+--------+---------------------+--------+---------------------+----------+-----+ Prüfen, ob die Daten in BigQuery geladen wurden

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Sie haben eine Batch-Arbeitslast mit Dataproc Serverless für Spark ausgeführt, um eine Avro-Datei in eine BigQuery-Tabelle zu laden.

© 2021 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Vorbereitung

  1. Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
  2. Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
  3. Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen

Privates Surfen verwenden

  1. Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
  2. Klicken Sie im privaten Modus auf Konsole öffnen

In der Konsole anmelden

  1. Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
  2. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
  3. Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail

Es ist immer nur ein Lab möglich

Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten

Privates Surfen für das Lab verwenden

Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.