Bem-vindo a mais um curso aqui na Alura. Sou Ricardo Bugan, Diretor Operacional, e serei o instrutor neste curso.
Neste curso, continuaremos nossa jornada com o N8n, com o objetivo de aliviar a carga de trabalho do nosso back-end. Vamos transformar um processo de ETL, que normalmente seria realizado pelo back-end, em um workflow no N8n. Dessa forma, poderemos integrar várias fontes de dados diferentes e transformá-las em uma base de dados.
Em nosso caso aqui, no BigQuery, teremos três tabelas: a tabela de clientes, a tabela de produtos e a tabela de vendas. Vamos extrair dados brutos de arquivos, de um banco de dados SQL, de um arquivo CSV, de um arquivo JSON, de um Excel e de um arquivo XML. O objetivo é transformar todos esses dados, realizar as junções necessárias e reorganizá-los do modelo transacional para um modelo mais adequado de banco de dados de análise, que é o modelo de banco de dados em estrela.
Teremos muitas coisas para aprender e realizar no N8n, como trabalhar e processar os dados para retirar esse processo de ETL do seu back-end. Assim, ao final, você poderá ter um dashboard ou os dados preparados para que alguém na sua equipe possa criar um dashboard.
Esperamos você no curso!
Após termos realizado uma série de eventos, workflows e automações para nossa equipe de desenvolvimento, temos agora um novo desafio e uma nova possibilidade dentro do N8n: trabalhar com um processo de ETL. É comum que várias empresas possuam todo o processo de código, back-end, front-end e base de dados funcionando para que o sistema opere corretamente. No entanto, em algum momento, algum time, geralmente o gerencial, desejará realizar uma análise dos dados disponíveis, como verificar as vendas do último mês, identificar a página mais acessada ou avaliar a saúde do negócio como um todo.
Para isso, muitas vezes, o banco de dados transacional que utilizamos na aplicação, onde o back-end realiza consultas diretas, não é o mais adequado para análise de dados. Primeiramente, porque isso sobrecarregaria o back-end com uma série de consultas que costumam ser bastante pesadas, o que não é ideal. Mesmo que se utilize um replica set para isolar essa carga do banco de dados transacional, a organização e a normalização dos dados nesse banco não são ideais para análise de dados em um BI, por exemplo.
Portanto, nosso objetivo é realizar um processo de transformação de dados, convertendo o modelo transacional do banco de dados de produção para um modelo adequado para análise de dados. Aproveitando que o N8n oferece diversas conexões com várias ferramentas, vamos explorar neste curso como carregar dados de diferentes fontes, como XML, JSON e CSV, utilizando todas as ferramentas disponíveis para integrar dados de várias origens, o que também é uma situação bastante comum.
Além do nosso banco de dados transacional, que utilizaremos em SQL, podemos integrar diferentes fontes de dados, como arquivos XML, JSON e Excel. O objetivo é consolidar todas essas informações em um Data Warehouse, organizando-as adequadamente para que possam ser consumidas por ferramentas de BI.
Neste curso, não abordaremos a partir do BI, mas focaremos no tratamento dos dados e na inserção em um banco de dados. Todo o processo será interessante, e veremos como o N8n pode facilitar esse trabalho, atuando como uma ferramenta de ETL. Caso não haja outra ferramenta disponível ou o time seja restrito, o N8n pode ser uma boa opção para realizar processos de ETL.
Para contextualizar, temos um cadastro de clientes exportado como Excel, simulando informações provenientes desse formato. Também possuímos dados da empresa em uma pasta do drive, além de um JSON com produtos, cidades, coordenadas, regiões e estados em diferentes formatos: JSON, CSV e XML. Precisamos organizar esses dados, por exemplo, associando siglas de estados aos seus nomes e regiões no Brasil.
No caso de cidades e coordenadas, temos a latitude e longitude de cada cidade, informações essenciais para visualizações em mapas no BI. Quanto aos nossos clientes, o endereço está em uma única linha de texto, não separado. A ideia é tratar esses dados para que possamos ter a cidade, o estado, a região e o logradouro separados, facilitando o trabalho do BI.
Utilizaremos essas informações e traremos outros arquivos e dados ao longo do curso. A base será composta por arquivos em um drive, que carregaremos no N8n, além de um banco de dados SQL, que exploraremos mais adiante. Nosso objetivo é preparar esses dados de forma que atendam às expectativas do BI e do Data Warehouse. Vamos explorar essa mudança de paradigma na organização de bancos de dados.
Para começar, vamos ao time de desenvolvimento e criar um novo workflow no N8n, na seção destinada ao time de desenvolvimento. Nesse workflow, vamos renomeá-lo para não esquecermos. Chamaremos de "processo ETL para clientes e produtos", pois trabalharemos com produtos e notas fiscais. A ideia é preparar os dados de notas fiscais, produtos e clientes para cruzá-los e obter uma visão de qual produto está se saindo melhor, qual não está, qual cliente compra mais, qual região compra mais, entre outros tipos de análise que o time de negócios solicitou.
Inicialmente, vamos configurar o gatilho como manual. Ele poderia ser agendado ou via Webhook, mas optamos por deixá-lo manual, pois não precisamos de nenhum input específico, como data ou informações de Webhook. Queremos apenas algo que inicie o processo e puxe todas as informações.
Vamos então buscar as linhas do cadastro de clientes e começar a tratar os endereços. Utilizaremos o Google Sheets para isso. Vamos buscar as linhas do Google Sheets. Caso não tenhamos credenciais, será necessário logar com a conta do Google Sheets. O recurso será uma planilha de um documento, e a operação será get rows. O documento será acessado pela URL, que deixaremos fixa. Ao colar a URL, ele nos mostrará a lista de planilhas disponíveis. Como temos apenas uma página, que é a de clientes, vamos buscá-la.
Existem algumas opções disponíveis, mas não precisaremos delas, pois a planilha não é grande. Se executarmos agora, ele trará 57 itens. No entanto, se tivermos uma planilha muito grande, pode ser necessário filtrar. Por exemplo, podemos adicionar um filtro na coluna de endereço ou vendedor, ou ainda, pegar apenas um cliente para tratamento. Isso é útil para testar a automação com poucos dados antes de rodar com 100% dos dados.
No nosso caso, não será necessário, pois a base é pequena. No entanto, ocorreu um erro de "Service Unavailable", indicando que o Google Sheets estava indisponível por um momento, mas já voltou. Agora, temos o output com todas as linhas e colunas do cadastro.
Uma das primeiras ações será tratar a questão do endereço. Atualmente, o endereço está misturado, com rua, nome do estado e sigla do estado juntos. Queremos separar esses dados em campos distintos, pois no BI, organizar e visualizar apenas os estados pode ser interessante. Precisamos quebrar a coluna de endereço em mais colunas: uma para o Logradouro, outra para a sigla do estado e uma para o nome da cidade.
Felizmente, a forma como a informação foi salva nos dá uma dica de como proceder. Todos os endereços seguem um padrão: Logradouro, hífen, nome da cidade, outro hífen e o estado. Podemos pegar essa string e fazer um split, transformando-a em um array.
Para realizar essa separação, utilizamos a expressão {{ $json.ENDERECO.split('-') }}. No entanto, percebemos que o separador correto é " - ", então ajustamos a expressão para {{ $json.ENDERECO.split(' - ') }}. Isso nos permite dividir o endereço em três partes: logradouro, cidade e sigla do estado.
Agora que temos o endereço dividido, podemos acessar cada parte individualmente. Utilizamos as seguintes expressões para isso:
{{ $json.ENDERECO[0] }}{{ $json.ENDERECO[1] }}{{ $json.ENDERECO[2] }}É importante destacar que o split retorna um array. No campo, devemos especificar o tipo da variável como array também, caso contrário, ele converterá o array de volta para string. Vamos manter o nome do campo como endereço por enquanto. Ao executar, podemos ver que há 57 itens. Utilizando o esquema, fica mais fácil visualizar que o endereço foi transformado em três itens de texto: endereço 0, endereço 1 e endereço 2, representando as posições dos elementos.
Já começamos a transformação, mas os dados ainda estão organizados em um único campo. Vamos agora transformá-los em campos que façam sentido. Podemos renomeá-los no primeiro EditFields, mas será mais interessante criar um segundo nó, também chamado de Set. Neste nó, puxaremos individualmente os campos. Podemos fazer isso pegando o ponto endereço 0 no nó anterior e renomeando para Logradouro, Cidade e Sigla. Assim, teremos os campos organizados da maneira desejada.
Embora pudéssemos configurar esses três campos na aula anterior, preferimos deixá-los separados para tratar o formato do dado, realizar o split e filtrar alguns campos. Não queremos todos os campos do Output, apenas alguns: endereço, ID do cliente e nome do cliente. Informações como vendedor, nome do vendedor e segmento não são necessárias, conforme indicado pelo pessoal do BI. Portanto, não carregaremos essas informações no Data Warehouse, apenas as essenciais.
Para acessar o ID do cliente e o nome do cliente, utilizamos as expressões:
{{ $json.ID_CLIENTE }}{{ $json.CLIENTE }}O primeiro EditFields atua como filtro de informações e tratamento da string. O segundo EditFields realiza apenas a renomeação e reorganização dos campos. Aqui, selecionamos os itens desejados dos endereços. Ao executar, teremos 57 itens, mas apenas Logradouro, Cidade e Sigla. Queremos todos os outros campos, exceto o campo Endereço, que já foi dividido conforme desejado. Ao clicar no checkbox "Incluir os Outros Campos de Input" e executar novamente, todos os campos são incluídos, exceto o Endereço, que não queremos. Selecionamos a opção "Quero todos menos o que eu selecionar" e executamos novamente, obtendo o formato desejado: ID do Cliente, Cliente, Logradouro, Cidade e Sigla.
Assim, extraímos as informações necessárias do cadastro no Excel, excluindo as desnecessárias e organizando o endereço de forma útil. Carregamos o arquivo, temos os clientes e agora precisamos carregar um arquivo XML com regiões e estados para combinar essas informações com as dos clientes.
O curso n8n para devs: otimizando o processo de ETL possui 146 minutos de vídeos, em um total de 38 atividades. Gostou? Conheça nossos outros cursos de Automação e Produtividade em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Programação, Data Science, Front-end, DevOps, Mobile, Inovação & Gestão, UX & Design, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para estudantes ultra comprometidos atingirem seu objetivo mais rápido.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.