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

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 7 minutes de lecture
  • 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. 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 les entités. Chaque définition ETL que vous créez doit avoir des entités 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 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. Définition ETL pour l’ordinateur affichant trois entités ETL pour l’ordinateur, le disque et le 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 possède un champ d’entité pour chaque colonne de la table intermédiaire. 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.Les entités cible 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, 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. L’entité Worker dispose de trois champs pour des colonnes clés uniques.

    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. Une 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 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. Mappage d’entités RTE spécifiant comment mapper les 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 plus d’une ligne pour la même table. Les définitions ETL prennent en charge ces charges utiles avec une petite modification des chemins. 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 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é 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 é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.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 à des mappages normaux. N’importe quel champ de la hiérarchie peut être affecté à l’entité.