Creare un set di dati

Il servizio Query fornisce la funzionalità Create Table As Select (CTAS) per creare una tabella basata sull'output di un'istruzione SELECT oppure, come in questo caso, utilizzando un riferimento a uno schema XDM esistente in Adobe Experience Platform. Di seguito è riportato lo schema XDM per Final_subscription creato per questo esempio.

Diagramma dello schema final_subscription.

Nell'esempio seguente viene illustrato l'SQL utilizzato per creare il set di dati final_subscription_test2. final_subscription_test2 viene creato utilizzando lo schema Final_subscription. I dati vengono estratti dall'origine utilizzando una clausola SELECT per compilare alcune righe.

CREATE TABLE final_subscription_test2 with(schema='Final_subscription') AS (
        SELECT struct(userid, collect_set(subscription) AS subscription) AS _lumaservices3 FROM(
            SELECT user AS userid,
                   struct( last(eventtime) AS last_eventtime,
                           last(status) AS last_status,
                           offer_id,
                           subsid AS subscription_id)
                   AS subscription
             FROM (
                   SELECT _lumaservices3.msftidentities.userid user
                        , _lumaservices3.subscription.subscription_id subsid
                        , _lumaservices3.subscription.subscription_status status
                        , _lumaservices3.subscription.offer_id offer_id
                        , TIMESTAMP eventtime

                   FROM
                        xbox_subscription_event
                   UNION
                   SELECT _lumaservices3.msftidentities.userid user
                        , _lumaservices3.subscription.subscription_id subsid
                        , _lumaservices3.subscription.subscription_status status
                        , _lumaservices3.subscription.offer_id offer_id
                        , TIMESTAMP eventtime
                   FROM
                        office365_subscription_event
             )
             GROUP BY user,subsid,offer_id
             ORDER BY user ASC
       ) GROUP BY userid)

Nel set di dati iniziale final_subscription_test2, il tipo di dati struct viene utilizzato per contenere sia il campo subscription che il userid, che è univoco per ogni utente. Il campo subscription descrive le sottoscrizioni di prodotti per un utente. Possono esistere più sottoscrizioni, ma una tabella può contenere solo le informazioni relative a una sottoscrizione per riga.