Vue d’ensemble de la définition d’extraction de charge de transformation (ETL)
Les définitions ETL extraient les données d’une table source, transforment les données comme vous le souhaitez et chargent les données dans une ou plusieurs tables cibles. Les définitions ETL prennent également en charge les structures de données imbriquées.
Les définitions ETL spécifient comment mapper les données
L’importation des données commence par une source de données. Une source de données spécifie le type de données que vous souhaitez extraire et leur emplacement. Une fois les données extraites, elles sont chargées dans une table intermédiaire ou de jeu d’importation. Ensuite, une définition ETL spécifie comment mapper les données dans une ou plusieurs tables cibles dans ServiceNow. Vous pouvez créer des définitions ETL qui mappent les données aux ServiceNow tables tout en conservant la clé étrangère et les contraintes de clé uniques.
Les entités ETL représentent les données d’entrée et les tables cibles
- Les données d’entrée sont les données qui ont été chargées dans la table intermédiaire.
- Les tables cibles sont les ServiceNow tables dans lesquelles vous souhaitez que vos données aboutissent.
L’image suivante est un exemple de définition ETL pour ordinateur. Trois entités sont associées à cette définition. L’entité Jeu d’importation représente les données d’entrée, c’est-à-dire les données chargées à partir d’un fichier Excel dans une table intermédiaire. La table de l’entité de jeu d’importation est définie sur Aucun. Ordinateur et Disque sont les entités cibles. Elles représentent deux ServiceNow tables nommées Ordinateurs [sn_etl_demo_computer] et Disque [sn_etl_demo_disk]. Les données de la table intermédiaire seront chargées dans les deux tables cibles.
Entités d’entrée
Les entités d’entrée représentent les données extraites qui ont été chargées dans la table intermédiaire. Les entités d’entrée ont des champs d’entité ETL pour représenter les colonnes de la table de jeu d’importation ou, pour un mode à colonne unique, des clés JSON. Vous pouvez créer des champs d’entité en sélectionnant Nouveau dans l’onglet Champs d’entité ETL.
L’image suivante montre l’entité du jeu d’importation à partir de la définition ETL de l’ordinateur. L’entité Jeu d’importation représente les données d’entrée chargées à partir d’un fichier Excel dans la table intermédiaire Ordinateurs [sn_elt_demo_computers_stage]. L’entité du jeu d’importation possède un champ d’entité pour chaque colonne de la table intermédiaire.
Entités cibles
Les entités cibles représentent les tables cibles dans ServiceNow. L’image suivante montre l’entité cible du disque à partir de la définition ETL de l’ordinateur. Le disque représente la table cible sn_etl_demo_disk. Il comporte des champs d’entité pour représenter les colonnes de la table et des valeurs temporaires pour appliquer des opérations.
Chaque champ d’entité a un nom, un champ de référence ou de chemin, un champ de fusion et une action de forçage.
- Champ de référence
Champ spécial dans lequel une ligne d’une table fait référence à une ligne d’une deuxième table en stockant l’sys_id de la ligne de la deuxième table en tant que valeur de colonne dans la ligne de la première table. Bien que la référence soit stockée en tant que sys_id, lorsque les données sont importées, elles le sont sous forme de valeurs. Ainsi, pour les champs de référence, vous mappez les valeurs des champs uniques de la table référencée aux données importées. En fin de compte, le système utilisera les valeurs pour rechercher l’enregistrement associé, récupérer le sys_id et le stocker dans la colonne appropriée.
Par exemple, dans l’entité Disque mentionnée précédemment, la table sn_etl_demo_disk fait référence à l’ordinateur qui utilise le champ de référence ordinateur. Cependant, les données importées ne contiennent que l’ID de l’ordinateur, qui peut être utilisé pour identifier de manière unique l’ordinateur. Ainsi, dans l’entité Disque, le chemin d’accès du champ référencé (computer.id) spécifie également la colonne de la table Ordinateur.
S’il existe plus d’un champ pour une clé unique, toutes les valeurs de champ doivent être fournies en ajoutant plusieurs champs. Par exemple, dans l’image suivante, la table sn_etl_demo_worker a une référence à la table sn_etl_demo_address. La table sn_etl_demo_address comporte trois colonnes (numéro, rue et code postal) comme clés uniques. Par conséquent, l’entité Worker dispose de trois champs pour les colonnes clés uniques. Les champs de référence peuvent également être utilisés comme champs de fusion.
- Champ de fusion
Spécifie la clé unique pour une entité cible. Le système utilise le champ de fusion pour déterminer s’il convient de mettre à jour un enregistrement existant ou d’en insérer un nouveau. Si le champ de fusion est vrai et que le système trouve un enregistrement existant avec la même valeur de champ de fusion, il met à jour l’enregistrement existant. Pour la table sn_etl_demo_disk affichée précédemment, dans l’entité Disque, la colonne N° de série est unique pour toutes les entrées de disque, elle est donc spécifiée comme champ de fusion.
- Action de forçage
- Pour les champs de référence, spécifie ce qu’il faut faire lorsqu’une ligne avec la valeur de clé unique n’existe pas dans la table référencée. L’action de forçage comporte les options suivantes.
- Créez une nouvelle ligne dans la table référencée et affectez-la à la ligne cible.
- Ignorer la valeur du champ de référence. La colonne de référence est enregistrée comme vide.
- Rejetez la valeur du champ de référence. Il n’est ni inséré ni mis à jour dans la table cible.
Les opérations de l’entité RTE (Robust Transform Engine) modifient les données
Les opérations de l’entité modifient les données d’entrée avant de les stocker dans une table cible. L’image suivante montre un exemple d’opération de concaténation. Dans la définition ETL pour l’ordinateur, les données importées contiennent à la fois un type et une version. Toutefois, la table cible nécessite une valeur qui est une combinaison du type et de la version. Ainsi, l’entité Computer utilise une opération de concaténation pour concaténer le type et la version. Les opérations sur l’entité ne peuvent être effectuées que sur les champs d’entité, par conséquent, dans cet exemple, deux champs temporaires sont créés pour copier les valeurs du jeu d’importation.
Les mappages d’entités RTE spécifient les mappages de champs
Après avoir créé les entités d’entrée et cibles avec leurs champs et opérations d’entité, créez un mappage d’entités RTE pour chaque entité cible. Les mappages d’entités RTE spécifient la manière dont les champs de l’entité en entrée sont mappés aux champs des entités cibles. Dans la définition ETL pour l’ordinateur, il existe deux mappages d’entités RTE. L’une d’elles, illustrée dans l’image suivante, mappe les données d’entrée aux champs d’entité de l’ordinateur. L’autre mappe les données d’entrée aux champs d’entité du disque.
Données imbriquées dans les définitions ETL
{
"id": "123",
"name": "Jhon",
"emails": [
{
"address": "jhon@servicenow.com",
"type": "work"
},
{
"address": "jhon@gmail.com",
"type": "personal"
}
]
}
- Entités d’entrée avec des données imbriquées
Les entités d’entrée pour les données imbriquées représentent également les données JSON d’entrée. Comme les importations sans données imbriquées, elles ont des champs d’entité pour représenter les valeurs. La seule différence est que les chemins avec des tableaux sont spécifiés par un astérisque (*). L’image suivante montre comment les chemins d’accès à l’adresse et au type sont spécifiés sous forme d’e-mails[*].adresse et d’e-mails[*].type.
- Entités cibles avec données imbriquées
Les entités cibles avec des données imbriquées sont également similaires aux entités cibles dans une importation normale, excepté que le chemin d’accès se termine par un astérisque (*). L’astérisque indique au système de traiter l’entité sous forme de tableau. Dans l’entité E-mail, le chemin d’accès cible est spécifié comme email[*]. Les champs de fusion, les champs de référence et les actions de forçage fonctionnent de la même manière qu’avec les importations normales.
- Mappages d’entités RTE avec données imbriquées
Les mappages d’entités RTE pour les données imbriquées ressemblent à des mappages normaux. N’importe quel champ de la hiérarchie peut être affecté à l’entité.