Flatten delle strutture di dati nidificate da utilizzare con strumenti BI di terze parti
Adobe Experience Platform Query Service supporta l'impostazione FLATTEN
per la connessione a un database tramite strumenti BI di terze parti. Questa funzione appiattisce le strutture di dati nidificate negli strumenti di business intelligence di terze parti per migliorarne l’usabilità e ridurre il carico di lavoro necessario per recuperare, analizzare, trasformare e creare rapporti sui dati.
Molti strumenti di business intelligence come Tableau e Power BI non supportano in modo nativo strutture di dati nidificate. L'impostazione FLATTEN
elimina la necessità di creare visualizzazioni SQL sui dati per fornire una versione flat o di utilizzare i processi di Query Service CTAS
o INSERT INTO
per duplicare i set di dati in versioni flat quando si utilizzano schemi ad hoc.
L'impostazione FLATTEN
richiama la struttura di ciascun campo foglia nella radice della tabella e assegna al campo un nome che segue quello dello spazio dei nomi originale. Questo consente di utilizzare la notazione del punto per far corrispondere un campo al relativo percorso Experience Data Model (XDM), mantenendo al contempo il contesto del campo.
Prerequisiti
L'utilizzo dell'impostazione FLATTEN
richiede una buona conoscenza dei seguenti componenti di Adobe Experience Platform:
-
Sistema XDM: una panoramica di alto livello di XDM e della relativa implementazione in Experience Platform.
- Creare uno schema ad hoc: uno schema XDM con campi a cui viene assegnato un namespace per l'utilizzo solo da un singolo set di dati, viene definito schema ad hoc. Gli schemi ad hoc vengono utilizzati in vari flussi di lavoro di acquisizione dati, ad Experience Platform per la creazione di alcuni tipi di connessioni sorgente.
-
Sandbox: Experience Platform fornisce sandbox virtuali che suddividono una singola istanza Platform in ambienti virtuali separati, utili per le attività di sviluppo e aggiornamento delle applicazioni di esperienza digitale.
-
Strutture di dati nidificate: questo documento fornisce esempi di come creare, elaborare o trasformare set di dati con tipi di dati complessi, incluse strutture di dati nidificate.
Connettersi a un database utilizzando l'impostazione FLATTEN connect-with-flatten
L'impostazione FLATTEN
appiattisce le strutture di dati nidificate in colonne separate in cui il nome dell'attributo diventa il nome della colonna che contiene i valori di riga. Quando si utilizzano dati in strumenti BI che non supportano strutture di dati nidificate, questa impostazione migliora l’usabilità degli schemi ad hoc e riduce il carico di lavoro necessario.
Quando ci si connette a Query Service con il client di terze parti scelto, aggiungere l'impostazione FLATTEN
al nome del database. Per informazioni su come connettere uno strumento BI specifico, consultare la relativa documentazione nella panoramica sulla connessione dei client a Query Service. La stringa di connessione deve contenere:
- Il nome della sandbox.
- Due punti seguiti da
all
o un ID set di dati, un ID visualizzazione o un nome database specifico. - Un punto interrogativo (?) seguito dalla parola chiave
FLATTEN
.
L’input deve avere il seguente formato:
{sandbox_name}:{all/ID/database_name}?FLATTEN
Di seguito è riportato un esempio di stringa di connessione:
prod:all?FLATTEN
Esempio example
Lo schema di esempio utilizzato in questa guida utilizza il gruppo di campi standard Dettagli Commerce, che utilizza la struttura di oggetti commerce
e l'array productListItems
. Consulta la documentazione XDM per ulteriori informazioni sul gruppo di campi Dettagli Commerce. Una rappresentazione della struttura dello schema è visibile nell’immagine seguente.
Se lo strumento BI non supporta strutture di dati nidificate, può essere difficile fare riferimento ai campi nidificati se contengono valori serializzati, ad esempio commerce
e productListItems
nello schema di esempio. Questi valori possono essere visualizzati come parti di un singolo campo stringa commerce
codificato e non sono realisticamente inutilizzabili.
I valori seguenti rappresentano commerce.order.priceTotal
(3018.0), commerce.order.purchaseID
(c9b5aff9-25de-450b-98f4-4484a2170180) e commerce.purchases.value
(1.0) in campi nidificati con formattazione errata.
("(3018.0,c9b5aff9-25de-450b-98f4-4484a2170180)","(1.0)")
Utilizzando l'impostazione FLATTEN
, è possibile accedere a campi separati all'interno dello schema o a sezioni intere della struttura dati nidificata utilizzando la notazione del punto e il nome del percorso originale. Di seguito è riportato un esempio di questo formato che utilizza il gruppo di campi commerce
.
commerce.order.priceTotal
commerce.order.purchaseID
commerce.purchases.value
L'impostazione FLATTEN
presenta alcune limitazioni quando si tratta di altre strutture di dati. I dettagli completi sono forniti nella sezione limitazioni.
Utilizzare le virgolette per i campi nelle query quotation-marks
I campi radice appiattiti ora utilizzano la notazione del punto per corrispondere ai relativi percorsi XDM. Quando vengono utilizzati in una query, i campi devono essere racchiusi tra virgolette ("").
L'esempio SQL seguente visualizza lo stato originale della query nidificata:
SELECT YEAR(timestamp) AS year,
SUM(commerce.order.priceTotal) AS revenue
FROM purchase_events_dataset
WHERE commerce.purchases.value > 0
GROUP BY 1;
Quando si utilizzano i campi di dati appiattiti, la query viene scritta utilizzando la notazione del punto e racchiusa tra virgolette, come illustrato di seguito:
SELECT YEAR(timestamp) AS year,
SUM("commerce.order.priceTotal") AS revenue
FROM purchase_events_dataset
WHERE "commerce.purchases.value" > 0
GROUP BY 1;
Limitazioni limitations
L'impostazione FLATTEN
non appiattisce le seguenti strutture di dati:
EXPLODE
per accedere agli array.Per risolvere le limitazioni di Map e Array, è necessario utilizzare gli strumenti di BI per la modifica delle istruzioni SQL raw, ad esempio Opzioni avanzate -> Istruzione SQL in Power BI.
Per risolvere le limitazioni relative a mappe e array sono necessari strumenti di business intelligence, ad esempio la modifica delle istruzioni SQL non elaborate. Consulta la guida su come utilizzare le opzioni avanzate di Power BI per immettere una query SQL personalizzata nella sezione istruzione SQL.
Passaggi successivi
Questo documento illustra come appiattire le strutture di dati nidificate da utilizzare con strumenti di business intelligence di terze parti. Se non hai già connesso il client, consulta la panoramica della connessione client per un elenco dei client di terze parti supportati.