Skip to content

Introdução Data Lakes

Introdução

No cenário atual, o engenheiro de dados nem sempre irá ingerir tabelas bem definidas. Logs de aplicação, eventos de sensores, cliques, imagens e textos competem por espaço nas arquiteturas de dados. Uma outra alternativa para armazenar esses dados é o Data Lake.

Um Data Lake é um repositório de armazenamento de grande escala que mantém dados brutos no formato nativo.

Sua popularização cresceu por volta de 2010, quando data warehouses relacionais passaram a sofrer com volume, variedade e velocidade de dados semi ou não estruturados.

Motivação para o surgimento do Data Lake!

Como guardar tudo isso agora, mesmo sem saber ainda todos os usos futuros?

Um Data Lake aceita múltiplos formatos de dados (estruturado, semi-estruturado, não estruturado) sem impor um esquema antecipado. Ele funciona como um repositório centralizado que pode conter tanto cópias não processadas de dados de sistemas de origem, (sensores, logs, sistemas de gestão), quanto informações já transformadas para uso em dashboards, análises avançadas ou treinamento de modelos.

Por que não só Data Warehouse?

O warehouse tradicional parte de um modelo pré-definido (schema-on-write). Isso exige decidir colunas, tipos e regras antes de carregar, o que pode atrasar a ingestão e limitar a flexibilidade para novos casos de uso.

O Data Lake inverte essa lógica: armazena agora, interpreta depois (schema-on-read). Assim, a modelagem e padronização ficam próximas do momento de consumo ou de etapas de refinamento.

Exercise

Liste dois exemplos de fontes de dados que ficariam difíceis (ou custosos) de colocar diretamente em um data warehouse relacional sem um pré-processamento pesado.

Answer

  • Logs de servidores web, que podem ter formatos variados e mudanças frequentes.
  • Dados de sensores IoT, que geram grandes volumes de dados em formatos não estruturados.

Características

Como características essenciais, um Data Lake geralmente apresenta:

  1. Store first: ingestão rápida copiando arquivos (ou dados em fluxo) quase como chegam.
  2. Escalabilidade horizontal: usando armazenamento de objetos (ex.: S3) com custo baixo, ou seja, foco em armazenar grandes volumes de dados de forma econômica.
  3. Neutralidade de computação: tem capacidade de processar e analisar dados usando diferentes engines de computação e ferramentas analíticas, sem ficar restrito a uma única tecnologia.
  4. Retenção histórica: buscar manter versões com histórico dos dados brutos pelo tempo definido em política de retenção, que considera requisitos legais, valor analítico e custo de armazenamento.

Observe que nenhuma dessas características garante valor por si só. Sem contexto e organização, vira apenas um repositório barato.

Exercise

Por que reter dados brutos pode ajudar a corrigir um erro descoberto meses depois em uma transformação de ETL?

Answer

Reter dados brutos permite reprocessar os dados originais com as correções necessárias, garantindo que qualquer erro na transformação anterior possa ser corrigido sem perda de informação.

Camadas Lógicas

Para evitar que o Data Lake se torne um pântano (data swamp), é necessário prover uma organização mínima.

Isto pode ser obtido ao aplicar uma separação simples de camadas.

Uma primeira divisão possível é separar dados brutos de dados processados.

Camada Objetivo Exemplo de conteúdo
raw Captura dos dados JSON, CSV original, logs, imagens
processed Limpeza, padronização, integração Colunas tipadas, normalização de datas, arquivos de formato colunar (Parquet)

Uma melhor organização pode ser obtida com a separação em três camadas.

Camada Objetivo Exemplo de conteúdo
raw (Bronze) Captura integral e imutável JSON de eventos, CSV original, logs, imagens
cleansed (Silver) Limpeza, padronização, integração Colunas tipadas, normalização de datas, arquivos de formato colunar (Parquet)
presentation (Gold) Lógica de negócio pronta para consumo Tabelas derivadas, fatos e dimensões, conjuntos agregados

Info!

Apesar de não ser a organização formal, a organização em três camadas (Bronze, Silver, Gold) é um padrão emergente, e bastante utilizada na prática.

Na prática vocês verão essas camadas mapeadas em prefixos de caminhos (ex.: s3://meu-data-lake/raw/...).

Arquitetura Medallion

Este padrão de camadas (Bronze, Silver, Gold) é conhecido como Medallion Architecture e foi popularizado pela Databricks.

Medallion Architecture Fonte: Adaptado de Databricks

Caso queira se aprofundar, veja este artigo da Databricks

Exercise

Dê um exemplo de transformação típica que ocorre ao mover um dataset de raw para cleansed.

Answer

  • Conversão de tipos de dados (ex.: transformar strings em datas ou números).
  • Remoção de duplicatas e tratamento de valores nulos.
  • Normalização de formatos (ex.: padronizar datas para um formato único).

Vantagem x Risco

Um Data Lake geralmente oferece custo baixo por terabyte e flexibilidade para novos usos. Entretanto, sem governança mínima (nomenclatura, controle de versões de schema, sem metadados ricos, políticas de retenção e padrões de qualidade) ele degrada em um conjunto caótico de pastas!

Data Swamp

Usuários deixam de confiar e criam cópias paralelas.

Checagem Rápida

Exercise

Em poucas frases, compare schema-on-write e schema-on-read, destacando impacto no tempo de disponibilização dos dados.

Answer

  • Schema-on-write exige definir o esquema antes de armazenar os dados, o que pode atrasar a ingestão, mas garante consistência imediata.
  • Schema-on-read permite armazenar dados brutos rapidamente, adiando a definição do esquema para o momento da leitura, o que acelera a disponibilização inicial dos dados.

Question

Em um Data Lake baseado em S3, não é permitido utilizar Parquets, dado que arquivos Parquets possuem schema embutido.

Answer

Falso. Arquivos Parquet são amplamente utilizados em Data Lakes por serem eficientes em termos de armazenamento e consulta.

Exercise

Proponha um conjunto mínimo de pastas para iniciar um Data Lake em S3 alinhado às camadas discutidas.

Answer

Um conjunto mínimo de pastas para iniciar um Data Lake em S3 poderia ser:

s3://meu-data-lake/
    |-- raw/
    |-- silver/
    |-- gold/

Nesta introdução, definimos Data Lake, justificamos sua existência, diferenciamos de um warehouse, discutimos camadas e riscos. Com isso, vocês estão prontos para experimentar na prática! Siga para a próxima seção.