arrow_back

Analisi dei dati serverless con Dataflow: pipeline dataflow semplice (Java)

Accedi Partecipa
Accedi a oltre 700 lab e corsi

Analisi dei dati serverless con Dataflow: pipeline dataflow semplice (Java)

Lab 1 ora 30 minuti universal_currency_alt 5 crediti show_chart Avanzati
info Questo lab potrebbe incorporare strumenti di AI a supporto del tuo apprendimento.
Accedi a oltre 700 lab e corsi

Panoramica

In questo lab imparerai ad aprire un progetto Dataflow, usare i filtri della pipeline ed eseguire la pipeline in locale e sul cloud.

Obiettivi

In questo lab imparerai a scrivere una pipeline Dataflow semplice e a eseguirla sia in locale che sul cloud.

  • Configura un progetto Dataflow in Java usando Maven
  • Scrivi una pipeline semplice in Java
  • Esegui la query sulla macchina locale
  • Esegui la query sul cloud

Configurazione e requisiti

Per ciascun lab, riceverai un nuovo progetto Google Cloud e un insieme di risorse per un periodo di tempo limitato senza alcun costo aggiuntivo.

  1. Accedi a Qwiklabs utilizzando una finestra di navigazione in incognito.

  2. Tieni presente la durata dell'accesso al lab (ad esempio, 1:15:00) e assicurati di finire entro quell'intervallo di tempo.
    Non è disponibile una funzionalità di pausa. Se necessario, puoi riavviare il lab ma dovrai ricominciare dall'inizio.

  3. Quando è tutto pronto, fai clic su Inizia lab.

  4. Annota le tue credenziali del lab (Nome utente e Password). Le userai per accedere a Google Cloud Console.

  5. Fai clic su Apri console Google.

  6. Fai clic su Utilizza un altro account e copia/incolla le credenziali per questo lab nei prompt.
    Se utilizzi altre credenziali, compariranno errori oppure ti verranno addebitati dei costi.

  7. Accetta i termini e salta la pagina di ripristino delle risorse.

Attiva Google Cloud Shell

Google Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud.

Google Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.

  1. Nella barra degli strumenti in alto a destra della console Cloud, fai clic sul pulsante Apri Cloud Shell.

    Icona Cloud Shell in evidenza

  2. Fai clic su Continua.

Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente. Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. Ad esempio:

ID progetto evidenziato nel terminale Cloud Shell

gcloud è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento.

  • Puoi visualizzare il nome dell'account attivo con questo comando:
gcloud auth list

Output:

Credentialed accounts: - @.com (active)

Output di esempio:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Puoi elencare l'ID progetto con questo comando:
gcloud config list project

Output:

[core] project =

Output di esempio:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: la documentazione completa di gcloud è disponibile nella guida Panoramica dell'interfaccia a riga di comando gcloud .

Avviare l'editor di codice di Google Cloud Shell

Utilizza l'editor di codice di Google Cloud Shell per creare e modificare facilmente directory e file nell'istanza di Cloud Shell.

  • Una volta attivato Google Cloud Shell, fai clic su Apri editor per aprire l'editor di codice di Cloud Shell.

Pulsante Apri editor

Ora hai tre interfacce disponibili:

  • L'editor di codice di Cloud Shell
  • Console (facendo clic sulla scheda). Puoi spostarti tra la console e Cloud Shell facendo clic sulla scheda.
  • La riga di comando di Cloud Shell (facendo clic su Apri terminale nella console)

Tre interfacce evidenziate: l'editor di codice di Cloud Shell, la console e la riga di comando di Cloud Shell

Verifica le autorizzazioni del progetto

Prima di iniziare il tuo lavoro su Google Cloud, devi assicurarti che il tuo progetto disponga delle autorizzazioni corrette in Identity and Access Management (IAM).

  1. Nella console Google Cloud, nel menu di navigazione (Icona menu di navigazione), seleziona IAM e amministrazione > IAM.

  2. Conferma che l'account di servizio di computing predefinito {project-number}-compute@developer.gserviceaccount.com sia presente e che abbia il ruolo di editor assegnato. Il prefisso dell'account è il numero del progetto, che puoi trovare in Menu di navigazione > Panoramica di Cloud > Dashboard

Il nome dell'account di servizio predefinito di Compute Engine e lo stato dell'editor evidenziati nella pagina a schede Autorizzazioni

Nota: se l'account non è presente in IAM o non dispone del ruolo editor, attieniti alla procedura riportata di seguito per assegnare il ruolo richiesto.
  1. Nel menu di navigazione della console Google Cloud, fai clic su Panoramica di Cloud > Dashboard.
  2. Copia il numero del progetto (es. 729328892908).
  3. Nel menu di navigazione, seleziona IAM e amministrazione > IAM.
  4. Nella parte superiore della tabella dei ruoli, sotto Visualizza per entità, fai clic su Concedi accesso.
  5. Per Nuove entità, digita:
{project-number}-compute@developer.gserviceaccount.com
  1. Sostituisci {project-number} con il numero del tuo progetto.
  2. Come Ruolo, seleziona Progetto (o Base) > Editor.
  3. Fai clic su Salva.

Attività 1: preparazione

Verifica il bucket e scarica il codice del lab

Per eseguire correttamente questo lab devi completare alcuni passaggi specifici:

  1. Verifica di avere un bucket Cloud Storage (creato automaticamente all'avvio dell'ambiente del lab).

  2. Nella barra del titolo della console Google Cloud, fai clic su Attiva Cloud Shell. Se richiesto, fai clic su Continua. Clona il repository github del codice del lab utilizzando il seguente comando:

git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. In Cloud Shell inserisci il seguente comando per creare due variabili di ambiente, una denominata "BUCKET" e l'altra "REGION". Verifica che esistano entrambe con il comando echo:
BUCKET="{{{project_0.project_id|Project ID}}}-bucket" echo $BUCKET REGION="{{{project_0.default_region|Region}}}" echo $REGION

Assicurati che l'API Dataflow sia abilitata in modo corretto

  1. In Cloud Shell, esegui questi comandi per assicurarti che l'API Dataflow sia abilitata in modo corretto nel tuo progetto.
gcloud services disable dataflow.googleapis.com --force gcloud services enable dataflow.googleapis.com

Attività 2: crea un nuovo progetto Dataflow

L'obiettivo di questo lab è familiarizzare con la struttura di un progetto Dataflow e imparare come eseguire una pipeline Dataflow. Creerai un nuovo progetto Dataflow usando Maven, un potente strumento per build.

  1. Torna alla scheda del browser con Cloud Shell. In Cloud Shell, passa alla directory di questo lab:
cd ~/training-data-analyst/courses/data_analysis/lab2
  1. Copia e incolla il seguente comando di Maven:
mvn archetype:generate \ -DarchetypeArtifactId=google-cloud-dataflow-java-archetypes-starter \ -DarchetypeGroupId=com.google.cloud.dataflow \ -DgroupId=com.example.pipelinesrus.newidea \ -DartifactId=newidea \ -Dversion="[1.0.0,2.0.0]" \ -DinteractiveMode=false
  • Qual è la directory che è stata creata?
  • Quale pacchetto è stato creato nella directory src?
  1. Esamina il comando Maven usato per creare il codice del lab:
cat ~/training-data-analyst/courses/data_analysis/lab2/create_mvn.sh
  • Quale directory verrà creata?
  • Quale pacchetto verrà creato nella directory src?

Attività 3: filtri della pipeline

  1. Nell'editor di codice di Cloud Shell, passa alla directory /training-data-analyst/courses/data_analysis/lab2.

  2. Seleziona il percorso javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/ e visualizza il file Grep.java.

In alternativa, puoi visualizzare il file con l'editor nano. Non apportare modifiche al codice.

cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/ nano Grep.java

Sapresti rispondere a queste domande sul file Grep.java?

  • Quali file vengono letti?
  • Qual è il termine di ricerca?
  • Dove va l'output?

Nella pipeline sono presenti tre istruzioni apply:

  • Cosa fa la prima istruzione apply()?
  • Cosa fa la seconda istruzione apply()?
  • Da dove proviene il suo input?
  • Che cosa fa con questo input?
  • Che cosa scrive sul suo output?
  • Dove va l'output?
  • Che cosa fa la terza istruzione apply()?

Attività 4: esegui la pipeline in locale

  1. Incolla il seguente comando Maven in Cloud Shell:
cd ~/training-data-analyst/courses/data_analysis/lab2 export PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin/:$PATH cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp mvn compile -e exec:java \ -Dexec.mainClass=com.google.cloud.training.dataanalyst.javahelp.Grep
  1. Il file di output sarà output.txt. Se l'output è abbastanza grande, verrà fatto lo sharding in parti separate con nomi quali: output-00000-of-00001. Se necessario, puoi individuare il file corretto esaminando l'ora del file:
ls -al /tmp
  1. Esamina il file di output:
cat /tmp/output*

L'output sembra essere logico?

Attività 5: esegui la pipeline sul cloud

  1. Copia alcuni file Java sul cloud:
gcloud storage cp ../javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/*.java gs://$BUCKET/javahelp
  1. Nell'editor di codice di Cloud Shell, passa alla directory /training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp

  2. Modifica la pipeline di Dataflow nel file Grep.java:

cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp
  1. Sostituisci le variabili di input e output con il nome del tuo bucket. Sostituisci le variabili in questo modo:
String input = "gs://{{{project_0.project_id|Project ID}}}-bucket/javahelp/*.java"; String outputPrefix = "gs://{{{project_0.project_id|Project ID}}}-bucket/javahelp/output"; Nota: assicurati di aver modificato le stringhe input e outputPrefix già presenti nel codice sorgente (non copiare e incollare l'intera riga riportata sopra senza rimuovere le stringhe iniziali, poiché ti ritroveresti con due variabili uguali).

Righe di esempio prima:

String input = "src/main/java/com/google/cloud/training/dataanalyst/javahelp/*.java"; String outputPrefix = "/tmp/output"; </ql-code-block output> Righe di esempio dopo la modifica, con il nome del bucket del tuo progetto: String input = "gs://qwiklabs-gcp-your-value-bucket/javahelp/*.java"; </ql-code-block output> String outputPrefix = "gs://qwiklabs-gcp-your-value-bucket/javahelp/output"; </ql-code-block output> 5. Esamina lo script per inviare il Dataflow al cloud: cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp cat run_oncloud1.sh

Qual è la differenza tra questo comando Maven e quello da eseguire in locale?

  1. Invia il job Dataflow al cloud:
bash run_oncloud1.sh $DEVSHELL_PROJECT_ID $BUCKET Grep $REGION

Trattandosi di un job di piccole dimensioni, l'esecuzione sul cloud impiegherà molto più tempo rispetto all'esecuzione in locale (approssimativamente 2-3 minuti).

Completamento della riga di comando di esempio:

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:50 min [INFO] Finished at: 2018-02-06T15:11:23-05:00 [INFO] Final Memory: 39M/206M [INFO] ------------------------------------------------------------------------
  1. Torna alla scheda del browser di Cloud Console. Nel menu di navigazione (icona menu di navigazione), fai clic su Dataflow e poi sul tuo job per monitorare l'avanzamento.

Esempio:

Grafico del job che mostra la visualizzazione Grafico

  1. Attendi che lo stato del job cambi in Riuscito. A questo punto, Cloud Shell mostrerà un prompt della riga di comando.

    Nota: se il job di Dataflow non riesce la prima volta, esegui nuovamente il comando precedente per inviare un nuovo job di Dataflow al cloud
  2. Esamina l'output nel bucket Cloud Storage. Nel menu di navigazione (icona menu di navigazione), fai clic su Cloud Storage > Bucket e fai clic sul tuo bucket.

  3. Fai clic sulla directory javahelp. Questo job genera il file output.txt. Se il file è abbastanza grande, verrà fatto lo sharding in più parti con nomi quali: output-0000x-of-000y. Puoi individuare il file più recente tramite il nome o il campo Ultima modifica. Fai clic sul file per visualizzarlo.

In alternativa, puoi scaricare il file in Cloud Shell e visualizzarlo:

gcloud storage cp gs://$BUCKET/javahelp/output* . cat output*

Termina il lab

Una volta completato il lab, fai clic su Termina lab. Google Cloud Skills Boost rimuove le risorse che hai utilizzato ed esegue la pulizia dell'account.

Avrai la possibilità di inserire una valutazione in merito alla tua esperienza. Seleziona il numero di stelle applicabile, inserisci un commento, quindi fai clic su Invia.

Il numero di stelle corrisponde alle seguenti valutazioni:

  • 1 stella = molto insoddisfatto
  • 2 stelle = insoddisfatto
  • 3 stelle = esperienza neutra
  • 4 stelle = soddisfatto
  • 5 stelle = molto soddisfatto

Se non vuoi lasciare un feedback, chiudi la finestra di dialogo.

Per feedback, suggerimenti o correzioni, utilizza la scheda Assistenza.

Copyright 2020 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.

Prima di iniziare

  1. I lab creano un progetto e risorse Google Cloud per un periodo di tempo prestabilito
  2. I lab hanno un limite di tempo e non possono essere messi in pausa. Se termini il lab, dovrai ricominciare dall'inizio.
  3. In alto a sinistra dello schermo, fai clic su Inizia il lab per iniziare

Utilizza la navigazione privata

  1. Copia il nome utente e la password forniti per il lab
  2. Fai clic su Apri console in modalità privata

Accedi alla console

  1. Accedi utilizzando le tue credenziali del lab. L'utilizzo di altre credenziali potrebbe causare errori oppure l'addebito di costi.
  2. Accetta i termini e salta la pagina di ripristino delle risorse
  3. Non fare clic su Termina lab a meno che tu non abbia terminato il lab o non voglia riavviarlo, perché il tuo lavoro verrà eliminato e il progetto verrà rimosso

Questi contenuti non sono al momento disponibili

Ti invieremo una notifica via email quando sarà disponibile

Bene.

Ti contatteremo via email non appena sarà disponibile

Un lab alla volta

Conferma per terminare tutti i lab esistenti e iniziare questo

Utilizza la navigazione privata per eseguire il lab

Utilizza una finestra del browser in incognito o privata per eseguire questo lab. In questo modo eviterai eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.