3
respostas

[Dúvida] Consigo extrair dados em tempo real de sites para o Power BI?

Olá pessoal,

Gostaria de saber se tem alguma forma de extrais dados de sites em tempo real para fazer analises no Power BI, exemplo acompanho a bolsa de valores e gostaria de criar um relatório que me mostre os ativos da bolsa em tempo real, puxando de algum site seja da B3 ou qualquer outro site de mercado financeiro, alguém conhece algum documento ou se é possível fazer essa integração que funciona em tempo real?

Obrigado!

3 respostas

Tema algumas opções

1. Uso de APIs Financeiras

Para obter dados em tempo real da bolsa de valores, a maneira mais eficiente é utilizando APIs financeiras. Existem várias APIs que oferecem dados de ações e índices financeiros em tempo real. Algumas delas incluem:

  • Alpha Vantage: Oferece dados em tempo real de ações, commodities, moedas, etc. Tem uma versão gratuita com limitações e versões pagas mais robustas.

  • IEX Cloud: Outra opção popular que oferece dados em tempo real e históricos de ações. Tem um plano gratuito e planos pagos com mais dados e funcionalidades.

  • Yahoo Finance: Embora não tenha uma API oficial, você pode acessar os dados usando bibliotecas como yfinance no Python. Esses dados não são exatamente "em tempo real", mas podem ser atualizados com boa frequência.

  • Quandl: Oferece acesso a dados financeiros, embora a maioria das suas APIs em tempo real seja paga.

  • B3: A própria Bolsa de Valores Brasileira oferece APIs para acesso a dados de ativos, embora a B3 possa ter limitações em tempo real e custos dependendo do volume de dados.

2. Integração com o Power BI

Para integrar essas APIs diretamente ao Power BI, você pode usar o conector de Web ou até mesmo conectar diretamente via Python. Vou te mostrar algumas formas de fazer isso:

Usando o conector Web do Power BI

O Power BI permite fazer consultas HTTP diretamente a APIs através do conector "Web". Aqui está o processo básico para integrar dados de uma API:

  1. No Power BI, vá até a guia "Home" e clique em "Get Data".
  2. Selecione a opção "Web".
  3. Coloque a URL da API que você deseja acessar, junto com a chave de API (se necessário).

Por exemplo, se você estiver usando a Alpha Vantage para obter dados das ações, o URL seria algo como:

https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=GOOG&interval=1min&apikey=YOUR_API_KEY

Esse URL retornaria os dados das ações do Google em intervalos de 1 minuto. O Power BI então conectaria diretamente à API e faria a extração dos dados.

Usando Python no Power BI

Se você precisa de um controle maior ou deseja processar os dados antes de carregá-los no Power BI, você pode usar scripts em Python. O Power BI tem suporte nativo para rodar scripts Python, o que é ótimo para extração de dados de APIs usando bibliotecas como requests ou yfinance.

Aqui está um exemplo básico de script Python para buscar dados financeiros usando yfinance:

import yfinance as yf
import pandas as pd

data = yf.download("GOOG", period="1d", interval="1m")
data.reset_index(inplace=True)

data

Esse código puxaria os dados do Google em tempo real (em intervalos de 1 minuto). Depois que você configurar o Python no Power BI, basta rodar esse script e importar os dados no Power BI.

3. Atualização em Tempo Real

  • Power BI Desktop: Para dados em tempo real, você pode configurar atualizações regulares, mas não é totalmente "ao vivo". Você pode agendar uma atualização para rodar a cada poucos minutos, por exemplo.

  • Power BI Service: Se você publicar seu relatório no Power BI Service, você pode configurar as atualizações de dados com mais frequência (dependendo do tipo de licenciamento), mas mesmo assim há limites na frequência de atualização em tempo real.

4. Desafios e Considerações

  • Limitações da API: Muitas APIs gratuitas têm limitações de requisições por minuto ou por dia, o que pode afetar a frequência de atualização dos seus dados.
  • Latência: Mesmo com APIs pagas, pode haver algum atraso entre a coleta de dados e sua atualização no Power BI. Não é garantido que você tenha dados "instantâneos" a cada segundo.
  • Licenciamento: Para atualizações em tempo real ou de alta frequência, é preciso considerar o plano de licenciamento do Power BI. O Power BI Pro, por exemplo, tem uma frequência de atualização limitada, enquanto o Power BI Premium oferece mais flexibilidade.

5. Alternativa com Scraping

Caso você não consiga acessar a API de sua escolha ou precise de informações específicas que não estão em APIs, outra possibilidade é usar web scraping para extrair dados de sites. Ferramentas como Selenium ou BeautifulSoup podem ser usadas para extrair dados diretamente de páginas da web. Porém, o scraping em tempo real pode ser mais desafiador, pois você precisa garantir que o site permita esse tipo de acesso.

Resumo:

  • APIs financeiras são a melhor forma de obter dados em tempo real no Power BI.
  • Use o conector "Web" do Power BI para acessar APIs diretamente.
  • Se precisar de mais controle sobre os dados, use scripts Python no Power BI.
  • Lembre-se das limitações de frequência e dados das APIs, e escolha a API conforme suas necessidades.

Show de bola, vou pesquisar mais afundo.

Muito obrigado!

Aqui teria algum curso em vídeo já sobre isso? fiquei mais curioso depois que assisti o vídeo de Power BI: calculando e representando a média móvel em um gráfico do tipo candlestick

Acredito que esse curso deve ter ajudar

https://cursos.alura.com.br/course/python-power-bi-dados-mercado-financeiro