La maggior parte delle domande di business reali attraversa più tabelle: capire il net revenue per categoria di prodotto richiede una fact table delle vendite, una dei resi e una dimensione prodotto, ciascuna in un dataset separato. Fino a poco tempo fa serviva un data engineer che pre-unisse tutto in un unico dataset prima che un analista potesse fare una domanda. I Multi-Dataset Topic di Amazon Quick Sight cambiano l’equazione: si possono definire chiavi di relazione esplicite, oppure fornire al motore di AI generativa abbastanza contesto semantico perché scriva la SQL da solo. Questo post si concentra sul secondo percorso, la SQL generata via Chat.
Chat vs relazioni definite
Con le relazioni definite, Quick Sight costruisce un grafo di join logici ed esegue inner join a runtime: il grafo deve essere un DAG, supporta fino a 12 dataset e produce risultati deterministici, adatto a reporting governato. Con la Chat, invece, l’AI legge la semantica del Topic (istruzioni, descrizioni, sinonimi) e genera SQL sull’intento, senza grafo pre-cablato: sono a portata di mano outer join, union, subquery, self-join e confronti cross-grain, senza vincoli strutturali. Le relazioni definite sono guardrail; la semantica è guida. I due approcci non si escludono: un Topic ibrido può definire le relazioni core e affidarsi alle istruzioni per i pattern esplorativi.
Il semantic guidance stack e le otto best practice
Il motore attinge a più livelli di metadati, che formano il semantic guidance stack: istruzioni a livello di dataset (grain, chiavi, regole di business), istruzioni a livello di Topic (logica cross-dataset e disambiguazione), sinonimi, field description, esclusioni di colonne e calculated field. Più precisamente si popolano questi livelli, più si restringe lo spazio delle interpretazioni SQL plausibili.
Le otto best practice: scrivere le istruzioni a livello di dataset come un data dictionary (scopo, grain, primary key, hint sulle foreign key, regole di business, edge case, regole di aggregazione); usare le istruzioni a livello di Topic per la logica cross-dataset e la disambiguazione dei termini; progettare i sinonimi su come parlano davvero gli utenti (da 3 a 7 per colonna interrogata di frequente); arricchire le field description pensando a un consumatore AI (definizione, unità, nullability, valori validi, comportamento di aggregazione); guidare i join via linguaggio naturale (implicit join hint, allineamento del grain, union, subquery, join condizionali); gestire pattern complessi come outer join, many-to-many con bridge table, gerarchie ricorsive self-join, role-playing dimension e confronti cross-grain; ridurre il rumore escludendo surrogate key, metadati ETL e campi deprecati (meno colonne visibili producono risposte più accurate); infine testare e iterare con una question bank di 15-25 domande per dataset, dal singolo dataset ai pattern complessi.
Quando scegliere cosa
Il decision framework indica relazioni definite per star schema stabili e ambienti regolati, approccio semantic-only (Chat) per analisi esplorative, outer join/union/subquery, gerarchie ricorsive e self-join, e ibrido per utenti non tecnici che necessitano di guardrail. Da tenere presente: quando istruzioni di Topic e di dataset entrano in conflitto, prevale il livello Topic; la row-level security è applicata a livello di dataset a prescindere da come l’AI unisce i dati; più dataset in un Topic significano più contesto e maggiore latenza, quindi conviene mantenere i Topic focalizzati su un singolo dominio.
- La Chat di Amazon Quick genera SQL a runtime dalla semantica, sbloccando outer join, union, self-join e confronti cross-grain non supportati dalle relazioni definite (solo inner join).
- La qualità delle risposte dipende dalla precisione dei metadati: istruzioni, sinonimi, descrizioni ed esclusioni di colonne riducono l’incertezza del modello.
- La row-level security resta applicata a livello di dataset anche quando l’AI combina più tabelle.
Fonte: Multi-dataset Topic best practices for Amazon Quick Chat — https://aws.amazon.com/blogs/machine-learning/multi-dataset-topic-best-practices-for-amazon-quick-chat/
Hai qualcosa da aggiungere? Unisciti alla discussione.