Comprendre les différents types de tables

ACTITO permet de construire votre modèle de données sur le principe d’un modèle en étoile centré sur le profil.

En tant qu'élément central de ce modèle, la table de profil constitue le premier niveau du modèle de données.

Pour bénéficier de la richesse du Modèle de donnée ACTITO, vous pourrez combiner plusieurs types de tables personnalisées gravitant autour de cette table de profils.

Ces autres types de tables disponibles sont :

  • la table de type interaction

  • la table de type données liées

  • la table de type référentiel

Niveau central du modèle de données

Table de profil

images/download/thumbnails/615292905/image2019-5-24_11-19-52.png

C’est la table principale dans ACTITO. Elle est obligatoire avant toute création d'autres tables.
Elle permet d’accueillir les informations des contacts qui seront sollicités par vos communications marketing.

Elle reprendra :

  • les données signalétiques de vos clients/membres/donateurs/prospects/patients (nom, prénom, sexe, langue, date de naissance…)

  • les données des moyens de contact (adresse e-mail, numéros de téléphone, adresse postale,…)

  • les données d’abonnements

  • les données de segmentation

Pour plus d'informations sur la fiche de profil, nous vous invitons à consulter le chapitre dédié aux "Profils".

Niveau périphérique du modèle de données

Table de type Interaction

images/download/thumbnails/615292905/image2019-5-24_11-20-57.png

Usage :

  • C’est un type de table qui permet de contenir les données ‘ponctuelles’ qui seront enregistrées à chaque fois qu’un profil interagit avec votre activité. Une nouvelle ‘interaction’ sera alors créée dans cette table.

Exemple de données à stocker via ce type de Table :

  • Un achat, une demande de devis, une commande, une ligne de commande, un panier abandonné, une demande de parrainage, une demande de catalogue, …

Relation à la table de profil :

  • N - 1 avec la table de profil : Plusieurs interactions peuvent être enregistrées pour un même profil

Informations complémentaires :

  • Chaque interaction pourra être utilisée dans ACTITO pour

    • Déclencher une communication

    • Personnaliser une communication

    • Faire un ciblage

  • Au niveau du ciblage, des opérateurs de calculs seront disponibles sur ce type de table

    • "nombre de" : permet de compter le nombre d'interactions

    • "total de" : permet de calculer le cumul des attributs numériques (par exemple, l'attribut "montant" d'une interaction "achat")

Représentation dans ACTITO

Au niveau global, une Table de type Interaction se voit dans la zone droite de l’application "DataMart Studio", qui donne un accès rapide à l’application "Gérer les données des tables ".
Il est possible de voir directement le détail des champs de cette table en cliquant sur la Table.

images/download/attachments/615292905/image2019-5-14_15-16-1.png

Au niveau du profil, les interactions peuvent être retrouvées dans l’onglet "Interactions" de chaque profil. Elles sont triées par ordre de création.

images/download/attachments/615292905/image2019-5-14_15-9-27.png

Frontières d'usage

  • Nombre maximum d’interactions par table : 10 millions

  • Nombre maximum de champs dans une table : 40


Table de type Données liées

images/download/thumbnails/615292905/image2019-5-24_11-21-54.png

Usage :

Ce type de table permet de stocker des données en extension de la table profil.
A la différence des tables d’interaction qui servent à collecter les événements ‘ponctuels’ au moment où ils se produisent, ce type de table "Données liées" sert à recueillir des informations liées au profil qui sont plus générales et stables sur une plus longue période de temps.

Il peut notamment s’agir de stocker des données déduites d’autres informations, pour simplifier l’utilisation de ces données pertinentes.
Un autre usage est de stocker des données relatives à un tiers lié au profil.

Exemple de données à stocker via ce type de Table :

  • Données déduites : Un panier moyen par catégorie, un historique d’achat sur une période de temps, les véhicules possédés, l’état du compte de fidélité, …

  • Tiers liés au profil : Des enfants, des animaux, des filleuls, …

Relation à la table de profil :

  • 1 - 1 avec la table de profil : Dans le cas des données déduites, chaque profil est associé à son propre agrégat, son propre historique, ...

  • N - 1 avec la table de profil : Dans le cas des tiers liés au profil, chaque profil peut être associé à plusieurs tiers

Représentation dans ACTITO

Au niveau global, une Table de type Interaction se voit dans la zone droite de l’application "DataMart Studio", qui donne un accès rapide à l’application "Gérer les données des tables ".
Il est possible de voir directement le détail des champs de cette table en cliquant sur la Table.

images/download/attachments/615292905/image2019-5-14_16-43-10.png

Au niveau du profil, les informations liées au profil peuvent être retrouvées dans l’onglet ‘Données liées’ de la fiche profil. Chaque table étant un ‘tableau’ spécifique, dont le nom de la table en est le titre.

images/download/attachments/615292905/image2019-5-14_16-35-26.png

Frontières d'usage

  • Nombre maximum d’entrées par table : 10 millions

  • Nombre maximum de champs dans la table : 40

Table de type Référentiel

images/download/thumbnails/615292905/image2019-5-24_11-23-19.png

Usage :

Ce type de table permet de stocker des données de références, pouvant être utilisées à travers d’autres tables (Table de profil ou autres Tables personnalisées). Ces données référentielles sont donc des données communes à tous ou une partie des profils.

Exemple de données à stocker via ce type de Table :
Référentiel de magasins/ points de ventes / boutiques/ hôpitaux/… (Adresse, horaire d’ouverture, nom du responsable, …) ; référentiel de produits / catégories de produits / classification des produits ; référentiel des promotions ; …

Relation à la table de profil :

  • N - 1 avec la table de profil ou avec les tables de type Interaction et Données liées : Chaque enregistrement de la table de référentiel peut être associé à plusieurs profils

Représentation dans ACTITO

Au niveau global, une Table de type Référentiel se voit à partir de l’application DataMart Studio, en lien avec la table à laquelle elle est liée.

Elle apparaît parmi les champs constituant cette table, qu'il s'agisse des attributs de profil ou des attributs d'une table personnalisée.

images/download/attachments/615292905/image2019-5-14_16-50-10.png

Une table de type Référentiel liée à une table de profil sera visible dans la fiche de profil parmi les attributs de celle-ci.

images/download/attachments/615292905/image2019-5-14_16-59-56.png

Frontières d'usage

  • Nombre maximum de lignes par table : 10 000

Les "grandes" tables

Les frontières d'usage telles que précisées dans les sections précédentes définissent un nombre maximum de lignes de 10 millions pour les tables d'Interactions ou de Données Liées, et de 10 000 lignes pour les tables de Référentiel.

Cependant, sous certaines conditions, il est possible d'augmenter le volume de ces tables pour leur permettre de contenir 10 fois plus de lignes.

Ces tables auront alors une capacité supplémentaire permettra d'en augmenter le volume tout en mettant en place certaines restrictions.

Les "grandes" tables de Référentiel

La limite à 10 000 lignes de tables de Référentiel peut se révéler pénalisante si on veut mettre en place un référentiel de Produits, par exemple, et que votre catalogue compte plus de 10 000 références.

Mettre en place un Référentiel avec la capacité "Repository" seule vous permettra de dépasser cette limite avec uniquement une contrainte supplémentaire simple au niveau du nom d'affichage. Cela vous permettra de ne pas avoir à utiliser une table d'Interaction pour stocker vos références de produits, ce qui vous évitera de devoir mettre à jour toutes ces interactions en cas de modification dans la référence d'un produit. Seule une ligne dans la table de Référentiel devra être mise à jour dans ce cas de figure.

Concrètement :

  • une "grande" table de Référentiel peut de base contenir jusqu'à 100 000 lignes.

  • il ne sera pas possible d'avoir un nom d'affichage personnalisé pour les valeurs de la table. Dans les "petites" tables de Référentiel, le champs "prettyNameExpression" vous permet de créer un nom d'affichage composite fait de plusieurs attributs (par ex.. : "prettyNameExpression" = "${nomBoutique} (${pays} - ${ville)"). Dans les "grandes" tables, la valeur de la businessKey va être affichée à la place du nom d'affichage quand vous créez une nouvelle ligne à la main, ou dans un critère de ciblage.

Dans les critères de ciblages, souvenez-vous que les listes déroulantes peuvent seulement afficher les 10 000 premières valeurs d'un champ indexé en "cache-index". De ce fait, si un champ "cache-indexé" d'une "grande" table de Référentiel a plus de valeurs uniques (par exemple, "codeProduit"), il se peut que vous n'ayez pas de liste déroulante. Cependant, dans ce genre de cas, l'utilisateur va de toute façon rarement être amené à faire un ciblage de mémoire, mais va plutôt copier-coller une liste de références.

En revanche, pour les champs "cache-indexés" d'une "grande" table de Référentiel avec moins de 10 000 valeurs uniques (par exemple, un champ "statut" avec 5 valeurs possibles, va toujours pouvoir être affiché en liste déroulante dans une "grande" table).

Mettre en place une "grande" table de Référentiel

Pour qu'une table de Référentiel soit considérée comme "grande" et puisse contenir plus de 10 000 lignes, il est nécessaire de lui retirer la capacité "LookupTable" et de lui donner uniquement la capacité "Repository".

Le fichier JSON suivant donne une exemple de la structure d'une "grande" table de Référentiel.

Exemple de table Repository
{
"userName": "Produits",
"technicalName": "Product",
"businessKey": "ProductId",
"autoGeneratedBusinessKey": null,
"description": "null",
"creationTimeColumn": null,
"entityName": "entityName",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "Repository"
}
],
"defaultFetchingParameters": [],
"links": [ ],
"tableEventDefinitions": [],
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "name",
"columnName": "name",
"userName": "Nom",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "sku",
"columnName": "sku",
"userName": "SKU",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 100
}
},
{
"objectType": "SIMPLE",
"fieldName": "color",
"columnName": "color",
"userName": "Couleur",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 20
}
},
{
"objectType": "SIMPLE",
"fieldName": "size",
"columnName": "size",
"userName": "Taille",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 10
}
},
{
"objectType": "SIMPLE",
"fieldName": "unitPrice",
"columnName": "unitPrice",
"userName": "Prix unitaire",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "NUMERIC",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "productId",
"columnName": "productId",
"userName": "Id",
"required": true,
"unique": true,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 10
}
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
},
"entityId": 11
}

Mettre à jour une table existante

Il est possible de modifier une table existante pour lui permettre d'accueillir plus de 10 000 lignes.

Il faut pour cela "mettre à jour" la structure de la table avec le fichier JSON suivant. Les champs de la table mise à jour peuvent rester paramétrés pour bénéficier de listes déroulantes ("cacheIndexed": true) : il n'est pas nécessaire de les modifier au préalable. Cependant, ce paramètre ne sera pas pris en compte et les listes déroulantes ne seront pas disponibles dans le module de ciblage.

Rendre une table
{
"type": "nonStructural",
"capabilities": [
{
"name":"Repository"
}
]
}