Produzir relatórios recorrentes sobre métricas importantes do negócio é uma responsabilidade central de muitos analistas. Fazer isso de forma consistente e sem erros agrega muito valor para a sua organização na hora de embasar decisões — mas a que custo? Com frequência, é preciso passar por várias etapas manuais para coletar os dados, montar o relatório com os principais indicadores e compartilhá-lo com as partes interessadas. Esse fluxo de trabalho consome tempo e é propenso a falhas.
Felizmente, existe um jeito melhor: você pode usar os recursos de agendamento do DataCamp Workspace para gerar automaticamente relatórios de métricas de negócio com visualizações cheias de insights, economizando tempo e reduzindo a chance de erros no seu processo de reporting.
Neste artigo, vamos demonstrar esse fluxo configurando a execução recorrente de um relatório com dados do mercado de ações (porque há dados novos quase todos os dias), para que o notebook sempre reflita os acontecimentos mais recentes do mercado.
Prefere assistir a este conteúdo em vídeo? A DataCamp fez um code along sobre o mesmo tema, configurando relatórios automatizados com dados de vendas de bicicletas armazenados em um banco Microsoft SQL Server. Você pode rever esse code along acessando este link.
Como montar o relatório
Para começar, precisamos criar um novo projeto de dados no Workspace (um workspace) que execute as operações que vamos automatizar na próxima etapa. Para este tutorial, vamos trabalhar com dados do mercado de ações, porque são públicos e atualizados com frequência. Assim, nosso relatório muda com o tempo.
O mais prático é criar uma cópia de um workspace que já tenha todo o código. Se preferir seguir cada passo por conta própria, crie um novo workspace do zero e adicione uma célula de código em Python para importar os dados do mercado de ações e visualizá-los:
import pandas as pd
import plotly.express as px
import yfinance as yf
# Define how many stock I own of each ticker
holdings = {
'AAPL': 16,
'TSLA': 15,
'TEAM': 7,
}
# Get the data
tickers = list(holdings.keys())
data = yf.download(tickers, start="2023-01-01")
# Wrangle the data
adj_close = data['Adj Close'].reset_index()
adj_close_long = pd.melt(
adj_close,
id_vars='Date',
value_vars=tickers,
var_name='ticker',
value_name='adj_close'
)
adj_close_long['total_value'] = adj_close_long['adj_close'] * adj_close_long['ticker'].map(holdings)
adj_close_long
# Show the position values for stocks in my portfolio
fig = px.line(
adj_close_long, x='Date', y='total_value', color='ticker'
)
fig.update_layout(
title="Position values for for stocks in my portfolio",
yaxis_title="Position Value",
xaxis_title="Date"
)
fig.show()
Uma explicação detalhada desse código foge ao escopo deste artigo; nossa meta é apenas colocar um código em Python para rodar, para que possamos agendá-lo na próxima etapa! Você pode verificar se o código no seu notebook do workspace está funcionando clicando no botão "Run" no topo. Deve aparecer um gráfico do plotly bem bonito:

Automatizando o relatório
Agora que temos um workspace com algum código em Python, vamos configurá-lo para rodar em uma agenda recorrente! Vá até o menu "Run" e selecione "Schedule run":

No modal, você pode programar as execuções do notebook escolhendo entre frequência diária ou semanal e definindo o horário de execução. Além disso, há a opção de receber notificações por e-mail tanto para execuções bem-sucedidas quanto para falhas.

Para testar, defina seu notebook para rodar diariamente, em um horário alguns minutos à frente, para ver o agendamento em ação!
Veja a mágica acontecer
Se você configurou o notebook para rodar alguns minutos no futuro, aguarde um instante até a execução agendada começar. No horário definido, você verá a mensagem "Running X cells on a schedule" abaixo do botão Run. Todo o código será executado novamente, de cima a baixo, atualizando as saídas caso haja dados novos em relação à última execução.

Se você configurou o workspace para enviar um e-mail quando a execução for bem-sucedida, também terá recebido uma mensagem na sua caixa de entrada:

Pronto! Seu notebook agora vai rodar todos os dias ou todas as semanas, dependendo de como você configurou. Assim, quando acessar o workspace, ele sempre terá os dados mais recentes. No nosso exemplo com dados do mercado de ações, isso significa que você estará sempre por dentro do valor total da sua carteira.
No contexto empresarial, você pode usar esse recurso em conjunto com um dos conectores nativos de dados do Workspace para se conectar, por exemplo, a um banco PostgreSQL, a um data warehouse Snowflake ou a um cluster Redshift para trazer os dados mais atuais da sua empresa e montar relatórios cheios de insights para compartilhar com as partes interessadas.
Desde o lançamento, os usuários do Workspace têm usado esse recurso para diversos fins, incluindo:
- executar checagens de validação de dados durante migrações para garantir a consistência entre diferentes fontes,
- fazer scraping de páginas de políticas públicas atualizadas regularmente para criar datasets e monitorar a transparência em nomeações cívicas, e
- automatizar a coleta de dados e enviar resumos semanais personalizados por e-mail para usuários de aplicações SaaS integrando com soluções como a Customer.io.
A flexibilidade do Python com o ambiente de notebook totalmente configurado do Workspace formam uma combinação poderosa. Estamos curiosos para ver o que você vai criar com esse novo recurso do Workspace!

