Google PDE: Analisi con BigQuery e Ingegneria del Data Warehouse — Guida allo studio

Fa parte della Google Professional Data Engineer — Guida allo studio. Esercitati con risposte verificate nel centro esami Google, oppure fai test cronometrati su ExamRoll.io.

Panoramica

BigQuery è un warehouse di analisi MPP (Massively Parallel Processing) serverless e colonnare che separa lo storage dal calcolo, fornendo scalabilità quasi infinita, SQL ANSI e governance integrata. L’ingegneria del warehouse su BigQuery bilancia la progettazione dello schema (partizionamento, clustering, denormalizzazione vs normalizzazione, record nidificati), i modelli di ingestione (caricamenti batch, streaming, Storage Write API) e la gestione del carico di lavoro (edizioni on-demand o basate sulla capacità e prenotazioni). Una sicurezza robusta (viste autorizzate, policy a livello di riga/colonna, policy tag) coesiste con controlli dei costi e strumenti per le prestazioni per minimizzare i byte scansionati e ridurre la latenza. Questa sezione tratta la progettazione di base, le operazioni e le modalità di fallimento che è necessario prevedere in produzione.

Storage e Semantica: Dataset, Tabelle, Viste e Accesso al Lake

Ottimizzazione delle query e gestione del carico di lavoro

undefined

Ingestione, federazione e ripristino

undefined

Sicurezza, governance e controllo dei costi

Scenario pratico

NovaCare Health gestisce una piattaforma di telemedicina regionale. Un design basato su una singola tabella patient_and_visit ha supportato un progetto pilota, ma con una scalabilità di 100 volte superiore i report vanno in timeout, compaiono duplicati a causa degli upsert in streaming e i partner richiedono un rigoroso isolamento dei dati.

Approccio:

  1. Riprogettare lo schema e il layout

    • Creare tabelle principali normalizzate: patients(patient_id, demographics, updated_at) e visits(visit_id, patient_id, visit_ts, metrics, updated_at).
    • Rendere visits una tabella partizionata su DATE(visit_ts), clusterizzata per patient_id e visit_id. Mantenere le piccole dimensioni di riferimento denormalizzate all’interno di visits per la velocità delle dashboard.
    • Motivazione: la normalizzazione evita costosi self-join e pesanti aggiornamenti di righe su una singola tabella “calda” (hot table). Il partizionamento elimina le scansioni storiche (pruning); la clusterizzazione co-localizza join e filtri su patient_id, riducendo lo shuffle.
  2. Eseguire l’ingestione con la Storage Write API e garantire l’idempotenza

    • Utilizzare una pipeline Dataflow per analizzare gli eventi in entrata, convalidarli e scriverli su stream nominati nella Storage Write API con offset idempotenti.
    • Instradare gli eventi malformati a una tabella BigQuery dead-letter per il triage.
    • Motivazione: la Storage Write API offre throughput più elevato, latenza inferiore e migliori garanzie di deduplicazione rispetto allo streaming legacy. Il dead-lettering preserva la visibilità sui problemi di qualità dei dati dei partner.
  3. Progettare per la freschezza e la deduplicazione nelle query

    • Per l’analisi interattiva, aggiungere un breve watermark (ad esempio, 2 volte la disponibilità osservata) prima di interrogare la partizione più recente; oppure filtrare per _PARTITIONDATE dove partition_date <= CURRENT_DATE() per escludere le righe in transito (in-flight).
    • Utilizzare ROW_NUMBER() OVER (PARTITION BY visit_id ORDER BY event_ts DESC) = 1 nelle viste che devono tollerare i tentativi di ripetizione (retry) a monte.
    • Motivazione: lo streaming è “eventually consistent” per un breve intervallo. Il watermarking e la deduplicazione basata su finestre (window-based) proteggono le dashboard da lacune e duplicati transitori.
  4. Accelerare gli aggregati comuni con le viste materializzate

    • Creare viste materializzate (MV) allineate alle partizioni su visits per i KPI giornalieri raggruppati per DATE(visit_ts) e coorti di pazienti. Assicurarsi che i predicati siano compatibili con la riscrittura (rewrite).
    • Motivazione: le viste materializzate riducono la latenza e i byte scansionati per i report ricorrenti; BigQuery riscrive le query per utilizzare la MV in modo trasparente.
  5. Applicare l’isolamento dei tenant e la sicurezza granulare

    • Posizionare ogni partner in un set di dati dedicato. Concedere ruoli di set di dati con privilegio minimo ai gruppi di partner.
    • Pubblicare viste autorizzate per benchmark condivisi e trasversali ai partner senza rivelare le tabelle grezze.
    • Applicare policy tag alle colonne PII e aggiungere policy di accesso alle righe (row access policies) a visits per limitare l’accesso per partner_id per l’analisi interna multi-tenant.
    • Motivazione: la segmentazione per set di dati per tenant, unita a viste autorizzate e policy tag, applica il principio del privilegio minimo consentendo al contempo una condivisione controllata.
  6. Gestire i carichi di lavoro con edizioni, prenotazioni e autoscaling

    • Acquistare capacità nelle edizioni di BigQuery e creare due prenotazioni (reservations): etl (per i sink di Dataflow, trasformazioni pianificate) e bi (per query ad hoc/reporting). Assegnare i progetti di conseguenza e abilitare l’autoscaling per assorbire i picchi.
    • Pianificare le query ELT come batch con SLA chiari; impostare maximum_bytes_billed per i progetti interattivi.
    • Motivazione: prenotazioni separate impediscono che l’ETL sottragga risorse alla BI. L’autoscaling gestisce i carichi di lavoro con picchi improvvisi (bursty loads) senza sovradimensionamento (overprovisioning).
  7. Governare i costi e osservare l’utilizzo

    • Richiedere filtri su visit_ts; rifiutare SELECT * nelle viste condivise. Utilizzare INFORMATION_SCHEMA.JOBS per rilevare scansioni non eliminate (non-pruned scans) e join sbilanciati (skewed joins).
    • Esportare gli audit log di BigQuery su Pub/Sub con un sink di log filtrato per i job di inserimento su visits per attivare alert di monitoraggio in caso di picchi imprevisti.
    • Motivazione: il “byte-pruning” e la proiezione delle colonne controllano i costi; gli audit log evidenziano i pattern di accesso e le anomalie quasi in tempo reale.
  8. Pianificare il ripristino e i backfill

    • Abilitare policy di scadenza predefinite per le tabelle che siano in linea con le esigenze di conformità e di time travel. Per modifiche di grandi dimensioni, creare uno snapshot, eseguire le modifiche e ripristinare rapidamente se necessario. Utilizzare cloni di tabella per analisi di tipo “what-if” in dev/test senza duplicare lo storage.
    • Motivazione: snapshot e cloni forniscono reti di sicurezza veloci ed efficienti in termini di spazio; il time travel copre piccoli ripristini correttivi.
  9. Integrare il ML in-warehouse

    • Archiviare le feature ingegnerizzate (engineered features) in tabelle partizionate e addestrare modelli di classificazione BigQuery ML per il rischio di riammissione. Per i modelli esterni ospitati su Vertex AI, creare modelli remoti (remote models) e mettere in cache le previsioni in una tabella clusterizzata per join a bassa latenza.
    • Motivazione: mantenere il ML vicino ai dati riduce lo spostamento e la complessità della governance; la cache dell’inferenza remota ammortizza la latenza e i costi.

Con questo design, NovaCare ottiene performance prevedibili con un carico 100 volte superiore, un forte isolamento dei tenant e costi governati, preservando al contempo analisi a bassa latenza e un ripristino riproducibile.


Archiviazione dei Dati · Tutti i domini · Elaborazione di Flussi con Dataflow e Apache Beam

Esercitati su queste domande → · Pratica cronometrata su ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Supera l'esame →

Sfoglia Google →

Related guides

Accesso tutto incluso

Un abbonamento. Ogni esame.

Ogni piano sblocca la ricerca illimitata di risposte, test pratici, spiegazioni AI e la libreria completa di risorse — in oltre 20 lingue.

Mensile
24.87
Just €0.83/day
Tutto incluso:
  • Ricerca risposte illimitata
  • Test pratici illimitati
  • Spiegazioni basate su AI
  • Libreria completa di risorse
  • Oltre 20 lingue
  • Aggiornamenti settimanali dei contenuti
  • Premi e referral
  • Supporto prioritario
Inizia la prova gratuita

Nessuna carta di credito richiesta*

Miglior valore
12 mesi
179.87
Just €0.49/daySave 40%
Tutto incluso:
  • Ricerca risposte illimitata
  • Test pratici illimitati
  • Spiegazioni basate su AI
  • Libreria completa di risorse
  • Oltre 20 lingue
  • Aggiornamenti settimanali dei contenuti
  • Premi e referral
  • Supporto prioritario
Inizia la prova gratuita

Nessuna carta di credito richiesta*

✓ Piano gratuito incluso · ✓ Annulla in qualsiasi momento · ✓ Tutti i piani sbloccano il prodotto completo