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:

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
-
Python: a linguagem de programação que utilizamos para fazer os processos de ingestão de dados
-
R: a linguagem de programação que pesquisadores e cientístas de dados do Igarapé usam para gerar análises

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