Créer un jeu de données

Query Service fournit la fonctionnalité Create Table As Select (CTAS) pour créer un tableau en fonction du résultat d’une instruction SELECT, ou comme dans ce cas, en utilisant une référence à un schéma XDM existant dans Adobe Experience Platform. Le schéma XDM affiché ci-dessous est pour l’Final_subscription créé pour cet exemple.

Diagramme du schéma final_subscription.

L’exemple suivant illustre le langage SQL utilisé pour créer le jeu de données final_subscription_test2. final_subscription_test2 est créé en utilisant le schéma Final_subscription. Les données sont extraites de la source à l’aide d’une clause SELECT pour renseigner certaines lignes.

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)

Dans le jeu de données initial final_subscription_test2, le type de données struct est utilisé pour contenir à la fois le champ subscription et l’userid qui est propre à chaque personne. Le champ subscription décrit les abonnements aux produits pour une personne. Il peut y avoir plusieurs abonnements, mais un tableau ne peut contenir que les informations d’un abonnement par ligne.