Création d’une table avec une option permettant de l’activer pour le profil

NOTE
La requête SQL fournie ci-dessous suppose l’utilisation d’un espace de noms préexistant.

Utilisez une requête CTAS (Create Table as Select) pour créer un jeu de données, attribuer des types de données, définir une identité principale, créer un schéma et le marquer comme activé pour les profils. L’exemple d’instruction SQL ci-dessous crée un jeu de données et le rend disponible pour Real-Time Customer Data Platform (Real-Time CDP). Votre requête SQL suit le format illustré dans l’exemple ci-dessous :

CREATE TABLE <your_table_name> [IF NOT EXISTS] (fieldname <your_data_type> primary identity namespace <your_namespace>, [field_name2 <your_data_type>]) [WITH(LABEL='PROFILE')];

Les types de données pris en charge sont les suivants : booléen, date, datetime, texte, flottant, bigint, entier, mappage, tableau et struct/row.

Le bloc de code SQL ci-dessous fournit des exemples pour définir les types de données struct/row, map et array. La ligne 1 illustre la syntaxe des lignes. La ligne 2 illustre la syntaxe de mappage et la ligne 3, la syntaxe de tableau.

ROW (Column_name <data_type> [, column name <data_type> ]*)
MAP <data_type, data_type>
ARRAY <data_type>

Les jeux de données peuvent également être activés pour le profil via l’interface utilisateur d’Experience Platform. Pour plus d’informations sur le marquage d’un jeu de données comme étant activé pour le profil, consultez la documentation activer un jeu de données pour le profil client en temps réel.

Dans l’exemple de requête ci-dessous, le jeu de données decile_table est créé avec id comme colonne d’identité principale et l’espace de noms est IDFA. Il comporte également un champ nommé decile1Month de type de données map. La table créée (decile_table) est activée pour le profil.

CREATE TABLE decile_table (id text PRIMARY KEY NAMESPACE 'IDFA',
            decile1Month map<text, integer>) WITH (label='PROFILE');

Une fois la requête exécutée, l’identifiant du jeu de données est renvoyé à la console, comme illustré dans l’exemple ci-dessous.

Created Table DataSet Id
>
637fd84969ba291e62dba79f
(1 row)

Utilisez label='PROFILE' sur une commande CREATE TABLE pour créer un jeu de données activé pour le profil. La fonctionnalité upsert est activée par défaut. La fonctionnalité upsert peut être remplacée à l’aide de la commande ALTER, comme illustré dans l’exemple ci-dessous.

ALTER TABLE <your_table_name> DROP label upsert;

Consultez la documentation sur la syntaxe SQl pour plus d’informations sur l’utilisation de la commande ALTER TABLE et de label dans le cadre d’une requête CTAS.

Construit pour faciliter la gestion des jeux de données dérivés via SQL

Les fonctionnalités décrites ci-dessous sont très utiles lors de la gestion de jeux de données dérivés via SQL.

Modifier les jeux de données existants à activer pour le profil

La structure SQL ALTER TABLE peut être utilisée pour rendre les jeux de données existants activés pour le profil. Pour ce faire, une balise activée pour le profil doit être ajoutée au schéma et au jeu de données correspondant.

ALTER TABLE your_decile_table ADD label 'PROFILE';
NOTE
Une fois la commande ALTER TABLE exécutée, la console renvoie ALTER SUCCESS.

Ajouter une identité principale à un jeu de données existant

Marquez une colonne existante dans un jeu de données comme jeu d’identités principal. Dans le cas contraire, une erreur se produit. Pour définir une identité principale à l’aide de SQL, utilisez le format de requête affiché ci-dessous.

ALTER TABLE <your_table_name> ADD CONSTRAINT primary identity NAMESPACE

Par exemple :

ALTER TABLE test1_dataset ADD CONSTRAINT PRIMARY KEY(id2) NAMESPACE 'IDFA';

Dans l’exemple fourni, id2 est une colonne existante dans test1_dataset.

Désactivation d’un jeu de données pour le profil

Si vous souhaitez désactiver le tableau pour les utilisateurs de profil, vous devez utiliser la commande DROP. Vous trouverez ci-dessous un exemple d’instruction SQL USE DROP.

ALTER TABLE table_name DROP LABEL 'PROFILE';

Par exemple :

ALTER TABLE decile_table DROP label 'PROFILE';

Cette instruction SQL fournit une méthode alternative efficace à l’utilisation d’un appel API. Pour plus d’informations, consultez la documentation sur la désactivation d’un jeu de données en vue de son utilisation avec Real-Time CDP à l’aide de l’API des jeux de données.

Autoriser la mise à jour et l’insertion de fonctionnalités pour votre jeu de données

La commande UPSERT permet d'insérer un nouvel enregistrement ou de mettre à jour les données existantes dans une table. Plus précisément, il vous permet de mettre à jour une ligne existante si une valeur spécifiée existe déjà dans un tableau, ou d'insérer une nouvelle ligne si la valeur spécifiée n'existe pas déjà.

Vous trouverez ci-dessous un exemple d’instruction utilisant le bon format.

ALTER TABLE table_name ADD LABEL 'UPSERT';

Par exemple :

ALTER TABLE table_with_a_decile ADD label 'UPSERT';

Cette instruction SQL fournit une méthode alternative efficace à l’utilisation d’un appel API. Pour plus d’informations, consultez la documentation sur la activation d’un jeu de données en vue de son utilisation avec Real-Time CDP et UPSERT à l’aide de l’API des jeux de données.

Désactiver la fonctionnalité de mise à jour et d’insertion pour votre jeu de données

Cette commande désactive la possibilité de mettre à jour et d’insérer des lignes dans votre jeu de données.

Vous trouverez ci-dessous un exemple d’instruction utilisant le bon format.

ALTER TABLE table_name DROP LABEL 'UPSERT';

Par exemple :

ALTER TABLE table_with_a_decile DROP label 'UPSERT';

Afficher les informations supplémentaires associées à chaque table

Des métadonnées supplémentaires sont conservées pour les jeux de données activés pour le profil. Utilisez la commande SHOW TABLES pour afficher une colonne labels supplémentaire qui fournit des informations sur les libellés associés aux tableaux.

Vous trouverez ci-dessous un exemple de sortie de cette commande :

       name          |        dataSetId         |     dataSet    | description | labels
---------------------+--------------------------+----------------+-------------+----------
 luma_midvalues      | 5bac030c29bb8d12fa992e58 | Luma midValues |             | false
 luma_postvalues     | 5c86b896b3c162151785b43c | Luma midValues |             | false
 table_with_a_decile | 5c86b896b3c162151785b43c | Luma midValues |             | 'UPSERT', 'PROFILE'
(3 rows)

Dans l’exemple, vous pouvez constater que le table_with_a_decile a été activé pour le profil et appliqué avec des libellés tels que 'UPSERT', 'PROFILE' comme décrit précédemment.

Créer un groupe de champs avec SQL

Les groupes de champs peuvent désormais être créés à l’aide de SQL. Vous aurez ainsi la possibilité d’utiliser l’éditeur de schémas dans l’interface utilisateur d’Experience Platform ou d’effectuer un appel API vers le registre des schémas.

Vous trouverez ci-dessous un exemple d’instruction permettant de créer un groupe de champs.

CREATE FIELDGROUP <field_group_name> [IF NOT EXISTS]  (field_name <data_type> primary identity namespace <namespace>, [field_name_2 >data_type>]) [ WITH(LABEL='PROFILE') ];
IMPORTANT
La création d’un groupe de champs via SQL échoue si l’indicateur label n’est pas fourni dans l’instruction ou si le groupe de champs existe déjà.
Assurez-vous que la requête inclut une clause IF NOT EXISTS pour éviter l’échec de la requête, car le groupe de champs existe déjà.

Un exemple concret peut ressembler à celui illustré ci-dessous.

CREATE FIELDGROUP field_group_for_test123 (decile1Month map<text, integer>, decile3Month map<text, integer>, decile6Month map<text, integer>, decile9Month map<text, integer>, decile12Month map<text, integer>, decilelietime map<text, integer>) WITH (LABEL-'PROFILE');

L’exécution réussie de cette instruction renvoie l’identifiant du groupe de champs créé. Par exemple c731a1eafdfdecae1683c6dca197c66ed2c2b49ecd3a9525.

Pour plus d’informations sur les autres méthodes🔗 consultez la documentation sur la création d’un groupe de champs dans l’éditeur de schémas ou sur l’utilisation de l’API schema Registry.