Neste Caminho de Aprendizado Conectado, criaremos uma cadeia que ilustra como converter um conjunto de dados JSON simples em CSV. Além disso, exploraremos como fazer um loop em um conjunto de dados JSON e filtrar com base nos valores dos dados.
| Objetivo principal de aprendizado | Capacidade do conector JSON |
| Objetivos de aprendizado secundários |
Comando de consulta avançada de transformação tabular Iteração de grupo |
| Pré-requisitos | Configurar a conexão do conector JSON |
| Modelo de suporte | CLP | Acesso a dados JSON |
Etapa 1: Criar uma corrente
- Adicionar uma nova corrente
- Nomear a cadeia CLP | Acessar dados JSON
- Crie uma variável de cadeia:
- Em Chain Variables (Variáveis em cadeia), clique no sinal de mais
- Nome: cv-JSON-Employee
- Valor: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/emp_detail.json
- Em Chain Variables (Variáveis em cadeia), clique no sinal de mais
- Salvar a corrente
Etapa 2: recuperar dados JSON
Usamos o Conector HTTP para recuperar dados relacionados ao número de funcionários no formato JSON de um local da Web.
- Adicionar um comando GET do conector HTTP ao nó Start
- Configure o comando com o seguinte:
| Nome | GET - Todos os funcionários |
| 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-JSON-Employee Variável de cadeia |
| Cadeia de consulta | <deixar em branco> |
| Tipo de conteúdo | aplicativo/json |
| Resposta | <deixar em branco> |
- Salvar o comando
Etapa 3: Converter JSON em CSV
Use o Conector JSON para converter o conjunto de dados JSON em um formato CSV. Nesta etapa, selecione apenas os campos ID do funcionário e país da matriz JSON.
É importante que você entenda o esquema do conjunto de dados JSON. Você pode utilizar um comando Listar conteúdo de arquivo do Conector de utilitários de arquivo para visualizar o esquema. Você também pode adicionar o esquema ao campo Response no Get Command para facilitar a referência. Abaixo está o esquema do JSON dos funcionários:
Esquema
[
{
"emp_id": "26-4992011",
"user_name": "apostle0",
"first_name": "Audi",
"last_name": "Postle",
"job_title": "Chief Design Engineer",
"department": "Marketing",
"city": "Cheyenne",
"country": "United States" (Estados Unidos),
"currency" (moeda): "USD",
"hire_date": "08/30/2000",
"fte": 1,
"termed": false
}
]
- Adicione um comando Array to CSV do conector JSON à cadeia.
- Conecte o nó inicial (GET - All Employees) ao comando Array to CSV.
- Nomeie o comando: Array to CSV - All Employees.
- No parâmetro JSON Data, selecione o parâmetro Response Output do comando GET - All Employees.
- Deixe os parâmetros Input Text, Path to root e Filter em branco.
- Deixe o parâmetro Multi-value Delimiter (Delimitador de vários valores) como uma vírgula (,).
- Verifique a opção Preview Result.
- A seção Columns é usada para especificar quais elementos da matriz JSON serão extraídos para um conjunto de dados colunar (CSV). Clique uma vez no botão Add para adicionar mais uma coluna.
- Na primeira coluna, digite emp_id para o nome da coluna e .emp_id para os parâmetros JSONPath.
- Certifique-se de incluir o ponto (.) antes de emp_id no parâmetro JSONPath.
- Na segunda coluna, digite country para o Column Name e .country para os parâmetros JSONPath.
- Selecione Comma para o parâmetro Delimiter.
- Na primeira coluna, digite emp_id para o nome da coluna e .emp_id para os parâmetros JSONPath.
- Salvar o comando
Etapa 4: Obter a lista exclusiva de países nos dados
Use uma instrução simples Select Distinct com o comando Advanced Query do Tabular Transformation Connector para obter o conjunto exclusivo de países nos dados. Mais adiante neste exercício, essa lista será usada para recuperar os funcionários de cada país individualmente.
- Adicione um comando Advanced Query do conector Tabular Transformation à cadeia.
- Conecte o comando Array to CSV - All Employees ao comando Advanced Query.
- Dê um nome ao comando: Advanced Query - Countries.
- A seção Tables (Tabelas) permite que um ou mais conjuntos de dados delimitados sejam utilizados para criar tabelas nas quais as instruções SQL podem ser gravadas. Um banco de dados SQLite com as tabelas especificadas é gerado em tempo real, sem necessidade de instalação de software adicional.
- No campo File, especifique o comando Converted File Output from the Array to CSV - All Employees.
- Digite Countries no parâmetro Table Name. A consulta especificada será executada nessa tabela.
- No parâmetro Query (Consulta), digite o seguinte:
Selecione Distinct Country from Countries (País distinto dos países)
- Especifique Comma para os parâmetros Input Delimiter e Output Delimiter.
- Verifique o parâmetro Preview results
- Salvar o comando
Etapa 5: Criar uma matriz JSON a partir da lista de países
Usamos o comando CSV para JSON do conector JSON para converter a lista exclusiva de países em uma matriz JSON. Um Command Group pode, então, iterar sobre cada item dessa matriz.
- Adicione um comando CSV to JSON do conector JSON à cadeia.
- Conecte o comando Advanced Query - Countries ao comando CSV to JSON.
- Configure o comando usando o seguinte:
| Nome | CSV para JSON - Países |
| Arquivo de entrada | Resultado Saída do comando Advanced Query - Countries |
| Delimitador | Vírgula (,) |
- Salvar o comando
Etapa 6: adicionar um grupo de comandos
Adicione um Command Group à Chain para permitir a iteração em cada um dos países individuais identificados na etapa Advanced Query.
- Adicione um grupo de comandos à cadeia.
- Conecte o comando CSV to JSON - Countries à seção In do Command Group.
- Clique no Command Group e selecione o ícone de conta-gotas para alterar a cor do Command para orange.
- Nomeie o grupo: Active Employees (Funcionários ativos).
- Ative a opção Iterations na guia iterations e selecione o comando JSON File Output from the CSV to JSON - Countries.
- Salve o grupo de comandos.
Etapa 7: Filtrar dados JSON de funcionários por país
Converta o conjunto de dados JSON em CSV e filtre apenas os registros de funcionários do país que está sendo processado no momento na iteração. Esta etapa destaca dois recursos poderosos: a capacidade de fazer loops ou iterações e a capacidade de aplicar filtros ao processo de conversão de JSON. Se você entender esses recursos, poderá desenvolver cadeias robustas e eficientes.
Copie o comando Array to CSV configurado anteriormente para esta etapa e a configuração utiliza basicamente a mesma configuração, exceto onde indicado abaixo.
- Copie o comando Array to CSV - All Employees.
- Conecte o comando Group Start do Command Group ao comando Array to CSV - All Employees (Copy).
- Editar o comando:
- Nomeie o comando: Array to CSV - Employees by Country (Matriz para CSV - Funcionários por país).
- No parâmetro Filter, digite o seguinte:
?(@.country == "<JSON>")
-
- O espaço antes de e após o sinal de igual (==) duplo é obrigatório.
- <JSON> Você deve substituir por JSON File Iteration em Group Iterator no painel Variável.
- Ao adicionar a Iteração de arquivo JSON, clique na bolha Variável e adicione uma Transformação de obtenção de valor da variável JSON.
- No parâmetro Value (Valor) da Variable Transformation (Transformação de variável), digite country e pressione a tecla Enter. Lembre-se de que o JSON é sensível a maiúsculas e minúsculas.
- Edite a coluna emp_id para que ela tenha um Column Name de employee_id. Não altere o JSONPath.
- O nome da coluna gerado pelo comando não precisa corresponder à chave da matriz JSON.
- Adicione 10 Colunas ao Comando e configure de acordo com o seguinte:
| Nome da coluna | JSONPath |
| Nome de usuário | Nome de usuário |
| primeiro_nome | .first_name |
| sobrenome | .last_name |
| título | cargo |
| Departamento | Departamento |
| Cidade | Cidade |
| Moeda | Moeda |
| data de contratação | .data_de_ocupação |
| fte | .fte |
| terminado | .terminado |
- Salvar o comando
Etapa 8: Teste o exercício
Agora que a cadeia está concluída, teste o resultado.
- Publicar a cadeia
- Clique em Executar e selecione Run Chain
- Após a conclusão da cadeia, clique no nó Array to CSV - Employees by Country.
- Observe que a iteração foi executada cinco (5) vezes.
- Selecione cada valor de iteração e clique na guia Inputs. Confirme se o filtro corresponde à tabela abaixo.
- Selecione a iteração 5 e clique na guia Logs. Confirme se a visualização dos dados corresponde à imagem abaixo.
| Iteração 1 | Estados Unidos |
| Iteração 2 | Brasil |
| Iteração 3 | Quênia |
| Iteração 4 | Itália |
| Iteração 5 |
Austrália |
Para saber mais sobre transformação de dados usando cadeias, confira Connected Learning Paths - Transformation Introduction!