Como criei um dashboard com os casos de COVID-19 no mundo, que atualiza os dados automaticamente, utilizando a plataforma Google Data Studio e uma base de dados no Google Sheets.
Introdução
Fala ai gente, hoje venho contar um pouco sobre o dashboard que criei recentemente para dar início ao meu portfólio de projetos. E nestes tempos que vivemos, o tema escolhido não poderia ser outro: COVID19.
Vídeo
Demonstração do dashboard:
Acesse o dashboard: https://datastudio.google.com/reporting/fb21b4c7-af4c-4bfb-94d8-464f917c4c9b
Plataforma Google Data Studio
De acordo com a própria Google, o Data Studio é utilizado para transformar seus dados em relatórios e painéis informativos, fáceis de ler e de compartilhar e totalmente personalizáveis. Ou seja, é uma solução ou “quase solução” de Business Intelligence. digo isso pois, se comparada com outras plataformas de BI, o Data Studio possui grandes limitações, porém temos de lembrar que estamos tratando de uma ferramenta gratuita.
Assim como a maioria das ferramentas do G Suite, esta apresenta uma interface bem intuitiva, de fácil utilização e integra muito bem com seus “irmãos” ex: Google Analytics, Google Ads, Google Sheets, etc.
Se quiser sabe mais, acesse: https://support.google.com/datastudio/answer/6283323?hl=pt-BR
Captura de dados
Confesso que pulei algumas etapas de planejamento do processo, porém como o objetivo já era bem claro, fui logo procurar uma fonte de dados confiável e que atendesse aos requisitos para uma extração de dados simples mas que permitisse uma atualização de forma automática.
Acabei chegando nessa fonte https://www.worldometers.info/coronavirus/, que aliás já foi recomendada pelo biólogo e pesquisador brasileiro Atila Iamarino.
Os pontos que foram essenciais para a utilização desse site, além da legitimidade das informações, foi a forma como era disposta a informação – uma table em HTML – e a atualização dos dados que acontecem diariamente.
Como “banco de dados” utilizei o Google Planilhas, que se integra facilmente com o Data Studio, e para trazer os dados do site, utilizei a fórmula:
=IMPORTHTML("https://www.worldometers.info/coronavirus/#countries","table")
Esta fórmula funciona como um “web scraper”, e importa os dados de uma tabela ou lista em uma página HTML, veja abaixo o resultado:

Porém, esta fórmula não atualiza os dados conforme há uma atualização na fonte. Então tive que usar um script – semelhante ao VBA no Excel, mas com a linguagem Javascript – para apagar e “inputar” a fórmula de forma recorrente para assim os dados serem atualizados. Segue o código abaixo:
function getData() {
//Insere a função =IMPORTHTML na planilha "World", na celula A1
var sheet = SpreadsheetApp.getActive().getSheetByName('World')
sheet.getRange('A1').activate()
//Apaga a fórmula anterior
sheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
sheet.getRange('A1').activate()
//Insere a fórmula
.setFormula('=IMPORTHTML("https://www.worldometers.info/coronavirus/";"table")');
//Filtra a planilha somente com os dados necessários
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues([''])
.build();
SpreadsheetApp.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
};
Para deixar a execução desse código automática, utilizei a plataforma Google Apps Script, que permite a criação de “triggers” para execução programada. Neste caso, os dados são atualizados a cada uma hora.

Conexão de dados
Após validar a atualização automática de dados, fiz a conexão da planilha com o Data Studio, onde não há segredos, tudo é feito de forma bem intuitiva, onde através das colunas é feita uma leitura automática para criação de todos os campos.

A partir daí, com todos os dados tratados, começa a parte desenvolvimento do aspecto visual do relatório.
Vou ser sincero, foi algo que fui criando intuitivamente e usando outros dashboards como inspiração, e como a variedade de dados não era complexa, isso acabou dando mais liberdade para usar os gráficos de maneira espontânea.
Para acessar o dashboard: https://datastudio.google.com/reporting/fb21b4c7-af4c-4bfb-94d8-464f917c4c9b
Conclusão
Este foi um projeto relativamente simples, mas de bastante importância para início do meu portfólio. Sei que em relação aos aspectos técnicos o trabalho é um pouco “pobre”, mas tive que iniciar de uma forma simples para que o meu portfolio saísse da gaveta rs.
Se você tiver qualquer dúvida, mande nos comentários abaixo para enriquecermos o tema.
Obrigado pelo seu tempo e fique bem!