Automatizando a coleta de dados de demonstrativos financeiros: criando a atualização

Chegamos na última etapa do processo de criação do nosso Dashboard automatizado de dados de demonstrativos financeiros. Na primeira postagem aprendemos a como importar os dados fornecidos pela CVM e como criar indicadores contábeis a partir dos dados. Na segunda postagem, colocamos o processo de coleta e criação de indicadores em um Dashboard. Por fim, na postagem de hoje, finalizaremos colocando o Dashboard em uma página Web, com atualizações programadas da coleta de dados por meio do Shiny Apps e do Github Actions.

É possível acompanhar a série através das postagens:

O Github Actions é uma plataforma de integração continua e entrega continua (CI/CD) que permite automatizar o pipeline de um projeto. O Worflow do Actions é um processo automatizado configurável que executa um ou mais trabalhos. Os fluxos de trabalho são definidos por um arquivo YAML no repositório e que será executado quando acionado por um evento no repositório, manualmente ou de acordo com um cronograma definido.

O Shiny Apps permite realizar o deploy de aplicações Shiny. Basicamente é um servidor que permite manter o Dashboard criado por R ou Python online em uma página própria.

A combinação do Actions com o Shiny permite criarmos um Workflow que possibilita a atualização do arquivo get_data.R com um cronograma definido, e que a partir da obtenção de novos dados, seja realizado o deploy automaticamente dentro do Shiny App.

O processo necessitará de algumas condições antes de colocarmos o Dashboard em um ambiente online. Deve-se:

  • possuir uma conta no Github;
  • possuir o Git instalado e com o usuário configurado na máquina (para mais detalhes veja o seguinte post: Conectando Git, Github e RStudio em 3 passos);
  • possuir uma conta no Shiny Apps;
  • ter o projeto do Dashboard criado com o Rstudio.

Com as condições acima satisfeitas, devemos seguir os seguintes passos:

Todo o processo abaixo pode ser conferido através da plataforma do Clube AM, o repositório de código da Análise Macro, onde disponibilizamos um vídeo explicando o o post, e também os arquivos utilizados.

1 - Criando um arquivo Renv.lock do projeto

O Github Actions funciona como se fosse uma máquina virtual, portanto, é necessário criar dentro do Workflow um ambiente para o R, e portanto, uma forma de que o sistema instale os pacotes no qual o projeto é dependente (aqueles que são carregados nos arquivos .R e .Rmd). Para isso, podemos utilizar o pacote {renv}, que permite controlarmos as informações dos pacotes dos quais são utilizados no Dashboard.

Com o projeto aberto, deve-se:

  1. usar o comando renv::init() para inicializar o ambiente do projeto local.
  2. use o comando renv::snapshot() para salvar o estado projeto local em um lockfile (chamado renv.lock). É neste arquivo que estará contido as informações dos pacotes utilizados no projeto.

2 - Enviando os arquivos para um repositório no Github

Deve-se realizar a transferência dos arquivos hospedados localmente para um repositório no Github através do Rstudio.

Vamos criar um repositório no Github, chamado de dashboard_financeiro, como abaixo.

Após a criação, utilizaremos o primeiro bloco de comandos do Git dentro do Terminal Git Bash do Rstudio

E por fim, realizamos o Commit inserindo o código Git abaixo no Terminal ou utilizamos as abas do Git dentro do Rstudio para criar o Commit.

Pronto! Temos o repositório com os arquivos do Dashboard.

3 - Configurando o repositório com o Shiny App

Antes de produzir o Dashboard dentro do ambiente Shiny App com o Actions, é necessário permitir que o Github tenha as credenciais para produzir o sistema no site do Shiny. Para realizar essa configuração, selecionamos dentro do repositório do Github, a aba Settings -> Secrets -> Actions -> New repository Secret. No bloco que será aberto, é necessário colocar o nome (Name*) que referenciará o Secret no Workflow do Github Actions e em Secret* colocaremos os Tokens do Shiny App.

Criaremos três Secret, um para o usuário, um para o token e outro para o secret do Shiny App. Os seus nomes serão:

  • RSCONNECT_USER
  • RSCONNECT_TOKEN
  • RSCONNECT_SECRET

Cada nome estará referenciado no Workflow do Github Actions.

E os Secrets de cada nome? Obtemos através da conta criada no site do Shiny App, acessando na Aba lateral superior a opção Tokens, "+ Add Token", e em "Show".

Portanto, o resultado de cada inserção ficará igual a imagem abaixo, que possui como exemplo a inserção do Token.

4 - Criando o arquivo do Github Actions

Agora podemos criar o Workflow do Github Actions para rodar o código em um ambiente a cada período de tempo.  Para tanto, acessamos a aba do repositório Github Actions e criamos um novo arquivo em Set up a workflow yourself.

Agora será criado um novo arquivo chamado main.yml. Aqui, podemos alterar o nome para qualquer um que se deseja, no caso, alterei para update.yml.

E o que inserir dentro do arquivo? Será um código que indicará o sistema os passos para a o período de execução do código, a construção do ambiente do R, a instalação do pacote do projeto, a execução dos arquivos get_data.R e index.Rmd e o deploy no Shiny Apps. O código segue abaixo:

Obs: É necessário seguir corretamente a identação

Uma vez construído o Workflow, é possível realizar o Commit e esperar o Actions fazer o seu trabalho. O processo pode ser demorado, normalmente de 20 a 40 minutos. Ao final, será gerado o link do site do Dashboard no site do Shiny Apps.

Quer saber mais?

Veja nossos cursos da trilha de Ciência de dados para Economia e Finanças onde ensinamos a coletar dados financeiros e econômicos e também a construir Dashboard com o R.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como tratar dados no Python? Parte 5: renomeando colunas

Como dar novos nomes significativos para as colunas em uma tabela de dados usando Python? Neste tutorial mostramos os métodos de renomeação de colunas disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Como tratar dados no Python? Parte 4: operações por grupos

Como mensalizar dados diários? Ou como filtrar os valores máximos para diversas categorias em uma tabela de dados usando Python? Estas perguntas são respondidas com os métodos de operações por grupos. Neste tutorial mostramos estes métodos disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.