Neste Caminho de Aprendizado Conectado, criaremos uma cadeia que ilustra como converter um arquivo XML em CSV. Além disso, exploraremos como comparar conjuntos de dados para isolar diferenças.
| Objetivo principal de aprendizado | O conector XML |
| Objetivos secundários de aprendizado | Filtros inteligentes de transformação tabular, alteração de delimitador e comandos de consulta avançada |
| Pré-requisitos | Configurar a conexão do conector XML |
| Modelo de suporte | CLP | Acesso a dados XML |
Etapa 1: Criar uma corrente
- Adicione uma nova cadeia , e nomeie a cadeia: CLP | Acessando dados XML.
- Crie duas variáveis de cadeia da seguinte forma:
- Em Cadeias de variáveis, clique no sinal de mais (+) duas vezes.
- Use os seguintes nomes e valores para as variáveis:
- Variável XML
- Nome: cv-XML-Employee
- Valor: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- Variável CSV
- Nome: cv-CSV-Employee
- Valor: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- Variável XML
- Salvar a corrente
Etapa 2: Recuperar dados no formato CSV
Use o Conector HTTP para recuperar dados relacionados ao número de funcionários no formato CSV. Em etapas posteriores, recuperaremos informações semelhantes sobre o número de funcionários no formato XML e, em seguida, compararemos os conjuntos de dados para identificar as diferenças.
- Adicionar um comando GET do conector HTTP ao nó Start
-
Para configurar o comando, você deve usar os seguintes valores:
Nome GET - Headcount no formato CSV Nome do usuário <deixar em branco> Senha <deixar em branco> Certificado CA <deixar em branco> Certificado <deixar em branco> Chave privada do certificado <deixar em branco> Mostrar resposta Verificado URL cv-CSV-Employee Chain Variable Cadeia de consulta <deixar em branco> Tipo de conteúdo text/csv Resposta <deixar em branco> - Salvar o comando
Etapa 3: Recuperar dados no formato XML
Use o Conector HTTP para recuperar dados relacionados ao número de funcionários no formato XML. Conforme observado na etapa 2, em uma etapa posterior, compararemos o conjunto de dados XML com o conjunto de dados CSV para identificar as diferenças.
- Adicione um comando GET do conector HTTP à cadeia.
- Conecte o nó inicial (GET - Headcount em formato CSV) ao comando GET.
-
Você pode configurar o comando usando os seguintes valores:
Nome GET - Headcount no formato XML Nome do usuário <deixar em branco> Senha <deixar em branco> Certificado CA <deixar em branco> Certificado <deixar em branco> Chave privada do certificado <deixar em branco> Mostrar resposta Verificado URL cv-XML-Employee Chain Variable Cadeia de consulta <deixar em branco> Tipo de conteúdo application/xml Resposta <deixar em branco> - Salvar o comando
Etapa 4: converter o arquivo XML em delimitado
Use o XML Connector para converter os dados XML em um formato CSV, o que nos permite aproveitar comandos posteriores na cadeia que esperam dados em um formato delimitado.
- Adicione um comando Element List to CSV do conector XML à cadeia.
- Conecte o comando GET - Headcount in XML Formatation ao comando Element List to CSV.
- Configure o comando usando os seguintes valores:
- Para o parâmetro Input File, selecione Response Output do comando GET - Headcount in XML Format.
- Deixe o parâmetro Input Text em branco.
- Para o parâmetro Path to root, insira as seguintes informações de envelope:
/employee_data/employee - Marque a caixa de seleção do parâmetro Preview Result.
-
Na seção Columns, clique no botão Add 12 vezes.
Para cada uma das colunas adicionadas, insira o nome do campo do registro de dados visualizado na etapa anterior nos campos Column Name e XPath.
Exemplo: emp_id⚠️ O campo XPath diferencia maiúsculas de minúsculas e deve corresponder à caixa do envelope.
- Para o parâmetro Multi-value Delimiter (Delimitador de vários valores), insira um pipe (|).
- Salvar o comando
- Publique, execute e execute a cadeia.
-
Examine a guia Log do nó de comando Element List to CSV - All Employees e confirme se uma lista de funcionários é exibida.
⚠️ Não pule a execução e a revisão dos resultados dessa etapa, pois uma cópia desse comando será criada na cadeia e quaisquer erros precisarão ser corrigidos posteriormente em várias instâncias do comando.
Etapa 5: Alterar o XML convertido de delimitado por tabulação para delimitado por vírgula
Use o Conector de transformação tabular para converter a saída gerada pela conversão de XML de um formato delimitado por tabulação para um formato delimitado por vírgula.
- Adicione um comando Change Delimiter do conector Tabular Transformation à cadeia.
- Conecte o comando Element List to CSV - All Employees ao comando Change Delimiter.
- Configure o comando usando os seguintes valores:
- Nome: Alterar Delimitador - Todos os Funcionários
- Arquivo de entrada: Arquivo convertido Saída da Element List para CSV - Todos os funcionários Command
- Delimitador de entrada: \t
- Delimitador de saída:, (vírgula)
- Salvar o comando
Etapa 6: comparar os conjuntos de dados CSV e XML para identificar as diferenças
Use Advanced Query para identificar sistematicamente as diferenças entre os conjuntos de dados XML e CSV nativo. Neste exemplo, identifique todos os registros no conjunto de dados XML que sejam diferentes ou estejam faltando no conjunto de dados CSV. Quaisquer registros adicionais encontrados no conjunto de dados CSV que não estejam no conjunto de dados XML não serão identificados por este exercício.
- Adicione um comando Advanced Query do conector Tabular Transformation à cadeia.
- Conecte o comando Change Delimiter - All Employees ao comando Advanced Query.
- Você pode nomear o comando: Consulta avançada - Todos os funcionários.
- Na seção Tables, clique no botão Add para adicionar uma segunda guia.
- Para a primeira tabela:
- Especifique o resultado CSV Saída do comando Change Delimiter - All Employees.
- Especifique XML como o Nome da tabela.
- Para a segunda tabela:
- Especifique a saída de resposta do comando GET - Headcount in CSV Formatação.
Especifique CSV como o nome da tabela . - No parâmetro Consulta, você deve inserir o seguinte:
Selecionar * de XML EXCETO Selecionar * de CSV - Nos campos Input Delimiter e Output Delimiter, especifique Comma.
- Marque a opção Visualizar resultados
- Especifique a saída de resposta do comando GET - Headcount in CSV Formatação.
- Para a primeira tabela:
- Salvar o comando
- Publique, execute e execute a cadeia.
-
Examine a guia Log do nó de comando Advanced Query - All Employees e confirme se os IDs dos funcionários correspondem aos registros retornados pela consulta.
ID do funcionário 01-6875791 10-4199621 38-3932553 63-0417180 78-3600453 85-6818050 97-2828467
Etapa 7: Adicionar um grupo de comandos
Adicione um grupo de comandos à cadeia para organizar melhor os comandos. Embora essa etapa seja necessária em termos deste exercício, ela não é um requisito técnico para a Chain. Esta etapa serve apenas para ilustrar a capacidade de organizar os nós de uma cadeia.
- Adicione um grupo de comandos à cadeia.
- Conecte o comando GET - Headcount in XML Format à seção In do Command Group.
- Clique no Command Group e selecione o ícone de conta-gotas para alterar a cor do Command para red.
- Nomeie o grupo: Active Employees (Funcionários ativos).
Etapa 8: Filtrar dados CSV somente para funcionários ativos
Use um Filtro Inteligente para manter apenas os registros de funcionários em que o funcionário está ativo. Ao definir o filtro, presumimos que o fato de o campo terminado (denominado) estar em branco indica que um funcionário está ativo.
- Adicione um comando Smart Filter Rows do conector de transformação tabular à cadeia
- Conecte o Group Start do Command Group ao comando Smart Filter.
- Configure o comando usando os seguintes valores:
- Você pode nomear o comando: Smart Filter Rows - CSV Data - Active Employees.
- Para o parâmetro Input file, selecione Response Output no comando GET - Headcount in CSV Format.
- Deixe o parâmetro Output file em branco
- Especifique Comma como o delimitador
- Na seção Filtros, conclua as etapas a seguir:
- Clique no botão Add (Adicionar) nos filtros Text
- No parâmetro Column name, digite denominado.
- Verifique a opção Case Insensitive.
- No menu suspenso Condition, selecione Equals
- No parâmetro Compare Text, digite true.
- Marque a opção Not.
- Deixe a caixa de seleção Trim desmarcada.
Esse filtro agora identificará qualquer registro em que o campo "termed" não contenha um valor de true (ou seja, contenha "false" ou esteja em branco).
- Deixe marcada a opção Preview Result.
- A opção Inverse permite que o Smart Filter mantenha (marcado) ou remova (desmarcado) todas as linhas que correspondam aos critérios do filtro. Neste exercício, queremos manter todas as linhas em que o campo "termed" tenha um valor verdadeiro ou em branco.
Para isso, marque (check) a caixa de seleção Inverse. - Salvar o comando
Etapa 8: Filtrar dados CSV somente para funcionários ativos
Use um Filtro Inteligente para manter apenas os registros de funcionários em que o funcionário está ativo. Ao definir o filtro, presumimos que o fato de o campo terminado ("termed") estar em branco indica que um funcionário está ativo.
- Adicione um comando Smart Filter Rows do conector de transformação tabular à cadeia
- Conecte o Group Start do Command Group ao comando Smart Filter.
- Configure o comando usando os seguintes valores:
- Você pode nomear o comando: Smart Filter Rows - CSV Data - Active Employees.
- Para o arquivo de entrada , selecione a saída de resposta do comando GET - Headcount in CSV Formatation.
- Deixe o parâmetro Output file em branco
- Especifique Comma como o delimitador
- Na seção Filters (Filtros ),
- Clique no botão Add (Adicionar) nos filtros Text
- No parâmetro Column name, digite denominado.
- Verifique a opção Case Insensitive.
- No menu suspenso Condition, selecione Equals
- No parâmetro Compare Text, digite true.
- Marque a opção Not.
- Deixe a caixa de seleção Trim desmarcada.
Agora, esse filtro identificará qualquer registro em que o campo "termed" não contenha um valor de true (ou seja, contenha "false" ou esteja em branco).
- Deixe a caixa de seleção Preview Result marcada (checked).
- A opção Inverse permite que o Smart Filter mantenha (marcada) ou remova (desmarcada) todas as linhas que correspondam aos critérios do filtro. Neste exercício, queremos manter todas as linhas em que o campo termed tenha o valor true ou blank. Para isso, marque (check) a caixa de seleção Inverse.
- Salvar o comando
Etapa 9: Filtrar dados XML durante a conversão para delimitado
Nesta etapa, filtramos os dados XML durante a conversão para um formato delimitado para identificar somente os funcionários ativos. Esse conjunto de dados será posteriormente comparado com o conjunto de dados CSV filtrado para identificar diferenças.
- Copie o comando Element List to CSV - All Employees.
- Conecte o grupo Start do grupo de comando ao comando Element List to CSV - All Employees (Copy).
- Edite o comando, nomeando-o: Element List to CSV - Active Employees.
- No parâmetro "Path to root", insira o seguinte.
/employee_data/employee[termed!='true']
Isso agora identificará qualquer registro em que o campo "termed" não contenha o valor true (ou seja, contenha "false" ou esteja em branco). - Salvar o comando
Etapa 10: Alterar os dados XML filtrados para delimitados por vírgula
Assim como na lista completa de funcionários, a lista de funcionários ativos filtrada que foi convertida de XML para delimitada por tabulação precisa ser convertida para delimitada por vírgula.
- Copie o comando Change Delimiter - All Employees.
- Conecte o comando Element List to CSV - Active Employees ao comando Element Change Delimiter - All Employees (Copy).
- Configure o comando usando os seguintes valores.
- Nome: Alterar Delimitador - Funcionários Ativos.
- Modifique o parâmetro Input file para usar o comando Converted File Output from the Element List to CSV - Active Employees.
- Salvar o comando
Etapa 11: Verificação de diferenças com funcionários ativos
Assim como na lista completa de funcionários, a lista de funcionários ativos filtrada que foi convertida de XML para delimitada por tabulação precisa ser convertida para delimitada por vírgula.
- Copie o comando Advanced Query - All Employees (Consulta avançada - Todos os funcionários).
- Conecte o Out do Command Group ao comando Advanced Query - All Employees (Copy). Ao conectar o comando Advanced Query - All Employees ao Group Out, você garante que tudo o que estiver conectado ao Group Start será concluído antes que a cadeia avance para os comandos no Group Out.
- Configure o comando usando os seguintes valores:
- Nome: Advanced Query - Active Employees (Consulta avançada - Funcionários ativos).
-
Na seção Tables, altere o parâmetro File para ambas as tabelas usando os seguintes valores:
Tabela Arquivo XML CSV Result Output do comando Change Delimiter - Active Employees (Delimitador de alterações - Funcionários ativos) CSV Saída de linha de filtro inteligente do comando Smart Filter Rows - Active Only, CSV Data
- Salvar o comando
Etapa 12: Teste o exercício
Agora que a cadeia está concluída, teste o resultado.
- Publicar a cadeia
- Clique em Executar e selecione Run Chain
- Depois que a Cadeia tiver sido executada, clique no nó Advanced Query - Active Employees.
- Na guia Outputs, confirme se houve saída de 4 registros.
-
Clique na guia Logs e confirme se os IDs dos funcionários correspondem aos registros retornados pela consulta.
ID do funcionário 01-6875791 63-0417180 78-3600453 85-6818050
Para saber mais sobre a transformação de dados usando Cadeias, verifique Connected Learning Paths - Transformation Introduction!