top of page

Coffee and Tips Newsletter

Inscreva-se na nossa newsletter semanal

Nos vemos em breve!

#3 Data Lake, Data Warehouse e o conceito de Lakehouse

  • Foto do escritor: JP
    JP
  • 10 de set.
  • 4 min de leitura

Atualizado: 13 de set.

Série: Trilha prática para se tornar Engenheiro de Dados – Capítulo 3


Pré-requisitos


Para seguir este capítulo, você precisa ter rodado os capítulos anteriores:


Execute o comando abaixo para instalar as bibliotecas:

pip install pandas sqlalchemy pyarrow requests

Não se preocupe: vamos usar apenas exemplos simples, que rodam localmente.



Por que falar de Data Lake, Data Warehouse e Lakehouse?


Nos capítulos anteriores, trabalhamos com um produto e depois criamos uma tabela com SQLite. Foi ótimo para aprender fundamentos.


Mas imagine uma empresa de e-commerce com milhões de produtos, milhares de transações por minuto, avaliações de clientes em tempo real e relatórios diários para áreas de negócio.


Nesse cenário:


  • Guardar tudo em CSV não funciona.

  • SQLite não escala para centenas de usuários consultando ao mesmo tempo.

  • E sem governança, os dados viram uma bagunça.


É aí que entram três arquiteturas fundamentais:


  • Data Lake – o depósito de dados brutos.

  • Data Warehouse (DW) – a biblioteca organizada de dados prontos para análise.

  • Lakehouse – o modelo híbrido que tenta unir os dois.




Data Lake


Definição


Um Data Lake é um repositório centralizado que armazena dados em qualquer formato e em grande volume.


  • Pode receber CSV, JSON, logs de aplicação, fotos, áudios e até dados de IoT.

  • O princípio é: “armazene agora, processe depois”.


data lakes
Data Lake


 Vantagens


  • Flexibilidade: aceita dados estruturados e não estruturados.

  • Custo-benefício: geralmente mais barato, já que usa armazenamento bruto (ex.: S3, GCS).

  • Escalabilidade: pode armazenar petabytes ou exabytes de dados.


Desvantagens


  • Sem organização, pode virar um Data Swamp (pântano de dados inutilizáveis).

  • Consultas lentas, já que os dados não estão otimizados.

  • Necessidade de catálogo de dados (Glue, Hive Metastore) para dar sentido ao que foi armazenado.


Ferramentas do mercado

  • AWS S3 (mais comum).

  • Google Cloud Storage.

  • Azure Data Lake Storage (ADLS).

  • HDFS (Hadoop Distributed File System, mais legado).


Exemplo prático – Criando um mini Data Lake local


import requests
import pandas as pd
import os

# Criando a pasta do "Data Lake"

os.makedirs("data_lake", exist_ok=True)

# Extraindo dados de produtos (simulando ingestão bruta)

url = "https://dummyjson.com/products"
data = requests.get(url).json()

# Convertendo lista de produtos em DataFrame

df_produtos = pd.DataFrame(data["products"])

# Salvando em múltiplos formatos no Data Lake local

df_produtos.to_csv("data_lake/produtos.csv", index=False)
df_produtos.to_json("data_lake/produtos.json", orient="records", lines=True)

print("Data Lake criado com arquivos: produtos.csv e produtos.json")

Aqui criamos uma versão mini do que seria um Data Lake. É claro que em menores proporções pois em uma empresa, esses arquivos estariam em um bucket AWS S3, e ferramentas como Glue ou Hive ajudariam a catalogar.



Data Warehouse


Definição


Um Data Warehouse (DW) é um banco de dados especializado em consultas analíticas rápidas.


  • Os dados chegam já limpos, padronizados e organizados.

  • Ideal para BI, relatórios gerenciais e dashboards.

  • Baseado em modelagem dimensional (fatos e dimensões).



Data Warehouse
Data Warehouse

Vantagens


  • Performance: consultas otimizadas para análise.

  • Consistência: dados padronizados e confiáveis.

  • Ferramentas de visualização (Tableau, Power BI, Looker) se conectam facilmente.


Desvantagens


  • Menos flexível: não lida bem com dados não estruturados (imagens, áudio, etc.).

  • Custo maior: paga-se por performance e otimização.

  • Requer ETL antes de carregar (mais esforço inicial).



Ferramentas do mercado


  • Amazon Redshift (AWS).

  • Google BigQuery.

  • Snowflake.

  • Azure Synapse.



Exemplo prático – Criando um mini DW com SQLite


from sqlalchemy import create_engine

# Lendo dados do Data Lake

df = pd.read_csv("data_lake/produtos.csv")

# Conectando ao banco SQLite (DW local)

engine = create_engine("sqlite:///meu_dw.db")

# Selecionando apenas campos relevantes

df_dw = df[["id", "title", "category", "brand", "price", "stock", "rating"]]

# Gravando tabela no DW

df_dw.to_sql("produtos", engine, if_exists="replace", index=False)
print("Tabela 'produtos' criada no Data Warehouse (SQLite)")


Executando queries no SQLite


Agora que os dados estão no DW, vamos consultar em SQL.


🅰️ Pelo terminal


Digite os seguintes comandos abaixo:

sqlite3 meu_dw.db

Para deixar a saída do resultado organizada:

.headers on
.mode column

Para Conferir tabelas:

.tables

Executar query (exemplo):

SELECT category, AVG(price) AS preco_medio, AVG(rating) AS avaliacao_media
FROM produtos
GROUP BY category
ORDER BY preco_medio DESC;

🅱️ Usando programa gráfico


Se preferir, use o DB Browser for SQLite:


  1. Baixe em: https://sqlitebrowser.org.

  2. Abra meu_dw.db.

  3. Vá em Execute SQL.

  4. Rode a query:

SELECT category, AVG(price) AS preco_medio, AVG(rating) AS avaliacao_media
FROM produtos
GROUP BY category
ORDER BY preco_medio DESC;

Saída esperada (exemplo simplificado com a API DummyJSON):

sql


Lakehouse


Definição


O Lakehouse é a tentativa de unir Data Lake e DW:


  • Armazena dados brutos e estruturados no mesmo local.

  • Usa formatos modernos para permitir consultas rápidas sem duplicar dados.


    Lakehouse
    LakeHouse

Vantagens


  • Flexível + rápido.

  • Evita manter duas infraestruturas separadas.

  • Suporta batch e streaming.


Desvantagens

  • Tecnologia mais nova → menos padronizada.

  • Exige ferramentas específicas (Delta Lake, Iceberg, Hudi).


Ferramentas do mercado

  • Databricks Delta Lake.

  • Apache Iceberg (usado pela Netflix).

  • Apache Hudi (usado pelo Uber).



Exemplo prático – Salvando em Parquet


# Salvando tabela em formato Parquet (colunar e otimizado)

import pandas as pd

# Carregando os dados do CSV para o Dataframe
df = pd.read_csv("data_lake/produtos.csv")

# Através do Dataframe já carregado é criado o parquet
df.to_parquet("data_lake/produtos.parquet", index=False)

print("Arquivo 'produtos.parquet' salvo no Data Lake (base para um Lakehouse)")

O Parquet é o formato mais comum em arquiteturas modernas de Lakehouse.


Em empresas, milhares desses arquivos ficam em S3 e são lidos com Athena, Spark ou Databricks.



Leituras recomendadas



 Conclusão


Neste capítulo você aprendeu que:


  • Data Lake → depósito de dados brutos e flexível (S3, GCS, ADLS).

  • Data Warehouse → biblioteca estruturada e rápida para análise (Redshift, BigQuery, Snowflake).

  • Lakehouse → o híbrido moderno que une os dois (Delta Lake, Iceberg, Hudi).


👉 O que fizemos aqui foi apenas uma simulação local com CSV, JSON, SQLite e Parquet. Mas não se preocupe: nos próximos capítulos vamos aproximar você do mundo real, explorando ferramentas como Airflow, Spark, Redshift e S3.



O que vem a seguir?


👉 No Capítulo 4: Orquestração de pipelines com Airflow.


Você vai aprender por que orquestrar tarefas é essencial e criar seu primeiro DAG.



Gostou desse capítulo?


👉 Assine a newsletter Coffee & Tips e receba os próximos capítulos direto no seu e-mail.


👉 Pré-venda exclusiva


Em breve também vamos lançar um E-Book avançado, com tutoriais em Spark, Airflow, Redshift, tudo para você se tornar um Engenheiro de Dados!


Cadastre-se agora na lista de pré-venda e garanta:


  • Acesso antecipado antes do lançamento oficial 🚀

  • Benefícios exclusivos para inscritos 💡

  • Conteúdo extra que não estará disponível gratuitamente



Fique ligado!


 
 
 

Comentários


bottom of page