Please enable JavaScript.
Coggle requires JavaScript to display documents.
Associate Data Practitioner - Coggle Diagram
Associate Data Practitioner
Transfer data
gcloud storage
Piccole quantità di dati
Da on-prem a Cloud Storage
Storage Transfer Service
Quantità di dati media
Da on-prem a multicloud sources (like file system, object storage, HDFS)
Cloud Interconnect
Nel caso si debbano trasferire grandi quantità di dati da on-prem a cloud, si può stabilire una connessione dedicata
Transfer Appliance
Grandi quantità di dati.
Google ti invia l'hardware necessario e tu lo rinvii con i dati (come amazon Snowball)
Database Migration Service
Facile da usare se il database sorgente è uno dei seguenti:
Oracle
MYSQL
PostgreSQL
SQL Server
NoSQL
Data Stream
Replica continua dei dati
templates for seamless database replication and migration tasks
I messaggi legati agli eventi hanno 3 componenti
Metadata: tabella sorgente, timestamps, altre info sull'evento
payload: contiene i dati modificati in formato key-value
Altri metadata relativi alla sorgente dati
BigQuery
Metodi per importare dati in Bigquery
Comando
bq load
, per accesso programmatico
Comando SQL
LOAD DATA
Data Transfer Service
Tabelle esterne. Le sorgenti possono essere:
Cloud Storage
Bigtable
Google Drive
BigLake
Servizio ponte per connettere diversi query engine (tra cui bigquery) a diverse sorgenti di dati
Utilizza Apache Arrow per una gestione efficente dei dati
Supporta le UDF (User Defined Functions) e Stored Procedures
Possono richiamare altre query
Accettano valori in input
Restituiscono un output (obbligatorio per le UDF)
Possono leggere e modificare i dati da diverse sorgenti
Possono contenere query "multi statement" e supportano chiamate da linguaggi procedurali
questo rende possibile l'esecuzione di più query SQL con variabili condivise
Supporta le Stored Procedures di Apache Spark
Supporta le remote functions
rende possibile la modifica dei dati tramite codice python
Integrazione con Jupyter Notebook
Principali ruoli associati
BigQuery Job User: Possibilità di fare query ma non garantisce l'accesso ai dati
BigQuery Data Viewer: possibilità di leggere i dati
BigQuery Data Editor: data viewer +creazione, modifica ed eliminazione delle tabella
BigQuery Data Owner: Data editor + gestione degli accessi
Analytics Hub
Condividere i dati in modo sicuro con persone all'esterno dell'organizzazione
Authorized views
Per non dare accesso alle persone ai dati sottostanti
creare una vista e poi concedere l'accesso a quella vista
Column level tags
Questi tag permettono di classificare le colonne (es: riservatezza "alta", "media" o "bassa")
È poi possibile dare o revocare l'accesso a categorie di colonne per specifici utenti
Questo significa che alcuni utenti non vedranno certe colonne, anche con un SELECT *
È preferibile questa soluzione piuttosto che AEAD perchè i tags sono gestiti dall'organizzazione. I dati non sono criptati, quindi non c'è il rischio che l'organizzazione perda l'accesso ai dati
Object Table
Tabelle specifiche per gestire dati non strutturati, come file audio
SQL Grant
Se si vuole dare accesso ai dataset in modo più granulare rispetto agli IAM Roles
best Practice: usare gli IAM roles per dare gli accessi a gruppi, ma usare SQL GRANT per il fine tuning
Snapshot
Per non rischiare di perdere i dati della tabella possibile:
creare degli snapshot della tabella, in modo da avere dei punti di recovery
attivare il time-travel, in modo da poter riavvolgere le ultime modifiche
Usando sia gli snapshot che il time travel, è possibile non perdere i dati della tabella anche se viene accidentalmente cancellata
Partition Expiration
Per risparmiare soldi è possibile impostare una data limite delle partizioni. Es: partizioni più vecchia di 30 giorni devono essere eliminate
Pipeline
Dataform
Servizio all'interno di BigQuery per gestire il flusso delle trasformazioni dei dati
ELT
Serverless
Controlla eventuali dipendenze ed errori, ma l'esecuzione viene fatta in BigQuery
Utilizza le assertion per definire i test sulla qualità dei dati. È possibile usare anche le "operazioni" per far eseguire del codice SQL per controllare la qualità dei dati
Le pipeline possono essere azionate da trigger:
Trigger interni: esecuzione manuale, istruzioni inserite all'interno di Datafrom
Trigger esterni: Cloud scheduler (dei cron), Cloud Composer (orchestrated)
Si integra con Git per il version control
immagine con lista dei file all'interno della cartella della pipeline
https://horsaspa-my.sharepoint.com/:i:/g/personal/davide_marcon_horsa_it/EbGQ0EFZju9EsDdqCK1y6doBMXOWqHNpGWlPRiesSDhNlQ?e=oIMXs7
Ha 2 metodi per gestire le dipendenze
Implicit declaration
Explicit declaration
https://horsaspa-my.sharepoint.com/:i:/g/personal/davide_marcon_horsa_it/ETNpPlT7h25Knh-qrqA-cdkBC1JP8hnKUuuA-NdEAA4BGQ?e=kOGVqI
Dataprep
Data wrangling
dati in batch
Serverless
no-code
disponibili dei template pronti all'uso
Utilizza cluster Hadoop/Spark per processare in modo più efficiente
Data Fusion
Data integration
Dati in batch e streaming
Si connette a sorgenti on -prem e cloud
Ha un'interfaccia drag and drop
Data Fusion Studio
: creazione di pipeline tramite interfaccia grafica. È possibile avere una preview dei dati nelle diverse fasi.
Dataproc
ETL Workloads conApache Hadoop e Spark
Dati in batch e streaming
Dataproc Workflow Templates rende possible gestire workflow complessi di dati con dipendenze tra i diversi job.
Le impostiazioni del workflow possono essere specificate all’interno di un file YAML.
Dataproc serverless for Spark
permette di eseguire Spark senza dover gestire i cluster
Dataflow
ETL workloads
Dati in batch e straming (soluzione raccomandata per streaming)
Una pipeline può ricevere in input delle variabili in modo da poter costruire più percorsi alternativi per i dati
Utilizza Apache Beam per unificare la gestione dei flussi batch e streaming dei dati
Non possibile l'iscrizione diretta ad un topic di Pub/Sub
Drain Flag
Quando vogliamo aggiornare la pipeline dobbiamo farlo attivando la drain flag. Questa opzione farà processare completamente i dati già all'interno della pipeline e solo quando è completamente svuotata verrà aggiornata
Dataflow Worker role: utilizzato per i nodi worker del cluster, non per le persone
Dataflow Viewer role: Permette di vedere i dettagli e lo status delle pipeline
Dataflow Developer role: Possibilità di gestire e modificare le pipeline
Dataflow Admin role: Controllo completo sulle pipeline
Automation
Far partire dei Job in base al tempo o in base a specifici eventi
Cloud Scheduler
Per job una tantum o per tasks che si sa già quando andranno fatti
I trigger possono essere basati su chiamate https, app engine http calls, pub/sub messages or Workflows
Cloud Composer
Per job una tantum o per tasks che si sa già quando andranno fatti. Anche per orchestrazioni più complesse
o Funziona sia su google cloud, ma anche altri cloud e on premises. Si basa su Apache Airflow e può essere usato con python
Cloud Run Functions
trigger basati su eventi
o I trigger possono essere richieste http, Pub/Sub, Cloud Storage changes, Firestore updates, eventi custom tramite Eventarc
Eventarc
trigger basati su eventi
serve per distribuire eventi a più servizi
Questo servizio rende possibile la creazione di eventi custom per la creazione di loosely coupled services. Connette diverse sorgenti (anche terze parti) con molti servizi di google cloud, come anche Cloud Run functions
https://horsaspa-my.sharepoint.com/:i:/g/personal/davide_marcon_horsa_it/EXMDdsGkvhhAhsCGPlYfd9IBkaRan9k9LQY5-pSfev4tsw?e=h6ySp6
AI
7 Principi Google per lo sviluppo responsabile di AI
1) L’AI deve portare benefici alla società
2) L’AI dovrebbe evitare di creare o rafforzare bias ingiusti
3) L’AI deve essere sviluppata e testata pensando alla sicurezza
4) L’AI deve garantire il massimo rispetto delle persone
5) L’AI deve incorporare principi di “privacy by design”
6) L’AI deve sostenere standard elevati di eccellenza scientifica
7) L’AI deve essere resa disponibile per usi conformi a questi principi
Supervised learning
Il modello viene addestrato con dati già categorizzati
Ci sono 2 tipi di supervised learning:
Classificazione: predire una variabile categorica (le immagini sono di cani o di gatti?). Regressione logistica
Regressione: predire una variabile numerica, come la previsione di vendite future. Regressione lineare
Consigliato quando il dataset è bilanciato tra i casi normali e i casi anomali
Consigliato se le anomalie cambiano nel tempo perchè ci si basa su un dataset labeled
Unsupervised Learning
Il modello viene addestrato con dati non categorizzati. È il modello che deve trovare anche le categorie
Ci sono 3 tipi di unsupervised learning:
Clustering: ragruppare punti. K-means clustering
Association: trova relazione tra variabili. Assosiation rule learning
Dimensionality reduction: diminuisce il numero di dimensioni. Principal component analysis
Consigliato quando nel dataset ci sono tanti casi normali e pochi anomali
Se le anomalie non cambiano molto nel tempo è possibile utilizzare anche questo metodo perchè non c'è bisogno di un forte riaddestramento con anomalie molto diverse
Machine Learning
Ci sono 4 opzioni per creare modelli di machine learning:
Pre-trained API.
Soluzione per chi ha poco expertise o poca intenzione di allenare un modello da zero
Elaborano anche dati audio
In questo modo tramite API è possibile richiamare modelli già creati e addestrati
BigQuery ML.
Soluzione per chi ha familiarità con bigquery e ha già i dati in bigquery
Usa query SQL per creare ed eseguire modelli di machine learning con bigquery.
Perfetta se ho già i miei dati in bigquery e mi vanno bene i modelli predefiniti
AutoML.
Soluzione in caso volessimo usare i nostri dati per allenare il modello e con una piccola parte di coding
Soluzione no code che consente di creare modelli di machine learning personalizzati su Vertex AI mediante un’interfaccia point-and-click
Addestramento personalizzato
Sono io che devo scrivere il codice, eseguire l’addestramento e il deployment
Pre trained API
Speech, text, and language APIs
Natural language API
Speech-to-text API
Text-to-speech API
Translation API
Image and Video API
Vision API
Vision intelligence API
Conventional AI API
Dialogflow API
AutoML
Il funzionamento di AutoML si basa su 4 fasi:
Auto data processing (TensorFlow Transform): qui AutoML fornisce funzioni per automatizzare parte del processo di preparazione dei dati
Architecture search and tuning: ricercar automatica dei modelli da utilizzare. Questa ricerca si basa su 2 tecnologie:
Neural Architecture Search (NAS): consente di cercare i modelli migliori e ottimizzare i parametri automaticamente
Transfer Learning: permette di velocizzare la ricerca mediante l’uso di modelli preaddestrati
Bagging ensemble: vengono utilizzati più modelli per calcolare le previsioni, quindi i risultati vengono accorpati, ad esempio facendone una media
Prediction
Custom Training
Determinare l'ambiente in cui far girare il codice
Container predefinito: ambiente standardizzato ma già pronto
Container personalizzato: ambiente vuoto. Dobbiamo importare noi le librerie (utile se ad esempio ne vogliamo una specifica versione). Bisogna anche specificare il tipo di macchina che vogliamo usare, la tipologia di dischi
Librerie degne di nota
JAX: è una libreria per il calcolo numerico ad alte prestazioni altamente flessibile e facile da usare. Offre nuove possibilità per ambienti di ricerca e di produzione
AI Generativa
Generative AI API
Gemini multimodal: elabora I dati in più modalità come testo, immagini e video
Embeddings for text and multimodal: convertono I dati multimodali in vettori numerici che possono essere elaborati da modelli ML, in particolare dai foundation model di AI generativa
Gemini for text and chat: che esegue attività linguistiche e conversazioni naturali.
Imagen: per le immagini, che genera immagini e didascalie
Chirp: per il parlato, che crea applicazioni vocali
Codey per la generazione di codice, che genera, compila codice
Principali modelli di Google
Gemini per l’elaborazione multimodale
Gemma, un modello open source leggero per la generazione di linguaggio
Codey per la generazione di codice
Imagen per l’elaborazione di immagini
Progettazione dei prompt
Temperatura: è un numero usato per ottimizzare il grado di casualità. In questo modo possiamo ottenere risposte più inaspettate. Una bassa temperatura significa un vocabolario più ristretto verso le parole più probabili
Top-K consente al modello la restituzione casuale di una parola tra quelle con il valore Top-K più alto in termini di possibilità.
Top-P consente al modello di restituire una parola casuale dal sottoinsieme più piccolo con una somma delle probabilità maggiore o uguale a P. Ad esempio, P(0,75) comporta il campionamento da un insieme di parole con una probabilità cumulativa maggiore di 0,75.
https://horsaspa-my.sharepoint.com/:i:/g/personal/davide_marcon_horsa_it/EcZNFETKpfZFsVECRXq4DQABoougqT6OEsIjQ14lxzi8wQ?e=Y8eaAL
https://horsaspa-my.sharepoint.com/:i:/g/personal/davide_marcon_horsa_it/EeAsXfakvM9GlKREyEpyVt4BwhBXHcnpMkOjkicxmF9paQ?e=yvnHMR
Vertex AI
Piattaforma unificata: permette la preparazione dei dati, la creazione e il deployment dei modelli, anche su larga scala
Permette di creare modelli con AutoML
Flusso di lavoro con Vertex AI:
Data preparation: caricamento e feature engineering
Model development: in questa fase addestramento e valutazione creano un ciclo in cui il modello viene addestrato, quindi valutato, per poi essere addestrato di nuovo
Model serving: viene eseguito il deployment e il monitoraggio del modello
Vertex AI Feature Store
: una repository centrale per gestire, pubblicare e condividere le feature
Vertex AI workbench
Colab enterprise
Flusso di lavoro sviluppo ML
1. Preparazione dei dati
2. Sviluppo del modello
Addestramento del modello
Indichiamo a
Vertex
dove sono posizionati i dati che vogliamo usare per l’addestramento. In base alla tipologia di dati dobbiamo selezionare “l’obiettivo”
Decidiamo poi il metodo di addestramento
Specifichiamo il budget e il prezzo
Valutazione del modello
Confusion matrix: è una misurazione delle prestazioni specifica per i problemi di classificazione del machine learning
Feature importance: mostra come ciascuna feature contribuisce alla previsione. Questo grafico è importante per capire quali feature tenere all’interno del modello e quali si possono tralasciare
Exaplanaible AI: funzionalità di
Vertex AI
. Serie di strumenti e framework che aiutano a comprendere e interpretare le previsioni effettuate da un modello di machine learning
https://horsaspa-my.sharepoint.com/:i:/g/personal/davide_marcon_horsa_it/EccKEjd3Zp1AlPPoiB4BLfUBs5m_KqLiXlt_tX84Tmg0bQ?e=7pGsJ9
3. Model Serving
Ci sono 2 fasi:
Deployment del modello. Ci sono due modi:
Eseguire il deployment del modello su un endpoint per ottenere previsioni in tempo reale, spesso chiamate online predictions. Ottimo quando è necessaria bassa latenza, come i suggerimenti di navigazione nei browser
Batch prediction. Ogni tot devo richiamare il modello per ottenere in risultato le previsioni. Es: ogni 2 settimane invio i dati sulle vendite per ottenere le previsioni.
Monitoraggio del modello: Vertex AI Pipelines per automatizzare, monitorare e regolamentare i sistemi di machine learning
Storage
Cloud Storage
Adatto a dati non strutturati
Ci sono 4 categorie di hardware di memorizzazione:
Standard Storage, per Hot Data
Nerline storage, per accesso una volta al mese
Coldline storage, Una volta ogni 90 giorni
Archive storage, accesso una volta all’anno
SQL database
BigQuery
Cloud SQL
Cloud CDN
Serve per creare una cache con i risultati delle query più frequenti
È utile quando i dati sono statici (foto, file ecc), non dinamici (info sugli utenti)
Read Replica
Utilizzata per avere ridondanza dei dati e migliorare le performance in lettura
Se il server principale smette di funzionare, la read replica non entra subito in azione. Per renderla il server principale è necessaria un'operazione manuale
Failover Replica
Utilizzata per creare una soluzione pronta ad entrare in attività in caso il server principale smetta di funzionare
Spanner
Serverless
Distribuito e scalabile orizzontalmente
Supporta transazioni ACID
Read-write con blocco
Durante la lettura e la scrittura dei dati il database blocca quei dati, in modo che altri servizi non possano modificarli
NoSQL database
BigTable
Estremamente veloce per letture/scritture sequenziali
Buona scelta per l'ingestione di serie storiche con ingestione di dati ad alta frequenza
Firestore
Ottimo per metadata
Cloud Datastore
Serverless
Scala automaticamente
Organizzato in documenti e collezioni (tipo JSON)
Ottimo per dati gerarchici, semi-strutturati e facili da mappare in oggetti (es. utenti, ordini, messaggi)
Object Hold
Previene la modifca o l'eleminazione degli oggetti se non vengono soddisfatte specifiche condizioni.
Questo ci serve per risolvere problemi di compliance
Sicurezza
Ruoli
Definisce i permessi che un utente o una risorsa può avere. Questo viene fatto tramite le policy
Service Account
Le risorse Google Cloud utilizzano un Service Account per ottenere i permessi di uno o più ruoli
IAP
Identity-Aware Proxy
tutorial utilizzo IAP per autenticazione ad una app web
KMS
Key Management System
tutorial creazione chiavi e portachiavi
AEAD Authenticated Encryption with Associated Data
Crittografa i dati anche a livello di riga o colonna in BigQuery
Quindi i dati sono crittografati sia nello storage che quando vengono trasferiti
Se l'organizzazione perde le chiavi, perde per sempre l'accesso ai dati
Gestione delle chiavi di crittografia
GMEK
Completamente gestito da Google
Non si ha il controllo delle chiavi, quindi difficile compliance con GDPR e altre leggi
CSEK
Chiavi fornite dall'utente
Creazione delle chiavi e salvataggio delle chiavi avviene al di fuori di Google Cloud
Non possono essere usate in BigQuery
CMEK
Creazione e salvataggio delle chiavi fatta in Google Cloud
la gestione, rotazione e revoca delle chiavi è fatta manualmente
Cloud Monitoring
Servizio che raccoglie metriche e log dal funzionamento dei servizi in Google Cloud
è possibile impostare un
alerting policy
per fare in modo di ricevere una notifica in caso accadano specifiche cose
Networking
Tutorial connessione di due progetti nella stessa organizzazione tramite 2 VPC differenti
Computazione
Private Kubernetes Cluster
Tutorial creazione private kubernetes cluster per deploy app
Looker
Caching per BigQuery
Usato per migliorare le performance e diminuire il tempo di caricamento
Questo significa anche che Looker potrebbe non mostrare gli ultimi dati entrati in BQ