Ir para o conteúdo

Configuração do Data Lake - Igarapé

Visão Geral

Este documento descreve a configuração e estrutura do Data Lake implementado para o projeto Igarapé, utilizando os serviços do Google Cloud Platform (GCP). A arquitetura foi projetada para suportar ambientes de desenvolvimento e produção separados, garantindo isolamento e segurança dos dados.

Introdução ao processos de dados

O processo de dados da Datahub foi desenhado para ser simples, seguro e integrado com as ferramentas utilizadas atualmente pelo time (Linguagem R). Apesar da simplicidade, é muito importante entender cada etapa para que seja possível compreender o funcionamento da infraestrutura como um todo.

Então, vamos colocar aqui um diagrama que ajudará a entender por onde o dado transita e no que consistem as etapas do ciclo de vida dos dados:

Diagrama de etapas de processamento dos dados

Como estamos falando sobre a infraestrutura de dados, vamos focar única e exclusivamente na parte central desse diagrama, ou seja, as três grandes etapas - Ingestão, Transformação e Aplicação - e o bloco central, o Armazém de Dados.

Armazém de dados

Como o próprio nome já diz, é o local onde os dados são armazenados. No entanto, não é uma ferramenta tão simples quanto o nome faz parecer, dado que é o componente central do processo de dados e, portanto, deve suportar uma grande variedade de operações, além de uma imensa capacidade de processamento e armazenamento, visto que os dados podem ter tamanhos e prioridades diferentes.

Mais especificamente, as ferramentes escolhidas para o Datahub possuem:

  • Capacidade de armazenamento e processamento "ilimitada": não queremos nos preocupar em qual o tamanho do dado que vamos armazenar, nós o queremos e ponto!

  • Otimização de processamento via particionamento e correlatos: para dados de grande volume, é sempre interessante recorrer a mecanismos de particionamento e semelhantes para otimizar o processamento e, consequentemente, os custos de uma consulta.

  • Suporte a SQL: nós queremos usar a linguagem de consulta mais popular e acessível até o momento.

  • Funções de análise geoespacial: o Instituto Igarapé trabalha com diversos dados que possuem uma dimensão espacial. Assim, ter funcionalidades de análise geoespacial é fundamental.

  • Governança simplificada: ter uma interface amigável para gerir o armazém de dados é fundamental.

  • Conexões com plataformas de desenvolvimento de dashboards: não adianta ter dados se não conseguimos visualizá-los ou usá-los. A capacidade de ofertar dados com qualidade para outros produtos do Igarapé é fundamental

Ingestão

A ingestão é o ato de obter um dado e trazê-lo para seu ambiente. Ela consiste em duas subetapas: a extração e o armazenamento.

A Extração é ato de adquirir o dado a partir de alguma fonte, como um banco de dados, uma API ou um arquivo qualquer. A partir daí, o Armazenamento é a etapa de salvar esse dado em algum lugar como, por exemplo, um computador ou um armazém de dados.

Se você parar para pensar, coisas rotineiras podem ser enxergadas como ingestão: ao consultar seu contracheque, por exemplo, você está realizando uma extração, ao requerer os dados no website de consulta, e um armazenamento, ao baixá-lo para seu computador.

Transformação

A transformação de dados é um conceito extremamente abrangente, então sua definição deve ser suficientemente ampla: modificar um dado buscando um objetivo. Então, qualquer modificação no dado original é considerada uma transformação. Seguindo o exemplo do contracheque, uma possível transformação seria a conversão de moeda, caso você precisasse de um contracheque em dólar.

Note que, após a transformação, uma nova etapa de armazenamento é realizada. o DataHub foi projetado de modo a garantir a visiblidade do dado em diferentes estágios de transformação.

Aplicação

Essa é a última etapa de um processo de dados. Ela consiste em utilizar o dado para algum fim. Aqui se encontram coisas como dashboards, aplicativos, chat bots e outros sendo, então, um pouco fora do escopo desse guia.

Mas seguindo nosso exemplo do contracheque, uma possível aplicação seria a utilização dos dados do seu contracheque para a declaração do Imposto de Renda da Pessoa Física (IRPF).

Considerações finais

Como é possível notar pelo próprio diagrama, é possível iterar nesse processo indefinidamente. Então, grandes projetos de dados não usam somente um dado contido no armazém, mas múltiplos, fazendo transformações para uní-los e obter informações mais ricas. Também, as transformações podem ocorrer indefinidamente, até que se obtenha o resultado esperado.

Apresentando os componentes da infraestrura criada

Este diagrama introduz duas novidades

  1. Python: a linguagem de programação que utilizamos para fazer os processos de ingestão de dados

  2. R: a linguagem de programação que pesquisadores e cientístas de dados do Igarapé usam para gerar análises

Diagrama de etapas de processamento dos dados

Agora vamos entender a estrutura de serviços configurada na Google Cloud Platform (GCP)

datahub-igarape-dev

  • Nome do Projeto: datahub-igarape-dev
  • Finalidade: Ambiente de ingestão dos dados e transformação dos dados para padronizá-los de acordo com o manual de estilo

  • Quais componentes da infraestrutura existem? Quais são as finalidades?

  • Python: Responsável pelos códigos de ingestão dos dados
  • DBT: transformação e validação dos dados
  • Storage: Armazenamento dos dados brutos
  • Big Query: Armazenamento e processamento dos dados

datahub-igarape

  • Nome do Projeto: datahub-igarape
  • Finalidade: Ambiente de produção para armazenar dados validados e hospedar aplicações de Business Intelligence (BI)

  • Quais componentes da infraestrutura existem? Quais são as finalidades?

  • R: Transformação dos dados
  • DBT: transformação dos dados
  • Big Query: Armazenamento e processamento dos dados
  • Metabase: Construção de dashboards e paineis interativos