Vue d’ensemble de la définition de la charge de transformation d’extraction (ETL)

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 6 minutes de lecture
  • Les définitions ETL extraient les données d’une table source, transforment les données selon vos besoins 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 de 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 les contraintes de clé étrangère et de clé unique. Vue d’ensemble du processus d’importation à l’aide d’une définition ETL.

    Les entités ETL représentent les données d’entrée et les tables cibles

    Les définitions ETL sont basées sur des entités. Chaque définition ETL que vous créez doit avoir des entités qui lui sont associées. Les entités 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.
    Les mappages et les opérations sont également basés sur des entités, il est donc utile de créer des entités tôt, lorsque vous créez la définition.

    L’image suivante montre 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é du jeu d’importation est définie sur Aucun. Ordinateur et Disque sont les entités cibles. Il s’agit de 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. Définition ETL pour Ordinateur affichant trois entités ETL pour Ordinateur, Disque et Jeu d’importation.

    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 a un champ d’entité pour chaque colonne de la table intermédiaire. L’entité du jeu d’importation a 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 Disque à partir de la définition ETL de l’ordinateur. Le disque représente la table cible sn_etl_demo_disk. Il dispose de champs d’entité pour représenter les colonnes de table et de valeurs temporaires pour appliquer les opérations.Les entités cibles Ordinateur et Disque ont des champs d’entité pour représenter les colonnes de table et les valeurs temporaires pour les opérations.

    Chaque champ d’entité a un nom, un champ de référence ou de chemin d’accès, un champ de fusion et une action de coercition.

    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 la sys_id de la ligne de la deuxième table comme 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 sont importées 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 à l’aide du 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 l’ordinateur de manière unique. 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 plusieurs champs 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 fait 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 de clé uniques. Les champs de référence peuvent également être utilisés comme champs de fusion. L’entité Worker comporte trois champs pour les colonnes de clés uniques.

    Champ de fusion

    Spécifie la clé unique d’une entité cible. Le système utilise le champ de fusion pour déterminer s’il faut mettre à jour un enregistrement existant ou en insérer un nouveau. Si le champ de fusion a la valeur 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 illustré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 coalescence.

    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 coercition comporte les options suivantes.
    • Créez une nouvelle ligne dans la table référencée et affectez-la à la ligne cible.
    • Ignorez la valeur de 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 pas inséré ou mis à jour dans la table cible.

    Les opérations de l’entité RTE (Robust Transform Engine) modifient les données

    Les opérations d’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 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é Ordinateur 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é. Ainsi, dans cet exemple, deux champs temporaires sont créés pour copier les valeurs du jeu d’importation. Opération de concaténation de l’entité RTE pour l’entité Ordinateur.

    Les mappages d’entités RTE spécifient les mappages de champs

    Après avoir créé les entités d’entrée et cible avec leurs champs et opérations d’entité, créez un mappage d’entité RTE pour chaque entité cible. Les mappages d’entités RTE spécifient comment les champs de l’entité en entrée sont mappés aux champs des entités cibles. Dans la définition ETL pour Ordinateur, il existe deux mappages d’entités RTE. L’un d’eux, illustré dans l’image suivante, mappe les données d’entrée aux champs d’entité Ordinateur. L’autre mappe les données d’entrée aux champs d’entité Disque. Mappage d’entités RTE spécifiant le mode de mappage des données du jeu d’importation à l’entité Ordinateur.

    Données imbriquées dans les définitions ETL

    Avec les importations de données JSON, vous devrez peut-être importer des enregistrements avec des tableaux JSON ou des enregistrements qui importent plusieurs lignes pour la même table. Les définitions ETL prennent en charge ces charges utiles en modifiant légèrement les chemins d’accès. Les données JSON suivantes contiennent un tableau pour les informations sur les e-mails. Vous pouvez importer ces données en modifiant le ou les chemins d’accès dans les entités en entrée ou cibles, comme illustré dans les deux images suivantes.
    {
          "id": "123",
          "name": "Jhon",
          "emails": [
            {
              "address": "jhon@servicenow.com",
              "type": "work"
            },
            {
              "address": "jhon@gmail.com",
              "type": "personal"
            }
          ]
        }
    
    Entités d’entrée avec 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 possèdent 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 en tant qu’e-mails [*].adresse et e-mails[*].type.Entité ETL pour les données d’entrée imbriquées montrant l’utilisation d’un astérisque pour spécifier une valeur dans un tableau.

    Entités cibles avec données imbriquées

    Les entités cibles avec des données imbriquées sont similaires aux entités cibles dans une importation normale, sauf que le chemin d’accès se termine par un astérisque (*). L’astérisque indique au système de traiter l’entité comme un tableau. Dans l’entité E-mail, le chemin cible est spécifié comme e-mail [*]. Les champs de fusion, les champs de référence et les actions de coercition fonctionnent de la même façon qu’avec les importations normales.Entité ETL pour les données d’entrée imbriquées montrant l’utilisation d’un astérisque pour spécifier un tableau.

    Mappages d’entités RTE avec données imbriquées

    Les mappages d’entités RTE pour les données imbriquées ressemblent aux mappages normaux. N’importe quel champ de la hiérarchie peut être affecté à l’entité.