Découverte des concepts SQL
Objectifs d’apprentissage
Après avoir terminé cette unité, vous pourrez :
- Apprendre les termes et concepts SQL
- Comprendre la structure SQL des connaissances Data Cloud
Connaissances dans Data Cloud
Vos données sont importées dans Salesforce Data Cloud depuis plusieurs sources. Les connaissances vous permettent de créer des métriques et d’organiser, de regrouper et de manipuler les données de votre compte. Il existe deux types de connaissances fondées sur SQL (Structured Query Language) : calculées et en continu. Les connaissances calculées permettent des calculs complexes fondés sur des données stockées, et les connaissances en continu sont créées sur la base de données en temps réel. Comme indiqué dans Création de connaissances dans Data Cloud, il existe différentes manières de créer des connaissances dans Data Cloud. SQL est l’une d’entre elles. Même s’il n’est pas nécessaire d’être un expert en SQL pour générer des connaissances, il est utile de savoir comment le langage SQL est utilisé pour les créer. Ce module couvre les concepts SQL de base et fournit des exemples pour vous aider à créer des connaissances dans votre compte.
Termes relatifs à l’élaboration de connaissances
Tout d’abord, passons en revue quelques termes courants associés aux connaissances.
-
Flux de données : les flux de données sont des sources de données introduites dans Salesforce Data Cloud. Par exemple, une extension de données client Marketing Cloud.
-
Objets modèle de données (DMO) : les flux de données sont mappés à un modèle de données selon les objets modèle de données. Les objets modèle de données courants incluent les commandes client, l’identification des parties, les données d’engagement, etc.
-
Attributs : les attributs sont des champs d’informations dans un flux de données. Par exemple, un attribut peut être le prénom ou l’ID de client d’une personne.
-
Mesures : les mesures contiennent des valeurs agrégées d’attributs, comme le montant total dépensé ou le montant moyen de commande.
-
Dimensions : les dimensions contiennent des valeurs qualitatives qui peuvent être utilisées pour classer une mesure. Par exemple, si vous souhaitez voir le montant total dépensé par chaque client, l’ID de client peut être une dimension associée à la mesure du montant total dépensé.
-
Clé étrangère : la clé étrangère est une colonne d’une base de données relationnelle qui fournit un lien entre les sources de données, par exemple un numéro d’ID de client.
-
Clé qualifiée complète : une clé qualifiée complète (FQK) est une clé composée qui contient une clé source telle qu’un ID de contact de CRM ou un ID d’abonné de Marketing Cloud, ainsi qu’un qualificateur de clé. Utilisez des clés qualifiées complètes pour éviter les conflits de clés lorsque les données provenant de différentes sources sont harmonisées dans le modèle de données Data Cloud.
-
Clé principale : un identificateur unique d’un enregistrement sélectionné par l’utilisateur, par exemple, une adresse e-mail de client ou une UGS de produit.
Structure SQL
Maintenant que vous connaissez les termes courants, examinons les mots-clés SQL et la structure utilisés pour créer des connaissances Data Cloud. SQL est écrit sous la forme d’une instruction ou d’une expression composée de mots-clés.
Ces mots-clés incluent :
SELECT
: choisissez le nom d’API du champ de l’attribut et le calcul que vous souhaitez effectuer.
FROM
: identifiez le nom d’API de l’objet de la source de données dans laquelle vous souhaitez effectuer une recherche.
JOIN
(facultatif) : utilisez ce mot-clé pour rechercher également des données provenant d’une autre source de données en fonction de critères spécifiés. WHERE
(facultatif) : utilisez ce mot-clé pour inclure une instruction conditionnelle sur les données. GROUP BY
: identifiez comment organiser ou classer la mesure que vous avez sélectionnée.
Voici comment une instruction SQL est écrite.
SELECT <Attributes>, <Aggregation[_Measures_]> FROM <Data Model Object> JOIN [Inner | Left | Right | Full] <Data Model Object> [Optional] WHERE <predicate on rows> [Optional] GROUP BY <columns[_Dimensions_]>
Exemple
Voici un exemple qui interroge le montant total dépensé par un client.
SELECT SUM(ssot__SalesOrder__dlm.ssot__GrandTotalAmount__c) AS customer_spend__c, ssot__Individual__dlm.ssot__Id__c AS customer_id__c, ssot_Individual__dlm.KQ_Id__c AS kq_customer_id__c FROM ssot__SalesOrder__dlm JOIN ssot__Individual__dlm ON (ssot__SalesOrder__dlm.ssot__SoldToCustomerId__c = ssot__Individual__dlm.ssot__Id__c) AND IFNULL(ssot__SalesOrder__dlm.KQ_SoldToCustomerId__c, ‘’) = IFNULL(ssot__Individual__dlm.KQ_Id__c, ‘’) WHERE (ssot__SalesOrder__dlm.ssot__CreatedDate__c <= date_add(current_date(), 365.0)) GROUP BY customer_id__c, kq_customer_id__c
Examinons davantage chacune de ces sections.
Section 1
SELECT SUM(ssot__SalesOrder__dlm.ssot__GrandTotalAmount__c) AS customer_spend__c, ssot__Individual__dlm.ssot__Id__c AS customer_id__c, ssot_Individual__dlm.KQ_Id__c AS kq_customer_id__c
Fonction : définit les informations que vous recherchez (dépenses client) et la manière dont vous souhaitez agréger cette mesure (somme). Lorsqu’une métrique (dépenses client) est calculée, elle est stockée en tant que mesure customer_spend__c dans le système. S
Section 2
FROM ssot__SalesOrder__dlm
Fonction : identifie la source des données (l’objet modèle de données de la commande client).
Section 3
JOIN ssot__Individual__dlm ON (ssot__SalesOrder__dlm.ssot__SoldToCustomerId__c = ssot__Individual__dlm.ssot__Id__c) AND IFNULL(ssot__SalesOrder__dlm.KQ_SoldToCustomerId__c, ‘’) = IFNULL(ssot__Individual__dlm.KQ_Id__c, ‘’)
Fonction : combine les données d’un autre objet modèle de données (un objet de données individuel) avec l’objet modèle de données de la commande client. ON détermine le point de connexion ou la clé étrangère entre vos objets modèle de données. Dans cet exemple, la clé étrangère entre les deux objets modèle de données comprend deux champs : l’ID de partie et le champ de qualificateur de clé de l’objet modèle de données SalesOrder, ainsi que l’ID et le champ de qualificateur de clé correspondant de l’objet modèle de données Individu. Le fait d’inclure les attributs de qualificateur de clé dans la jointure de tables garantit l’exactitude des données. Utilisez la fonction ISNULL() au cas où les qualificateurs de clé n’auraient pas été configurés sur tous les objets lac de données sous-jacents. Il peut y avoir un mélange d’espaces vides et IFNULL() créera alors une cohérence afin d’améliorer la précision de JOIN.
Section 4
WHERE ssot__SalesOrder__dlm.ssot__CreatedDate__c <= date_add(current_date(), 365.0))
Fonction : identifie les données que vous souhaitez ou ne souhaitez pas inclure. Dans cet exemple, la requête ne doit pas inclure les clients qui ont dépensé de l’argent plus de 365 jours en arrière à compter de la date actuelle.
Section 5
GROUP BY customer_id__c, kq_customer_id__c
Fonction : détermine votre dimension ou la manière dont vous souhaitez regrouper vos données (par ID de client et par attribut de qualificateur de clé pour l’ID de client).
Objets modèle de données
La première partie de l’expression SQL se concentre sur la sélection d’attributs et de mesures fondées sur un objet modèle de données. Il est donc essentiel de connaître votre modèle de données. Passons en revue quelques objets modèle de données courants et les attributs mesurables associés.
Objet modèle de données
|
Utilisation
|
Exemple d’attribut mesurable
|
---|---|---|
Partie |
Définit les personnes avec lesquelles vous entretenez des relations, généralement des clients. La partie comprend des profils d’individus unifiés, qui sont souvent utilisés dans des connaissances calculées. |
|
Product (Produit) |
Définit tout ce que vous envisagez de vendre ou toute partie d’un produit à suivre à des fins de service. |
|
Commande |
Définit les revenus, les opportunités, les achats et les commandes client. |
|
Données d’engagement |
Définit les interactions ou les activités des clients, généralement associées à l’engagement par e-mail. |
|
Données de requête |
Définit tous les problèmes enregistrés ou tickets de support. |
|
Fonctions SQL
Vous avez découvert les termes SQL, la structure et vos données. Il est temps d’ajouter des fonctions plus complexes pour interroger et manipuler davantage les données. Examinons plus en détail certaines fonctions disponibles.
Jointures SQL
Pour comprendre les jointures SQL, examinons quelles données seraient fournies dans votre requête en fonction du type de jointure. Nous utilisons deux exemples d’objets modèle de données pour décrire les quatre types de jointures suivants.
- Objet modèle de données 1 : Commande
- Objet modèle de données 2 : clients individuels
JOINTURE ou JOINTURE INTERNE
|
JOINTURE GAUCHE
|
JOINTURE DROITE
|
JOINTURE COMPLÈTE
|
|
---|---|---|---|---|
Description
|
Renvoie les enregistrements dont les valeurs correspondent dans les deux objets modèle de données. |
Exclut les enregistrements que nous ne voulons pas de l’objet modèle de données 2. |
Exclut les enregistrements que nous ne voulons pas de l’objet modèle de données 1. |
Renvoie tous les enregistrements correspondants des deux objets modèle de données. |
Résultat
|
Commandes client spécifiques pour des clients spécifiques. |
Toutes les commandes client et les commandes client pour des clients spécifiques. |
Tous les clients et quelques commandes client pour des clients spécifiques. |
Toutes les commandes client et tous les clients, y compris certains enregistrements correspondants. |
Case (Requête)
Une autre fonction SQL courante est l’instruction CASE, qui peut être utilisée pour créer des dimensions. CASE peut être utilisée pour renvoyer une valeur lorsqu’une condition est remplie.
SELECT CASE WHEN SUM(SALESORDER__dlm.grand_total_amount__c) < 100 THEN 'Low Spender' End as Spend_Type__c
Fonction : Lorsqu’un client dépense moins de 100 $, il est identifié comme peu dépensier. Lorsqu’une condition est vraie, la lecture s’arrête et un résultat est renvoyé. Si aucune condition n’est vraie, la valeur est renvoyée dans la clause ELSE. S’il n’y a pas de partie ELSE et qu’aucune condition n’est vraie, NULL est renvoyé.
Fonctions de formatage
Parfois, vous devez exécuter quelques fonctions de nettoyage avant de créer votre connaissance calculée finale. Vous pouvez le faire à l’aide de fonctions de formatage. Voici un exemple utilisant la fonction ROUND pour arrondir une valeur à une décimale spécifiée.
Voici la syntaxe spécifique de cette fonction.
ROUND(expression, number of decimal places)
Voici un exemple utilisant cette expression pour arrondir une commande client.
SELECT ROUND(Salesorder_dlm.total_amount, 2)
Fonction : au lieu d’afficher les dépenses totales du client à 143,5555 $, cette fonction arrondirait à deux décimales et le résultat serait 143,55 $.
Plus de fonctions
Il existe de nombreuses autres fonctions que vous pouvez ajouter à vos instructions SQL pour affiner davantage vos résultats. Il est utile d’identifier votre cas d’utilisation, puis d’examiner les fonctions possibles qui peuvent vous permettre d’obtenir les données souhaitées.
Étude d’exemples
Maintenant que vous comprenez les concepts de base de SQL et connaissez la structure, examinons quelques exemples dans l’unité suivante afin de vous aider à résoudre vos propres cas d’utilisation.
Ressources
- Aide Salesforce : Connaissances calculées
- Aide Salesforce : Utilisation d’instructions SQL ANSI dans Data Cloud
- Aide Salesforce : Règles SQL générales dans Connaissances calculées
- Aide Salesforce : Objets lien unifié et relations avec des objets unifiés
- Externe : Salesforce GitHub, Connaissances calculées Data Cloud
Haut de page