1. Panoramica/Introduzione
Sebbene le applicazioni multi-livello costituite da web, server di applicazioni e database siano fondamentali per lo sviluppo web e siano il punto di partenza per molti siti web, il successo porta spesso sfide relative a 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, capire come pubblicare dati in tempo reale su un sistema di messaggistica distribuito e quindi come creare una pipeline di dati sono competenze cruciali per sviluppatori e 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 utilizzare 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 relativa ai sensori IoT di questo codelab invece di sfruttare dati di esempio e uno script, avrai bisogno anche di quanto segue ( che può essere ordinato come kit completo o come parte in 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 autogestito
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 in tutti i progetti Google Cloud (quello mostrato di seguito è già in uso e non funzionerà per te). 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, a scalabilità elevata e a basso costo, che rappresenta l'opzione ideale per archiviare i flussi di dati trasmessi da dispositivi IoT e, allo stesso tempo, consentire a una dashboard di analisi di eseguire query sulle informazioni.
Creiamo una tabella che conterrà tutti i dati meteorologici dell'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 posizione in cui verrà archiviato e fai clic su "OK"
Fai clic sul segno "+" accanto al tuo set di dati per creare una nuova tabella
Per 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 una configurazione del 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 a https://console.cloud.google.com
Dalla console Cloud, 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 a disposizione un argomento Pub/Sub in cui pubblicare messaggi IoT e per consentire ad altri processi di accedere a questi messaggi.
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à.
Dalla console Cloud, seleziona IAM e Amministratore e poi Account di servizio
Fai clic sul pulsante Crea account di servizio
Nel menu a discesa Ruolo, seleziona il ruolo Publisher Pub/Sub.
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 a un ID chiave.
Per poter accedere facilmente alla chiave in un secondo momento, la archivieremo in Google Cloud Storage. Dalla console Cloud, seleziona Storage e poi Browser.
Fai clic sul pulsante Crea bucket
Scegli un nome per il bucket di archiviazione (deve essere un nome globalmente univoco in tutto 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, la chiave dovrebbe essere visualizzata nel browser di Cloud Storage
Prendi nota del nome del bucket di archiviazione e del file del token di sicurezza per un secondo momento.
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. Seleziona l'editor in linea per il codice sorgente. Nella scheda index.js, incolla il seguente codice su ciò che contiene 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", modificala in "subscribe". Fai clic sul pulsante Crea
Saranno necessari circa 2 minuti prima che la funzione mostri che è stato eseguito il deployment
Complimenti! Hai appena collegato Pub/Sub a BigQuery tramite Functions.
6. (Facoltativo) Configura 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 attenzione i connettori del martello nel 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 al Raspberry Pi in base allo schema qui sotto.
Spinto Raspberry Pi | Connessione del sensore |
Pin 1 (3,3 V) | Numero di telaio |
Pin 3 (CPIO2) | SDI |
Pin 5 (GPIO3) | CG |
Pin 9 (su terra) | GND |
Collega il monitor (utilizzando il connettore mini-HDMI), la tastiera/il mouse (con l'hub USB) e, infine, l'alimentatore.
Configura il Raspberry Pi e il sensore
Al termine dell'avvio di Raspberry Pi, seleziona Raspbian per il sistema operativo desiderato, assicurati che la lingua desiderata sia corretta, quindi fai clic su Installa (icona del disco rigido nella parte in alto a 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 precondivisa).
Fai clic sull'icona a forma di lampone (in alto a sinistra dello schermo), seleziona Preferenze e poi Configurazione Raspberry Pi. Nella scheda Interfacce, attiva I2C. Dalla scheda Localizzazione, imposta le impostazioni internazionali e il 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 connesso correttamente.
sudo i2cdetect -y 1
Il risultato dovrebbe essere simile a questo: accertati che sia 77.
Installare 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 di pacchetti di Google in modo che Raspberry Pi verifichi la sicurezza e consideri attendibili 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 sul Raspberry Pi sia aggiornato e installa il Google Cloud SDK principale
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 di 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à usato 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 ti viene chiesto "Vuoi accedere (Y/N)?", premi Invio.
Quando viene visualizzato 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 con il tasto del mouse, fai clic con il tasto destro del mouse e seleziona "Copia URL". Apri il browser web (l'icona a forma di globo blu nell'angolo superiore sinistro dello schermo), fai clic con il pulsante destro del mouse sulla barra degli indirizzi e fai clic su "Incolla".
Quando viene visualizzata la schermata di accesso, inserisci l'indirizzo email associato al tuo account Google Cloud e premi Invio. Inserisci la password e fai clic sul pulsante Avanti.
Ti verrà richiesto che Google Cloud SDK voglia accedere al tuo Account Google. Fai clic sul pulsante Consenti.
Verrà visualizzato il codice di verifica. Utilizzando il mouse, evidenzialo, fai clic con il tasto destro del mouse e scegli Copia. Torna alla finestra del terminale e assicurati che il cursore si trovi a destra di "Inserisci codice di verifica:", fai clic con il tasto destro del mouse e scegli Incolla. Premi il pulsante Invio.
Se ti viene chiesto di selezionare 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 nelle vicinanze, inserisci il numero corrispondente e premi Invio.
Dopo qualche istante verranno visualizzate alcune informazioni aggiuntive. Google Cloud SDK è ora configurato. Puoi chiudere la finestra del browser web perché non ti servirà più in futuro.
Installare il software del sensore e lo script del meteo
Dalla riga di comando su Raspberry Pi, clona i pacchetti necessari per la lettura delle 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 dell'argomento Pub/Sub (come indicato nelle sezioni Come configurare e creare 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 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") sul 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 il token 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 seguente in modo che abbia il nome del tuo bucket e del tuo 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 nel token di sicurezza (modifica il nome del file in modo che corrisponda a quello in uso).
export GOOGLE_APPLICATION_CREDENTIALS=/home/pi/iot-data-pipeline/yourSecurityKeyFilename.json
Ora hai un sensore meteorologico 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 creato un sensore meteorologico IoT di Raspberry Pi, avvia lo script che leggerà i dati meteorologici e ne eseguirà il push 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 del 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 fluendo).
Flusso di dati simulato
Se non hai creato il sensore meteo 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.
Dalla console Cloud, seleziona Storage e poi Browser.
Fai clic sul pulsante Crea bucket
Scegli un nome per il bucket di archiviazione (ricorda che deve essere un nome globalmente univoco in tutto 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 della schermata).
Compila i dettagli del job come mostrato di seguito prestando attenzione a quanto segue:
- Inserisci il nome di un job di Dataflow-gcs-to-pubsub
- La regione deve essere selezionata automaticamente in base a dove è ospitato il progetto e non deve essere modificata.
- Seleziona un modello Cloud Dataflow di testo GCS in Cloud Pub/Sub
- Per i file Cloud Storage di input, inserisci gs://codelab-iot-data-pipeline-sampleweatherdata/*.json (questo è 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 al prefisso del nome file "tmp". Dovrebbe avere il seguente formato: "gs://myStorageBucketName/tmp".
Dopo aver inserito tutte le informazioni (vedi sotto), 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 Functions sia 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 stiano confluendo nella tabella BigQuery. Nella 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 all'indirizzo 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, fai clic sul pulsante Avanti, seleziona le email che ti interessa ricevere e fai clic sul pulsante Fine. Ancora una volta, nella sezione "Crea un nuovo report", fai clic su Vuoto
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 del tipo come mostrato di seguito (tutto deve essere un numero tranne l'ora raccolta e il sensorID). Tieni presente che l'ora raccolta è impostata su Data Ora (e non solo su Data). 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 propri report su Google Drive.
Viene visualizzata una tela vuota su cui creare la dashboard. Nella fila di icone superiore, 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. Modifica dati mancanti da "Linea a zero" in "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 abbia 1⁄4 del layout.
Fai clic su ciascun grafico e nella sezione Proprietà serie temporali e dati fai clic sulla metrica esistente (punto di rugiada), scegli una metrica diversa da visualizzare fino a quando tutte e quattro le letture meteorologiche (punto di rugiada, temperatura, umidità e pressione) non avranno 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 appreso 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 terminata la sperimentazione dei dati meteorologici e della pipeline di analisi, puoi rimuovere le risorse in esecuzione.
Se hai creato il sensore IoT, arrestalo. 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 Archiviazione, fai clic sulle caselle di controllo accanto ai bucket di archiviazione, quindi fai clic su Elimina
Vai a 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 meteoData e infine su Elimina set di dati.
Quando richiesto, digita l'ID del set di dati (weatherData) per terminare l'eliminazione dei dati.