DEV Community

DeadPunnk
DeadPunnk

Posted on

Carregando dados com Apache HOP & Postgres

Pipeline

Nesse artigo, vamos realizar um passo a passo, de como construir um pippeline de carga de dados utilizando a ferramenta Apache HOP. Nossa fonte de dados será um arquivo CSV, em seguida vamos realizar algumas transformações e carregar para uma tabela no nosso banco de dados Postgres.

Image description

Dataset

O nosso dataset é o 30000 Spotify Songs que possui informações de musicas que foram extraídas através da API do Spotify e disponibilizadas para download no Kaggle

Construção do pipeline

O primeiro transform utilizado é o CSV file Input, onde é selecionado o diretório em que esta localizado o arquivo csv com os dados que iremos utilizar no pipeline. Depois de selecionado o arquivo, os dados devem aparecer no transform depois de selecionado a opção Get Fields.

Image description

Uma vez carregado o arquivo, vamos fazer uma seleção dos campos que queremos utilizar. Nosso dataset conta com 23 colunas, mas vamos separar apenas 6 colunas para processar no pipeline e carregar para a tabela no postgres.
Com o trasnform Select Values, vamos a seleção dos campos que vamos utilizar, na aba Meta-data, clicando no botão Get fields to change vamos trazer os campos para o tranform e atribuir o tipo string aos campos de texto.

Image description

Em seguida, utilizaremos o transform String operations para realizar transformações nos campos do tipo string, as tranformações de Trim type e Lower/Upper vão ser atribuídas aos campos. Ao atribuir a opção both a um dos campos, podemos repetir essa ação aos demais campos usando o botão Copy the last edited cell values to all rows.

Image description

Agora que finalizamos as transformações, podemos fazer a conexão com o banco de dados e utilizar um tranform para realizar a carga dos dados. Primeiro precisamos configurar a conexão com o banco nos meta dados do Apache Hop, que pode ser acessado no canto superior esquerdo da interface.

Image description

Do lado esquerdo da tela, vamos selecionar a opção Relational Database Connection, clicando com o botão direito do mouse e em seguida na opção new. Preencha os campos com as configurações da sua base de dados e teste a conexão, depois basta salvar, clicando no x para fechar a aba irá aparecer a opção para salvar antes de fechar.

Image description

Depois de configurado a conexão podemos incluir o transform Table output, que recebe as informações de conexão do banco e faz o mapeamento com os campos da tabela e do pipeline. Lembrando que, é necessário que sua tabela tenha sido criada no banco antes de utilizar esse tranform, e que os campos da tabela tenham tipos correspondentes aos campos do pipeline, que no nosso caso são dados do tipo string.

Image description

No nosso caso eu optei por usar os mesmos nomes do dataset original, para facilitar o reconhecimento dos campos.

Conclusão

Uma vez tendo esse processo de carga automatizado podemos pensar em novas etapas para o nosso projeto, podemos realizar novas transformações ou até alterar o banco e que queremos fazer a carga.
Existem diversas opções de tranforms para utilizar e diferentes formas de utiliza-los em conjunto, mas para esse tutorial trouxe uma forma simplificado do que podemos fazer, pretendo explorar mais opções da ferramenta em posts futuros.

Top comments (0)