Introduzione a AI.AGG e al contesto delle aggregazioni semantiche

Per più di dieci anni BigQuery è stato il punto di riferimento per le aggregazioni strutturate su scala petabyte, calcolando somme finanziarie, conteggi di utenti attivi e medie storiche in pochi secondi. Tuttavia, l’avvento di grandi volumi di dati non strutturati – log di applicazioni, trascrizioni di assistenza clienti, immagini di prodotto e report diagnostici – ha evidenziato un’importante lacuna: i motori SQL relazionali non sono in grado di sintetizzare temi semantici da milioni di righe di testo o dati multimodali.

Le funzioni AI di livello riga introdotte da BigQuery, come AI.GENERATE e AI.CLASSIFY, hanno permesso di classificare o generare contenuti su singole righe, ma l’analisi olistica di interi dataset rimaneva una sfida a causa della limitazione della finestra di contesto dei modelli di linguaggio di grandi dimensioni (LLM). Anche con modelli avanzati come Gemini, non è possibile inserire milioni di righe in un unico prompt senza incorrere in troncamenti o errori di esecuzione.

AI.AGG nasce per superare questo ostacolo, trasformando l’aggregazione semantica in un problema di map‑reduce distribuito gestito interamente all’interno di BigQuery. Grazie a una singola istruzione SQL, è ora possibile fornire istruzioni in linguaggio naturale e ottenere un riepilogo semantico unificato per ogni gruppo definito nella clausola GROUP BY.

Architettura multi‑livello di batching

Quando si invoca AI.AGG, il motore di BigQuery esegue automaticamente una serie di passaggi:

    • Validazione a livello di riga: il sistema verifica che nessuna riga superi il limite di 10 MiB; le righe troppo grandi vengono scartate o provocano un errore.
    • Batching sicuro per il contesto: le righe vengono raggruppate dinamicamente in batch che rientrano nei limiti di token del modello Gemini scelto.
    • Inferenza parallela: il prompt in linguaggio naturale viene applicato a ciascun batch in parallelo, generando sintesi intermedie tramite Vertex AI.
    • Sintesi ricorsiva: le sintesi intermedie vengono nuovamente inviate al LLM con la stessa istruzione, finché non si ottiene una singola stringa finale per ogni gruppo.

Questa pipeline ricorsiva richiede l’uso di modelli “full‑weight” (non distillati), a differenza di funzioni come AI.CLASSIFY che possono sfruttare modelli CPU leggeri. Il risultato è una capacità di ragionamento profondo capace di unire concetti disparati provenienti da batch distinti.

Supporto multimodale integrato

AI.AGG supporta nativamente input testuali e multimodali. Utilizzando le Object Tables di BigQuery e la funzione OBJ.GETACCESSURL, è possibile aggregare insight visivi da migliaia di immagini archiviate su Cloud Storage senza spostare o transcodificare i dati. Questo apre la porta a scenari quali l’analisi di foto di prodotti, diagrammi tecnici o screenshot di errori.

Consigli pratici per gli ingegneri dei dati

Regola di esclusività NULL: quando si passa una STRUCT a AI.AGG, se anche un solo campo è NULL l’intera riga è considerata NULL e viene silenziosamente scartata. Per evitare perdite involontarie, avvolgere i campi nullable con IFNULL(), ad esempio IFNULL(description, 'Nessuna descrizione').

Filtraggio preliminare: a causa della natura ricorsiva del batching, il numero totale di token inviati a Gemini supera quello dei dati originali. È consigliabile limitare l’ambito della query con clausole WHERE e LIMIT per ridurre costi e latenza.

Caching del contesto: per dataset statici e di grandi dimensioni BigQuery offre il Gemini Context Caching, che riduce i token di input e migliora la velocità di esecuzione. Prima di lanciare la query, è possibile stimare i costi con la funzione AI.COUNT_TOKENS.

Progettazione dei prompt

Integrare modelli generativi in pipeline SQL deterministiche richiede prompt ben definiti:

    • Contratti di output espliciti: specificare il formato atteso, ad esempio “Restituisci un unico array JSON di stringhe, senza markdown o testo conversazionale”.
    • Delimitatori contestuali: usare prefissi come “- Descrizione: ” per ancorare il modello e impedire confusione tra campi.
    • Gestione degli stati di errore: richiedere al modello di restituire null per informazioni mancanti invece di inventare dati.
    • Few‑shot anchoring: includere un esempio letterale del risultato desiderato all’interno del prompt per guidare l’attenzione.

Casi d’uso aziendali trasformativi

L’efficacia di AI.AGG si manifesta soprattutto quando viene combinata con le classiche operazioni GROUP BY:

1. Analisi diagnostica di log di sistema ad alto volume

Microservizi distribuiti generano miliardi di voci di log che spesso nascondono degradazioni sottili (es. “thrashing della memoria” o “drift dell’orologio di sistema”). Con AI.AGG è possibile raggruppare i log per componente e generare riepiloghi diagnostici leggibili dall’uomo.

Suggerimento di prompt: chiedere al modello di descrivere prima “il normale funzionamento” del componente, poi di evidenziare eventuali anomalie. Questo riduce le allucinazioni del modello su log completamente sani.

2. Creazione del “cloud dati agentico”

Immaginate di ereditare un archivio di ticket di supporto legacy senza categorie. AI.AGG può leggere i testi grezzi, sintetizzare una lista definitiva di categorie e restituirla come array JSON. Successivamente, mediante JSONVALUEARRAY è possibile alimentare classifier a livello di riga come AI.CLASSIFY, realizzando un’intera pipeline di etichettatura autonoma interamente in SQL, senza script Python esterni.

3. Scoperta di temi macro a livello di autore o prodotto

Aggregando i commenti di migliaia di autori, AI.AGG può produrre una narrazione sintetica che evidenzia i temi più discussi, fornendo insight strategici per il marketing o la gestione prodotto.

Governance, costi e guardrail di produzione

Per garantire una messa in produzione sicura, è fondamentale tenere conto di alcune limitazioni operative:

    • Il risultato finale per ogni gruppo è limitato a 10 000 token.
    • Le singole righe di payload non devono superare 10 MiB.
    • Nel caso di array multimodali, limitare a meno di 10 immagini per riga per evitare salti silenziosi.
    • Si consiglia di non superare 20 milioni di righe per query e di non generare più di 1 000 gruppi distinti.

AI.AGG opera interamente entro il framework di governance di BigQuery, supportando i VPC Service Controls (VPC‑SC) per prevenire l’esfiltrazione dei dati. In caso di errori transitori in un batch, la funzione salta le righe problematiche senza far fallire l’intera query, garantendo resilienza.

Esempio pratico di utilizzo

Di seguito un esempio di query che combina AI.AGG con metriche SQL tradizionali per scoprire argomenti di discussione tra i top commenter di Hacker News:

WITH top_commenters AS (

SELECT

`by` AS author,

`text`

FROM `bigquery-public-data.hacker_news.comments`

WHERE `by` IS NOT NULL

GROUP BY author, text

HAVING COUNT(*) > 100

)

SELECT

author,

AI.AGG(

ARRAY_AGG(text),

'Riassumi i principali argomenti trattati in questi commenti in massimo 200 parole.'

) AS summary

FROM top_commenters

GROUP BY author

ORDER BY author;

La query aggrega tutti i commenti di ogni autore, li passa a AI.AGG con un prompt di sintesi, e restituisce un riepilogo per ciascuno. Il risultato è una vista leggibile e immediatamente azionabile.

Conclusioni

AI.AGG rappresenta un salto di qualità per l’analisi semantica su larga scala, eliminando la necessità di complessi pipeline esterne di map‑reduce e consentendo alle organizzazioni di estrarre insight da dati testuali e visivi direttamente all’interno di BigQuery. Con un’architettura di batching ricorsivo, supporto multimodale, e un set di best practice per prompt e governance, la funzione è pronta per trasformare i dataset petabyte in conoscenza operativa. La preview è disponibile ora; sperimentare con AI.AGG oggi significa prepararsi a una nuova era di analytics basate su linguaggio naturale.