top of page
  • Foto do escritorRafael Perez

Data Warehouse, ETL & Case Navarra

Em outros artigos falamos sobre algoritmos de trading, boas práticas para a implementação de uma cultura de automação, perfil de equipe para trabalhar com algoritmos entre outros assuntos.


Nesse artigo vamos falar sobre Data Warehouse, a infraestrutura necessária para que os algoritmos tenham acesso aos dados tratados para sua execução. Elas não são de uso exclusivo dos algoritmos, mas sim têm uma vasta aplicação de análises de dados para inúmeros tipos de organizações. Vamos mostrar também partes do Data Warehouse que estamos construindo dentro da Navarra. Mas antes disso, temos que explicar o processo de ETL e como os dados chegam nas bases para começar.

Data Warehouse e ETL:

fonte - https://www.mindtek.com.br/2021/10/etl-o-que-e-e-quais-as-ferramentas-mais-populares/


Extract Transform and Load


ETL é um integrador de dados, dividido em três etapas: Extract, Transform, e Load. Esse processo é responsável pela compilação de dados que são provenientes de diversas fontes. Os dados são extraídos (Extract) de uma fonte, transformados (Transform) num formato que consiga ser analisado e carregados (Load) em qualquer sistema de armazenamento de dados como em um servidor físico ou cloud. A função do ETL é aprimorar a performance do data warehouse, jogando o processamento para o banco de dados.


Encontramos um vídeo da IBM explicando um pouco mais sobre ETL e seus benefícios CCPA (Contexto, Consolidação, Produtividade e Auditabilidade). Esse vídeo é um só dentre outros que a empresa preparou para falar sobre Data Warehouse, Data Lake e Data Marts. São vídeos curtos porem muito bem montados. Nesse em específico eles resumem todas as informações importantes e cada passo e componentes na montagem de um Data Warehouse completo.



Data Warehouse


Data Warehouse é um sistema de gerenciamento de dados projetado para fornecer suporte às atividades de inteligência da empresa na análise avançada de dados e tomada de decisão. O Data Warehouse serve como uma fonte única de dados de uma organização. Seus dados são provenientes de várias fontes diferentes e transformados de dados “crus” em dados “tratados”, otimizados para análise, via ferramentas com foco em Extract, Transform and Load (ETL).


Os dados “crus” vem de diversas fontes heterogêneas como dados de transações, relacionamento, dados de clientes, ERPs, cadeia de suprimentos, e muitos outros. Após os dados passarem pelo processo de ETL e já se encontrarem no DW, temos que “expor” esses dados com reports para o usuário, que poderá usar ferramentas de análise ou métodos computacionais como machine-learning para tomar decisões. Usando ferramentas de análise do próprio Data Warehouse ou utilizando ferramentas de BI/PAML (Business Inteligence/Predictive Analytics Machine Learning).


Qual a diferença de uma Data Warehouse para um Banco de Dados?

Um banco de dados normalmente serve como um depósito para dados com uma aplicação específica enquanto um Data Warehouse serve para guardar vários, senão todos os dados de uma organização. Um DW consegue capturar dados do presente e passado para análises preditivas, machine-learning e outras formas de análises avançadas.

Implementação de Data Warehouse usando equipe interna (On Premise):


1- On Premise

As vantagem de se montar um DW on premise é o controle sobre os dados, código e em alguns casos a estratégia. Também há a questão do maior controle da velocidade de rede, um problema que ocorre nas soluções Cloud.

Porém para ter essa estrutura de DW on premise existe um alto custo de mão de obra especializada para manter e montar.


2- Cloud SaaS

Existem empresas especializadas em cloud para data warehouse.

As vantagens de se contratar esse serviço são:

  • Libera recursos da sua organização para focar na análise dos reports desse EDW que você montou

  • Muito mais fácil de escalar

  • Acesso à updates técnicos automáticos.

Desvantagens

  • Pode ter problemas de custo dado a escalabilidade de Cloud

  • Erros e atrasos de conexão.

Lista das 6 maiores soluções em Cloud:

Nos chamou atenção a solução “Snowflake”. Ela é uma solução SaaS, numero um na lista da Forbes Cloud 100 e utilizada por empresas como a Capital One e McKesson Corporation.




Criação In-house de um Data Warehouse Utilizando Informações da CCEE


Agora vamos mostrar um pouco de uma das fontes de dados do Data Warehouse que estamos criando internamente na Navarra.

Na sua primeira etapa, acessamos os dados disponíveis no site da CCEE, na área de segurança de mercado. Nesse dashboard temos acesso às informações de cadastro das contrapartes dos agentes do mercado, se estão ativos ou não, tamanho da empresa pelo capital social entre outras informações.

Dashboard da CCEE com informações dos agentes do mercado. - https://www.ccee.org.br/pt/dados-e-analises/seguranca-de-mercado/indicadores-de-seguranca


Extração e Montagem dos Dados


Nessa etapa extraímos os dados disponíveis para baixar do dashboard no formato csv. Após a extração, utilizamos uma biblioteca do Python (Pandas) que nos permite gerar e manipular uma tabela com as informações que são extraídas do dashboard da CCEE.


Exemplo de dataframe para manipulação dos dados no Pandas.

dates = pd.date_range("20130101", periods=6)

dates
Out[6]: 
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')

df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))

df
Out[8]: 
                   A         B         C         D
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401
2013-01-06 -0.673690  0.113648 -1.478427  0.524988

Assim que transformado em formato tabela conseguimos transmitir para o PostgreSQL, um banco de dados cloud open source.



Do pandas registramos no Postgre no mesmo formato da tabela gerada na manipulação dos dados extraídos.


A partir deste banco de dados “crus” , é possível transformar os dados e seu formato para integrar melhor com os fluxos de trabalho que o necessitarem dentro da parte analítica da data warehouse. No nosso caso vamos montar uma relação de compra e venda entre as classes de agentes do mercado, criando assim um report com dados “tratados”. A partir daqui podemos então utilizar ferramentas de análises para extrair insights sobre o mercado. Um insight poderia ser o fluxo de contratos entre as classes de agentes do mercado num período de tempo.


Esse foi um breve overview sobre data warehouse, e uma aplicação prática e simples que podemos fazer utilizando dados públicos da CCEE. No futuro vamos trazer mais artigos falando sobre a estrutura em si de dados e algumas estratégias algorítmicas que podemos executar. Para receber todos os nossos artigos, podcasts e conteúdos direto no teu email, basta se inscrever em nossa comunidade!

Lembramos sempre que tudo que nós construímos na Navarra é um processo colaborativo com o mercado de energia então se você tiver algum assunto ou dúvida fique à vontade para entrar em contato com nossa equipe!


E-mail para contato: rafael.perez@navarratech.com




42 visualizações0 comentário

Comentarios


bottom of page