Visão geral da definição de ETL (Extrair Carga de Transformação)

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 7 min. de leitura
  • As definições de ETL extraem dados de uma tabela de origem, transformam os dados conforme desejado e carregam os dados em uma ou mais tabelas de destino. As definições de ETL também oferecem suporte a estruturas de dados aninhadas.

    As definições de ETL especificam como mapear dados

    A importação de dados começa com uma fonte de dados. Uma fonte de dados especifica o tipo de dados que você deseja extrair e sua localização. Depois que os dados são extraídos, eles são carregados em uma tabela de preparação ou conjunto de importação. Em seguida, uma definição de ETL especifica como mapear os dados em uma ou mais tabelas de destino em ServiceNow. Você pode criar definições de ETL que mapeiam dados para tabelas ServiceNow enquanto ainda mantêm as restrições de chave externa e chave exclusiva. Visão geral do processo de importação usando uma definição de ETL.

    Entidades de ETL representam dados de entrada e tabelas de destino

    As definições de ETL são baseadas em entidades. Cada definição de ETL criada deve ter entidades associadas a ela. As entidades representam dados de entrada e tabelas de destino.
    • Dados de entrada são os dados que foram carregados na tabela de preparação.
    • Tabelas de destino são as tabelas ServiceNow em que você deseja que seus dados terminem.
    Mapeamentos e operações também são baseados em entidades, portanto, é útil criar entidades com antecedência, ao criar a definição.

    A imagem a seguir mostra um exemplo de uma definição de ETL para Computador. Esta definição tem três entidades associadas a ela. A entidade Conjunto de importação representa os dados de entrada, os dados carregados de um arquivo do Excel em uma tabela de preparação. A tabela da entidade Conjunto para importação está definida como Nenhum. Computador e Disco são as entidades de destino. Eles representam duas tabelas ServiceNow chamadas Computadores [sn_etl_demo_computer] e Disco [sn_etl_demo_disk]. Os dados da tabela de preparação serão carregados nas duas tabelas de destino. Uma definição de ETL para computador mostrando três entidades de ETL para computador, disco e conjunto para importação.

    Entidades de entrada

    As entidades de entrada representam os dados extraídos que foram carregados na tabela de preparação. As entidades de entrada têm campos de entidade de ETL para representar as colunas da tabela de conjunto de importação ou, para um modo de coluna única, chaves JSON. Você pode criar campos de entidade selecionando Novo na guia Campos de entidade de ETL.

    A imagem a seguir mostra a entidade Conjunto de importação da definição de ETL de computador. A entidade Conjunto de importação representa os dados de entrada carregados de um arquivo do Excel na tabela de preparação Computadores [sn_elt_demo_computers_stage]. A entidade Conjunto de importação tem um campo de entidade para cada coluna na tabela de preparação. A entidade Conjunto de importação tem um campo de entidade para cada coluna na tabela de preparação.

    Entidades de destino

    As entidades de destino representam as tabelas de destino em ServiceNow. A imagem a seguir mostra a entidade de destino do disco da definição de ETL do computador. O disco representa a tabela de destino sn_etl_demo_disk. Ele tem campos de entidade para representar colunas da tabela e valores temporários para aplicar operações.As entidades de destino Computador e Disco têm campos de entidade para representar colunas da tabela e valores temporários para operações.

    Cada campo de entidade tem um nome, um campo de referência ou caminho, um campo de aglutinação e uma ação de coerção.

    Campo de referência

    Campo especial em que uma linha em uma tabela se refere a uma linha em uma segunda tabela armazenando o sys_id da linha da segunda tabela como um valor de coluna na linha da primeira tabela. Embora a referência seja armazenada como um sys_id, quando os dados são importados, eles são importados como valores. Portanto, para campos de referência, você mapeia os valores dos campos exclusivos da tabela referenciada para os dados importados. Por fim, o sistema usará os valores para encontrar o registro associado, recuperar o sys_id e armazená-lo na coluna apropriada.

    Por exemplo, na entidade Disco mencionada anteriormente, a tabela sn_etl_demo_disk tem uma referência ao computador que usa o computadorde campo de referência. No entanto, os dados importados contêm apenas o ID do computador, que pode ser usado para identificar exclusivamente o computador. Portanto, na entidade Disco, o caminho do campo referenciado (computer.id) também especifica a coluna da tabela Computador.

    Se houver mais de um campo para uma chave exclusiva, todos os valores de campo deverão ser fornecidos adicionando vários campos. Por exemplo, na imagem a seguir, a tabela sn_etl_demo_worker tem uma referência à tabela sn_etl_demo_address. A tabela sn_etl_demo_address tem três colunas (número, rua e código postal) como chaves exclusivas. Portanto, a entidade Trabalhador tem três campos para colunas de chave exclusiva. Os campos de referência também podem ser usados como campos de aglutinação. A entidade Trabalhador tem três campos para colunas de chave exclusiva.

    Aglutinar campo

    Especifica a chave exclusiva de uma entidade de destino. O sistema usa o campo de aglutinação para determinar se deve atualizar um registro existente ou inserir um novo. Se o campo Aglutinar for verdadeiro e o sistema encontrar um registro existente com o mesmo valor de campo de aglutinação, ele atualizará o registro existente. Para a tabela sn_etl_demo_disk mostrada anteriormente, na entidade Disco, a coluna Número de série é exclusiva para todas as entradas de disco, portanto, é especificada como um campo de aglutinação.

    Ação de coerção
    Para campos de referência, especifica o que fazer quando uma linha com o valor de chave exclusiva não existir na tabela referenciada. A ação de coerção tem as seguintes opções.
    • Crie uma nova linha na tabela referenciada e atribua-a à linha de destino.
    • Ignore o valor do campo de referência. A coluna de referência é salva como vazia.
    • Rejeitar o valor do campo de referência. Ele não está inserido ou atualizado na tabela de destino.

    Operações da entidade do Mecanismo de Transformação Robusta (RTE) modificam dados

    As operações de entidade modificam os dados de entrada antes de armazená-los em uma tabela de destino. A imagem a seguir mostra um exemplo de uma operação de concatenação. Na definição de ETL para Computador, os dados importados contêm um tipo e uma versão. No entanto, a tabela de destino requer um valor que seja uma combinação do tipo e da versão. Portanto, a entidade Computador usa uma operação de concatenação para concatenar tipo e versão. As operações de entidade só podem ser realizadas em campos de entidade, portanto, neste exemplo, dois campos temporários são criados para copiar os valores do conjunto de importação. Uma operação de concatenação de entidade de RTE para a entidade de computador.

    Mapeamentos de entidade de RTE especificam mapeamentos de campo

    Depois de criar as entidades de entrada e de destino com seus campos de entidade e operações, crie um mapeamento de entidade de RTE para cada entidade de destino. Os mapeamentos de entidade de RTE especificam como os campos na entidade de entrada são mapeados para campos nas entidades de destino. Na definição de ETL para Computador, há dois mapeamentos de entidade de RTE. Um, mostrado na imagem a seguir, mapeia os dados de entrada para os campos da entidade Computador. O outro mapeia os dados de entrada para os campos de entidade de disco. Mapeamento de entidade de RTE que especifica como mapear dados do conjunto de importação para a entidade de computador.

    Dados aninhados em definições de ETL

    Com as importações de dados JSON, pode ser necessário importar registros com matrizes JSON ou registros que importam mais de uma linha para a mesma tabela. As definições de ETL oferecem suporte a essas cargas úteis com uma pequena mudança nos caminhos. Os dados JSON a seguir têm uma matriz para informações de e-mail. Você pode importar esses dados modificando o caminho ou os caminhos nas entidades de entrada ou de destino, conforme mostrado nas próximas duas imagens.
    {
          "id": "123",
          "name": "Jhon",
          "emails": [
            {
              "address": "jhon@servicenow.com",
              "type": "work"
            },
            {
              "address": "jhon@gmail.com",
              "type": "personal"
            }
          ]
        }
    
    Entidades de entrada com dados aninhados

    As entidades de entrada para dados aninhados também representam os dados JSON de entrada. Como as importações sem dados aninhados, elas têm campos de entidade para representar os valores. A única diferença é que os caminhos com matrizes são especificados com um asterisco (*). A imagem a seguir mostra como os caminhos para endereço e tipo são especificados como e-mails[*].address e e-mails[*].type.Entidade de ETL para dados de entrada aninhados mostrando o uso de um asterisco para especificar um valor em uma matriz.

    Entidades de destino com dados aninhados

    As entidades de destino com dados aninhados também são como as entidades de destino em uma importação normal, exceto pelo fato de que o caminho termina com um asterisco (*). O asterisco informa ao sistema para processar a entidade como uma matriz. Na entidade E-mail, o caminho de destino é especificado como e-mail[*]. Campos de aglutinação, campos de referência e ações de coerção funcionam da mesma forma que nas importações normais.Entidade de ETL para dados de entrada aninhados mostrando o uso de um asterisco para especificar uma matriz.

    Mapeamentos de entidade de RTE com dados aninhados

    Os mapeamentos de entidade de RTE para dados aninhados são como mapeamentos normais. Qualquer campo da hierarquia pode ser atribuído à entidade.