Projeto COVID 19 – Obtendo os Dados com o PDI

Olá meus amigos! tudo bem com vocês? Espero que sim!

Conforme o explicado no post anterior hoje vamos iniciar o projeto COVID-19 obtendo os dados da API Covid19 Brazil disponível em: https://covid19-brazil-api.now.sh

Para iniciar vou utilizar o Pentaho Data Integration para conectar na API e utilizar o método GET para extrair os dados disponibilizados no formato JSON, os quais serão transformados e gravados em um banco de dados relacional (MySQL), sendo utilizados para alimentar um Dashboard feito diretamente no Power BI. Para quem quiser replicar os passos que vou apresentar aqui e não tem o PDI instalado segue o post onde indico os passos para a instalação do PDI

Para começar vamos analisar a API’s que vamos utilizar. No link https://covid19-brazil-api-docs.now.sh encontramos 6 API’s:

e cada uma delas tem uma amostra de resultado, neste post vamos usar como exemplo a Lista casos por todos estados brasileiros:

Vejam que o retorno da API é um arquivo Json com 8 campos:

uid, uf, state, cases, deaths, suspects, refuses e datetime

Observação: No preview apesar de mostrar os campos “broadcast e “comments” os mesmo não estão presentes no JSON final, por isso uma boa pratica é não confiar só na documentação e realizar um teste antes de iniciar a criação do Pipeline de dados.

Para iniciar a construção do nosso pipeline de dados vamos adicionar um componente Generate rows. O Gerador de linhas é normalmente utilizado para gerar linhas gera um número especifico de linhas que por padrão são vazias, no entanto, elas podem conter vários campos estáticos. Esta etapa é usada principalmente para fins de teste. E geralmente é útil para gerar uma linha que é um ponto inicial da transformação. Em nosso exemplo vamos gerar 1 linha indicando o Limit igual a “1”, o Name vai ser “URL” o Type “String” e o valor será a url da API:

https://covid19-brazil-api.now.sh/api/report/v1

Agora vamos adicionar o componente Rest Client, nele vamos marcar a opção Accept URL from field?, em URL field name vamos adicionar a coluna criada no Generate rows, em HTTP method vamos selecionar “GET”, conforme a documentação. O retorno da API em Result field name se chamará result por padrão podendo ser alterado.

Vamos continuar o pipeline adicionando um JSON Input, vamos marcar o check-box Source is from a previous step indicando que as informações da etapa anterior serão a origem das informações e indicar o “result” no Select field.

Ainda no componente JSON Input em Fields, vamos adicionar as colunas contidas no retorno do JSON.

em Path indicamos o “nível” do campo caso tenhamos campos aninhados devemos informar os níveis superiores e inferiores.

Agora vamos remover as colunas que não nos interessam mais usando o componente Select Values e indo na aba Remove:

O próximo passo é gravar as informações no banco usando o componente Table output. Primeiro devemos indicar uma conexão no campo Connection (não vou detalhar a criação da conexão pois a mesma é autoexplicativa sendo necessário basicamente informar o host name, usuário e senha), no campo Target table informamos a tabela onde os dados serão criados, o restante vou deixar como padrão.

no nosso caso a tabela não existe então antes de finalizar a configuração temos que clicar no botão SQL:

Porem como podemos ver nem sempre o Pentaho acerta no tipo dos campos então vamos ajustar conforme segue:

Ao finalizar temos que clicar em Execute, para executar o comando no banco e criando a tabela

Agora com o pipeline criado vamos executar

Agora vamos conferir os dados gravados no MySQL:

Pronto! agora com os dados gravados no banco podemos dar continuidade ao projeto, mas vamos deixar isso para outro post. Até lá pessoal!

Publicado por agails

Engenheiro de Dados (em formação), aficionado por games e pela filha mais linda do mundo, nerd de criação e geek por opção!

Um comentário em “Projeto COVID 19 – Obtendo os Dados com o PDI

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s