Visão geral da definição de ETL (Extrair Carga de Transformação)
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.
Entidades de ETL 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.
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.
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.
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.
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.
- 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.
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.
Dados aninhados em definições de ETL
{
"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.
- 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.
- 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.