1. Panoramica/Introduzione
Sebbene le applicazioni multilivello composte da web, server di applicazioni e database siano fondamentali per lo sviluppo web e siano il punto di partenza di molti siti web, il successo spesso comporta sfide in termini di scalabilità, integrazione e agilità. Ad esempio, come si possono gestire i dati in tempo reale e come possono essere distribuiti a più sistemi aziendali chiave? Questi problemi, insieme alle esigenze delle applicazioni su scala internet, hanno portato alla necessità di un sistema di messaggistica distribuito e hanno dato vita a un modello architetturale di utilizzo di pipeline di dati per ottenere sistemi resilienti in tempo reale. Di conseguenza, comprendere come pubblicare i dati in tempo reale in un sistema di messaggistica distribuito e come creare una pipeline di dati sono competenze fondamentali sia per gli sviluppatori che per gli architetti.
Cosa creerai
In questo codelab, creerai una pipeline di dati meteorologici che inizia con un dispositivo IoT (Internet of Things), utilizza una coda di messaggi per ricevere e consegnare i dati, sfrutta una funzione serverless per spostare i dati in un data warehouse e quindi creare una dashboard che mostra le informazioni. Per il dispositivo IoT verrà utilizzato un Raspberry Pi con un sensore meteorologico e diversi componenti della piattaforma Google Cloud costituiranno la pipeline di dati. La creazione di Raspberry Pi, sebbene vantaggiosa, è una parte facoltativa di questo codelab e i dati meteorologici in streaming possono essere sostituiti con uno script.
Dopo aver completato i passaggi di questo codelab, avrai una pipeline di dati in modalità flusso che alimenta una dashboard che mostra temperatura, umidità, punto di rugiada e pressione dell'aria.
Cosa imparerai a fare
- Come utilizzare Google Pub/Sub
- Come eseguire il deployment di una funzione Google Cloud Functions
- Come sfruttare Google BigQuery
- Come creare una dashboard con Google Data Studio
- Inoltre, se crei il sensore IoT, imparerai anche come utilizzare Google Cloud SDK e come proteggere le chiamate di accesso remoto alla piattaforma Google Cloud
Che cosa ti serve
- Un account Google Cloud. I nuovi utenti della piattaforma Google Cloud hanno diritto a una prova senza costi di$300.
Se vuoi creare la parte del sensore IoT di questo codelab anziché utilizzare dati di esempio e uno script, ti serviranno anche i seguenti componenti (che possono essere ordinati come kit completo o come singoli componenti qui):
- Raspberry Pi Zero W con alimentatore, scheda di memoria SD e custodia
- Lettore di schede USB
- Hub USB (per consentire il collegamento di tastiera e mouse all'unica porta USB sul Raspberry Pi)
- Cavi da femmina a femmina per tagliere
- Intestazioni martello GPIO
- Sensore BME280
- Saldatore con saldatore
Inoltre, è previsto l'accesso a un monitor di computer o a una TV con ingresso HDMI, un cavo HDMI, una tastiera e un mouse.
2. Preparazione
Configurazione dell'ambiente a tuo ritmo
Se non hai ancora un Account Google (Gmail o G Suite), devi crearne uno. Che tu disponga o meno di un Account Google, assicurati di usufruire della prova senza costi di 300$.
Accedi alla console della piattaforma Google Cloud (console.cloud.google.com). Per questo lab puoi utilizzare il progetto predefinito ("Il mio primo progetto") oppure creare un nuovo progetto. Se vuoi creare un nuovo progetto, puoi utilizzare la pagina Gestisci risorse. L'ID progetto deve essere un nome univoco per tutti i progetti Google Cloud (quello mostrato di seguito è già stato utilizzato e non funzionerà). Prendi nota dell'ID progetto (ad esempio, l'ID progetto sarà _____) perché sarà necessario in seguito.
L'esecuzione di questo codelab non dovrebbe costare più di pochi dollari, ma potrebbe costare di più se decidi di utilizzare più risorse o se le lasci in esecuzione. Assicurati di seguire la sezione Pulizia alla fine del codelab.
3. Crea una tabella BigQuery
BigQuery è un data warehouse aziendale serverless, altamente scalabile e a basso costo. È un'opzione ideale per archiviare i dati in streaming dai dispositivi IoT e, al contempo, consentire a una dashboard di analisi di eseguire query sulle informazioni.
Creiamo una tabella che contenga tutti i dati meteo IoT. Seleziona BigQuery dalla console Cloud. BigQuery si aprirà in una nuova finestra (non chiudere la finestra originale perché dovrai accedervi di nuovo).
Fai clic sull'icona Freccia giù accanto al nome del progetto e seleziona "Crea nuovo set di dati"
Inserisci "weatherData" per il set di dati, seleziona una località in cui verrà archiviato e fai clic su "OK"
Fai clic sul segno "+" accanto al tuo set di dati per creare una nuova tabella
In Dati di origine, seleziona Crea tabella vuota. Per Nome tabella di destinazione, inserisci weatherDataTable. In Schema, fai clic sul pulsante Aggiungi campo fino a visualizzare un totale di 9 campi. Compila i campi come mostrato di seguito e assicurati di selezionare anche il Tipo appropriato per ogni campo. Al termine, fai clic sul pulsante Crea tabella.
Dovresti vedere un risultato come questo...
Ora hai configurato un data warehouse per ricevere i dati meteo.
4. crea un argomento Pub/Sub
Cloud Pub/Sub costituisce una base semplice, affidabile e scalabile per l'analisi dei flussi e i sistemi di calcolo basati su eventi. Di conseguenza, è perfetto per gestire i messaggi IoT in arrivo e quindi per consentire ai sistemi downstream di elaborarli.
Se sei ancora nella finestra di BigQuery, torna alla console Cloud. Se hai chiuso la console Cloud, vai alla pagina https://console.cloud.google.com
In Cloud Console, seleziona Pub/Sub e poi Argomenti.
Se viene visualizzato il messaggio Abilita API, fai clic sul pulsante Abilita API.
Fai clic sul pulsante Crea un argomento
Inserisci "weatherdata" come nome dell'argomento e fai clic su Crea.
Dovresti vedere l'argomento appena creato
Ora hai un argomento Pub/Sub in cui pubblicare i messaggi IoT e consentire ad altre procedure di accedervi.
Pubblicazione sicura sull'argomento
Se prevedi di pubblicare messaggi nell'argomento Pub/Sub da risorse esterne alla console Google Cloud (ad es. un sensore IoT), sarà necessario controllare in modo più rigoroso l'accesso utilizzando un account di servizio e garantire la sicurezza della connessione creando un certificato di attendibilità.
Nella console Cloud, seleziona IAM e amministrazione e poi Account di servizio.
Fai clic sul pulsante Crea account di servizio
Nel menu a discesa Ruolo, seleziona il ruolo Pub/Sub Publisher
Digita il nome di un account di servizio (iotWeatherPublisher), seleziona la casella di controllo Fornisci una nuova chiave privata, assicurati che il tipo di chiave sia impostato su JSON e fai clic su "Crea"
Il token di sicurezza verrà scaricato automaticamente. Esiste una sola chiave, quindi è importante non perderla. Fai clic su Chiudi.
Dovresti vedere che è stato creato un account di servizio e che è associato un ID chiave.
Per poter accedere facilmente alla chiave in un secondo momento, la memorizzeremo in Google Cloud Storage. In Cloud Console, seleziona Archiviazione e poi Browser.
Fai clic sul pulsante Crea bucket
Scegli un nome per il bucket di archiviazione (deve essere un nome univoco a livello globale in Google Cloud) e fai clic sul pulsante Crea.
Individua il token di sicurezza che è stato scaricato automaticamente e trascinalo o caricalo nel bucket di archiviazione.
Al termine del caricamento della chiave, questa dovrebbe essere visualizzata nel browser di Cloud Storage
Prendi nota del nome del bucket di archiviazione e del nome del file della chiave di sicurezza per riferimento futuro.
5. Crea una funzione Cloud
Il cloud computing ha reso possibili modelli di computing completamente serverless in cui la logica può essere attivata on demand in risposta a eventi provenienti da qualsiasi origine. Per questo lab, una funzione Cloud Functions verrà avviata ogni volta che un messaggio viene pubblicato nell'argomento meteo, lo leggerà e lo archivierà in BigQuery.
Dalla console Cloud, seleziona Cloud Functions
Se viene visualizzato un messaggio relativo all'API, fai clic sul pulsante Abilita API
Fai clic sul pulsante Crea funzione
Nel campo Nome, digita function-weatherPubSubToBQ. Per Trigger, seleziona l'argomento Cloud Pub/Sub e nel menu a discesa Argomento seleziona i dati meteorologici. Per il codice sorgente, seleziona l'editor incorporato. Nella scheda index.js, incolla il codice seguente sopra quello esistente per iniziare. Assicurati di modificare le costanti per projectId, datasetId e tableId in modo che si adattino al tuo ambiente.
/**
* Background Cloud Function to be triggered by PubSub.
*
* @param {object} event The Cloud Functions event.
* @param {function} callback The callback function.
*/
exports.subscribe = function (event, callback) {
const BigQuery = require('@google-cloud/bigquery');
const projectId = "myProject"; //Enter your project ID here
const datasetId = "myDataset"; //Enter your BigQuery dataset name here
const tableId = "myTable"; //Enter your BigQuery table name here -- make sure it is setup correctly
const PubSubMessage = event.data;
// Incoming data is in JSON format
const incomingData = PubSubMessage.data ? Buffer.from(PubSubMessage.data, 'base64').toString() : "{'sensorID':'na','timecollected':'1/1/1970 00:00:00','zipcode':'00000','latitude':'0.0','longitude':'0.0','temperature':'-273','humidity':'-1','dewpoint':'-273','pressure':'0'}";
const jsonData = JSON.parse(incomingData);
var rows = [jsonData];
console.log(`Uploading data: ${JSON.stringify(rows)}`);
// Instantiates a client
const bigquery = BigQuery({
projectId: projectId
});
// Inserts data into a table
bigquery
.dataset(datasetId)
.table(tableId)
.insert(rows)
.then((foundErrors) => {
rows.forEach((row) => console.log('Inserted: ', row));
if (foundErrors && foundErrors.insertErrors != undefined) {
foundErrors.forEach((err) => {
console.log('Error: ', err);
})
}
})
.catch((err) => {
console.error('ERROR:', err);
});
// [END bigquery_insert_stream]
callback();
};
Nella scheda package.json, incolla il seguente codice sul codice segnaposto presente
{
"name": "function-weatherPubSubToBQ",
"version": "0.0.1",
"private": true,
"license": "Apache-2.0",
"author": "Google Inc.",
"dependencies": {
"@google-cloud/bigquery": "^0.9.6"
}
}
Se la funzione da eseguire è impostata su "HelloWorld", impostala su "subscribe". Fai clic sul pulsante Crea
Ci vorranno circa 2 minuti prima che la funzione mostri che è stata dispiata
Complimenti! Hai appena collegato Pub/Sub a BigQuery tramite Functions.
6. (Facoltativo) Configurare l'hardware IoT
Assembla il Raspberry Pi e il sensore
Se sono presenti più di 7 pin, taglia l'intestazione verso il basso in modo che contenga solo 7 pin. Salda i piedini di intestazione alla scheda dei sensori.
Installa con cura i pin del connettore a martello su Raspberry Pi.
Formatta la scheda SD e installa il programma di installazione di NOOBS (New Out Of Box Software) seguendo la procedura riportata qui. Inserisci la scheda SD nel Raspberry Pi e inserisci il Raspberry Pi nella custodia.
Utilizza i cavi della breadboard per collegare il sensore a Raspberry Pi in base allo schema seguente.
Pin Raspberry Pi | Connessione del sensore |
Pin 1 (3,3 V) | Numero di telaio |
Pin 3 (CPIO2) | SDI |
Pin 5 (GPIO3) | SCK |
Pin 9 (terra) | GND |
Collega il monitor (utilizzando il connettore mini HDMI), la tastiera/il mouse (con l'hub USB) e infine l'alimentatore.
Configura Raspberry Pi e il sensore
Al termine dell'avvio di Raspberry Pi, seleziona Raspbian per il sistema operativo desiderato, assicurati che la lingua sia corretta e fai clic su Installa (icona dell'unità disco rigido nella parte superiore sinistra della finestra).
Fai clic sull'icona Wi-Fi (in alto a destra dello schermo) e seleziona una rete. Se si tratta di una rete protetta, inserisci la password (chiave pre-condivisa).
Fai clic sull'icona del lampone (in alto a sinistra nella schermata), seleziona Preferenze e poi Configurazione Raspberry Pi. Nella scheda Interfacce, abilita I2C. Nella scheda Localizzazione, imposta le impostazioni Locale e Fuso orario. Dopo aver impostato il fuso orario, consenti il riavvio di Raspberry Pi.
Al termine del riavvio, fai clic sull'icona Terminale per aprire una finestra del terminale.
Digita il seguente comando per assicurarti che il sensore sia collegato correttamente.
sudo i2cdetect -y 1
Il risultato dovrebbe essere simile a questo: assicurati che la lettura sia 77.
Installa Google Cloud SDK
Per poter sfruttare gli strumenti della piattaforma Google Cloud, sarà necessario installare Google Cloud SDK sul Raspberry Pi. L'SDK include gli strumenti necessari per gestire e sfruttare la piattaforma Google Cloud ed è disponibile per diversi linguaggi di programmazione.
Apri una finestra del terminale sul Raspberry Pi se non è già aperta e imposta una variabile di ambiente che abbinerà la versione dell'SDK al sistema operativo sul Raspberry Pi.
export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
Ora aggiungi il percorso di archiviazione dei pacchetti di Google Cloud SDK in modo che gli strumenti di installazione sappiano dove cercare quando viene chiesto di installare l'SDK.
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
Aggiungi la chiave pubblica dal repository dei pacchetti di Google in modo che Raspberry Pi verifichi la sicurezza e attenda i contenuti durante l'installazione
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Assicurati che tutto il software su Raspberry Pi sia aggiornato e installa l'SDK di Google Cloud di base
sudo apt-get update && sudo apt-get install google-cloud-sdk
Quando ti viene chiesto "Vuoi continuare?", premi Invio.
Installa il pacchetto tendo utilizzando il gestore dei pacchetti Python. Questo pacchetto viene utilizzato per verificare se uno script è in esecuzione più di una volta e se è installato per la relativa applicazione allo script meteo.
pip install tendo
Assicurati che i pacchetti Google Cloud PubSub e OAuth2 per Python siano installati e aggiornati utilizzando il gestore di pacchetti Python
sudo pip install --upgrade google-cloud-pubsub
sudo pip install --upgrade oauth2client
Inizializza Google Cloud SDK
L'SDK consente l'accesso remoto autenticato a Google Cloud. Per questo codelab, verrà utilizzato per accedere al bucket di archiviazione in modo che il token di sicurezza possa essere scaricato facilmente su Raspberry Pi.
Dalla riga di comando sul Raspberry Pi, inserisci
gcloud init --console-only
Quando viene visualizzato il messaggio "Vuoi accedere (S/N)?", premi Invio.
Quando visualizzi il messaggio "Vai al seguente link nel tuo browser" seguito da un URL lungo che inizia con https://accounts.google.com/o/oauth?..., passa il mouse sopra l'URL, fai clic con il tasto destro del mouse e seleziona "Copia URL". Apri il browser web (icona a forma di globo blu nell'angolo in alto a sinistra dello schermo), fai clic con il tasto destro del mouse sulla barra degli indirizzi e poi su "Incolla".
Quando viene visualizzata la schermata di accesso, inserisci l'indirizzo email associato al tuo account Google Cloud e premi Invio. Dopodiché inserisci la password e fai clic sul pulsante Avanti.
Ti verrà chiesto se il Google Cloud SDK può accedere al tuo Account Google. Fai clic sul pulsante Consenti.
Ti verrà mostrato il codice di verifica. Utilizzando il mouse, evidenzialo, fai clic con il tasto destro del mouse e scegli Copia. Torna alla finestra del terminale, assicurati che il cursore sia a destra di "Inserisci il codice di verifica:", fai clic con il tasto destro del mouse e scegli Incolla. Premi il tasto Invio.
Se ti viene chiesto di selezionare "Scegli il progetto Cloud da utilizzare:", inserisci il numero corrispondente al nome del progetto che hai utilizzato per questo codelab, quindi premi Invio.
Se ti viene richiesto di abilitare l'API Compute, premi il pulsante Invio per abilitarla. A questo punto, ti verrà chiesto di configurare le impostazioni di Google Compute Engine. Premi Invio. Viene visualizzato un elenco di potenziali regioni/zone. Scegline una vicina a te, inserisci il numero corrispondente e premi Invio.
A breve verranno visualizzate alcune informazioni aggiuntive. Google Cloud SDK è ora configurato. Puoi chiudere la finestra del browser web perché non ti servirà più.
Installare il software del sensore e lo script meteo
Dalla riga di comando su Raspberry Pi, clona i pacchetti necessari per leggere le informazioni dai pin di input/output.
git clone https://github.com/adafruit/Adafruit_Python_GPIO
Installare i pacchetti scaricati
cd Adafruit_Python_GPIO
sudo python setup.py install
cd ..
Clona il codice del progetto che abilita il sensore meteo
git clone https://github.com/googlecodelabs/iot-data-pipeline
Copia il driver del sensore nella stessa directory in cui si trova il resto del software scaricato.
cd iot-data-pipeline/third_party/Adafruit_BME280
mv Adafruit_BME280.py ../..
cd ../..
Modifica lo script digitando…
nano checkWeather.py
Modifica il progetto con il tuo ID progetto e l'argomento con il nome del tuo argomento Pub/Sub (sono stati indicati nelle sezioni Preparativi e Crea un argomento Pub/Sub di questo codelab).
Modifica i valori sensorID, sensorZipCode, sensorLat e sensorLong impostando il valore desiderato. I valori di latitudine e longitudine per una località o un indirizzo specifici sono disponibili qui.
Una volta apportate le modifiche necessarie, premi Ctrl-X per iniziare a uscire dall'editor nano. Premi Y per confermare.
# constants - change to fit your project and location
SEND_INTERVAL = 10 #seconds
sensor = BME280(t_mode=BME280_OSAMPLE_8, p_mode=BME280_OSAMPLE_8, h_mode=BME280_OSAMPLE_8)
credentials = GoogleCredentials.get_application_default()
project="myProject" #change this to your Google Cloud project id
topic = "myTopic" #change this to your Google Cloud PubSub topic name
sensorID = "s-Googleplex"
sensorZipCode = "94043"
sensorLat = "37.421655"
sensorLong = "-122.085637"
Installare il token di sicurezza
Copia il token di sicurezza (dalla sezione "Pubblicazione sicura in un argomento") su Raspberry Pi.
Se hai utilizzato SFTP o SCP per copiare il token di sicurezza dal computer locale al Raspberry Pi (nella directory /home/pi), puoi saltare il passaggio successivo e passare all'esportazione del percorso.
Se hai inserito il token di sicurezza in un bucket di archiviazione, dovrai ricordare il nome del bucket di archiviazione e il nome del file. Utilizza il comando gsutil per copiare la chiave di sicurezza. Questo comando può accedere a Google Storage (perché è denominato gsutil e perché il percorso del file inizia con gs://). Assicurati di modificare il comando riportato di seguito in modo che contenga il nome del bucket e del file.
gsutil cp gs://nameOfYourBucket/yourSecurityKeyFilename.json .
Dovresti vedere un messaggio che indica che il file è in fase di copia e che l'operazione è stata completata.
Dalla riga di comando su Raspberry Pi, esporta un percorso per il token di sicurezza (modifica il nome del file in modo che corrisponda a quello che hai)
export GOOGLE_APPLICATION_CREDENTIALS=/home/pi/iot-data-pipeline/yourSecurityKeyFilename.json
Ora hai un sensore meteo IoT completo pronto a trasmettere i dati a Google Cloud.
7. Avvia la pipeline di dati
Potrebbe essere necessario abilitare l'API Compute
Stream di dati da un Raspberry Pi
Se hai costruito un sensore meteorologico IoT Raspberry Pi, avvia lo script che leggerà i dati meteo e li invierà a Google Cloud Pub/Sub. Se non ti trovi nella directory /home/pi/iot-data-pipeline, spostati prima lì
cd /home/pi/iot-data-pipeline
Avvia lo script meteo
python checkWeather.py
Nella finestra del terminale dovresti visualizzare l'eco dei risultati dei dati meteo ogni minuto. Con il flusso di dati, puoi passare alla sezione successiva (Verifica che i dati stiano passando).
Streaming di dati simulati
Se non hai creato il sensore meteorologico IoT, puoi simulare il flusso di dati utilizzando un set di dati pubblico archiviato in Google Cloud Storage e inserendolo nell'argomento Pub/Sub esistente. Verranno utilizzati Google Dataflow e un modello fornito da Google per la lettura da Cloud Storage e la pubblicazione in Pub/Sub.
Come parte del processo, Dataflow avrà bisogno di una posizione di archiviazione temporanea, quindi creiamo un bucket di archiviazione per questo scopo.
In Cloud Console, seleziona Archiviazione e poi Browser.
Fai clic sul pulsante Crea bucket
Scegli un nome per il bucket di archiviazione (ricorda che deve essere un nome univoco a livello globale in Google Cloud) e fai clic sul pulsante Crea. Ricorda il nome di questo bucket di archiviazione perché sarà necessario a breve.
Dalla console Cloud, seleziona Dataflow.
Fai clic su Crea job da modello (parte superiore dello schermo)
Inserisci i dettagli del job come mostrato di seguito prestando attenzione a quanto segue:
- Inserisci il nome del job dataflow-gcs-to-pubsub
- La regione dovrebbe essere selezionata automaticamente in base a dove è ospitato il progetto e non dovrebbe essere necessario modificarla.
- Seleziona un modello Cloud Dataflow di testo GCS in Cloud Pub/Sub
- Per i file di Cloud Storage di input, inserisci gs://codelab-iot-data-pipeline-sampleweatherdata/*.json (si tratta di un set di dati pubblico)
- Per l'argomento Pub/Sub di output, il percorso esatto dipende dal nome del progetto e sarà simile a "projects/yourProjectName/topics/weatherdata"
- Imposta la posizione temporanea sul nome del bucket Google Cloud Storage che hai appena creato insieme a un prefisso del nome file "tmp". Dovrebbe avere il seguente formato: "gs://nomeBidoneStorage/tmp".
Dopo aver inserito tutte le informazioni (vedi di seguito), fai clic sul pulsante Esegui job.
Dovrebbe iniziare l'esecuzione del job Dataflow.
Il completamento del job Dataflow dovrebbe richiedere circa un minuto.
8. Verificare il flusso di dati
Log della funzione Cloud Functions
Assicurati che la funzione Cloud venga attivata da Pub/Sub
gcloud beta functions logs read function-weatherPubSubToBQ
I log dovrebbero indicare che la funzione è in esecuzione, che i dati vengono ricevuti e che vengono inseriti in BigQuery
Dati BigQuery
Verifica che i dati vengano inseriti nella tabella BigQuery. Dalla console Cloud, vai a BigQuery (bigquery.cloud.google.com).
Sotto il nome del progetto (sul lato sinistro della finestra), fai clic su Dataset (weatherData), quindi sulla tabella (weatherDataTable), quindi fai clic sul pulsante Query Table (Tabella di query).
Aggiungi un asterisco all'istruzione SQL in modo che restituisca SELECT * FROM... come mostrato di seguito, quindi fai clic sul pulsante ESEGUI QUERY
Se richiesto, fai clic sul pulsante Esegui query
Se visualizzi dei risultati, significa che i dati scorrono correttamente.
Con il flusso di dati, ora sei pronto per creare una dashboard di analisi.
9. Crea una dashboard di Data Studio
Google Data Studio trasforma i tuoi dati in dashboard e rapporti ricchi di informazioni, completamente personalizzabili, facili da leggere e semplici da condividere.
Dal browser web, vai alla pagina https://datastudio.google.com
In "Crea un nuovo report", fai clic su Vuoto e poi sul pulsante Inizia.
Fai clic sulla casella di controllo per accettare i termini, poi fai clic sul pulsante Avanti, seleziona le email che ti interessa ricevere e fai clic sul pulsante Fine. Ancora una volta, fai clic su Vuoto in "Crea un nuovo report".
Fai clic sul pulsante Crea nuova origine dati
Fai clic su BigQuery e poi sul pulsante Autorizza, quindi scegli l'Account Google che vuoi utilizzare con Data Studio (deve essere lo stesso che usi per il codelab).
Fai clic sul pulsante Consenti
Seleziona il nome del progetto, il set di dati e la tabella. Quindi, fai clic sul pulsante Connetti.
Modifica i campi di tipo come mostrato di seguito (devono essere tutti numeri, ad eccezione di timecollected e sensorID). Tieni presente che timecollected è impostato su Data Hour (e non solo su Date). Modifica i campi di aggregazione come mostrato di seguito (punto di rugiada, temperatura, umidità e pressione devono essere medi e tutto il resto deve essere impostato su "Nessuno"). Fai clic sul pulsante Crea report.
Conferma facendo clic sul pulsante Aggiungi al report.
Se ti viene chiesto di selezionare il tuo Account Google, fai clic sul pulsante Consenti per consentire a Data Studio di archiviare i report su Google Drive.
Viene visualizzata una tela vuota su cui creare la dashboard. Nella riga superiore di icone, scegli Serie temporali.
Disegna un rettangolo nell'angolo in alto a sinistra di un foglio vuoto. Dovrebbe occupare circa 1⁄4 del foglio vuoto totale.
Sul lato destro della finestra, seleziona la scheda Stile. Cambia i dati mancanti da "Linea a zero" a "Interruzioni di riga". Nella sezione Asse Y sinistro, elimina lo 0 da Min asse per modificarlo in (Automatico).
Fai clic sul grafico nel foglio e copialo e incollalo (Ctrl-C/Ctrl-V) per tre volte. Allinea i grafici in modo che ciascuno occupi ¼ del layout.
Fai clic su ogni grafico e nella sezione Proprietà e dati delle serie temporali fai clic sulla metrica esistente (punto di rugiada), scegli una metrica diversa da visualizzare finché tutte e quattro le letture meteo (punto di rugiada, temperatura, umidità e pressione) non hanno un proprio grafico.
Ora hai una dashboard di base.
10. Complimenti!
Hai creato un'intera pipeline di dati. In questo modo, hai imparato a utilizzare Google Pub/Sub, a eseguire il deployment di una funzione serverless, a sfruttare BigQuery e a creare una dashboard di analisi con Data Studio. Inoltre, hai scoperto in che modo Google Cloud SDK può essere utilizzato in modo sicuro per importare dati nella piattaforma Google Cloud. Infine, ora avrai un po' di esperienza pratica con un importante pattern architetturale in grado di gestire volumi elevati mantenendo la disponibilità.
Eliminazione
Una volta terminato l'esperimento con i dati meteo e la pipeline di analisi, puoi rimuovere le risorse in esecuzione.
Se hai creato il sensore IoT, spegnilo. Premi Ctrl+C nella finestra del terminale per interrompere lo script, quindi digita quanto segue per spegnere il Raspberry Pi
shutdown -h now
Vai a Cloud Functions, fai clic sulla casella di controllo accanto a function-weatherPubSubToBQ e quindi su Delete
Vai a Pub/Sub, fai clic su Argomento, seleziona la casella di controllo accanto all'argomento meteodata, quindi fai clic su Elimina
Vai a Spazio di archiviazione, fai clic sulle caselle di controllo accanto ai bucket di archiviazione e poi su Elimina.
Vai alla pagina bigquery.cloud.google.com, fai clic sulla Freccia giù accanto al nome del progetto, fai clic sulla Freccia giù a destra del set di dati weatherData e poi su Elimina set di dati.
Quando richiesto, digita l'ID del set di dati (weatherData) per completare l'eliminazione dei dati.