11-01-02 — Lakehouse vs Warehouse vs Real-Time Intelligence
TL;DR
O Fabric oferece três formas de armazenar e processar dados: Lakehouse (flexível, schema-on-read, ideal para dados brutos e ML), Warehouse (SQL completo, schema-on-write, ideal para analytics estruturado) e Real-Time Intelligence (RTI) (streaming, eventos, IoT, análise em milissegundos). Para a maioria das empresas .NET: Lakehouse para dados históricos + Warehouse para KPIs + RTI para alertas em tempo real.
Lakehouse
Um Lakehouse no Fabric combina a flexibilidade de um data lake (qualquer formato, qualquer estrutura) com a capacidade de query SQL sobre os dados. Os dados ficam no OneLake em formato Delta Lake.
Quando usar Lakehouse
- Dados semi-estruturados (JSON, CSV, logs)
- Pipelines de ML que precisam de dados brutos
- Ingestão de alta velocidade sem schema definido antecipadamente
- Processamento via Spark / Python notebooks
- Camada Bronze e Silver da arquitetura Medallion
# Acessando Lakehouse via PySpark em Notebook Fabric
from pyspark.sql import SparkSession
# No Fabric, o SparkSession já está configurado
df = spark.read.format("delta").load("Files/bronze/vendas_sap/")
# Transformação
df_clean = df.filter(df.status == "ATIVO") \
.withColumn("valor_brl", df.valor_usd * 5.0)
# Salva na camada Silver
df_clean.write.format("delta").mode("overwrite") \
.save("Tables/silver_vendas")
Warehouse
O Warehouse do Fabric é um data warehouse nativo em nuvem — SQL-first, schema-on-write, com suporte completo a T-SQL. Diferente do Lakehouse (que usa Spark), o Warehouse usa um engine SQL separado otimizado para analytics.
Quando usar Warehouse
- KPIs e métricas de negócio com schema bem definido
- Relatórios Power BI com performance previsível
- Equipes que preferem SQL sobre Spark/Python
- Camada Gold da arquitetura Medallion
- Data Agents que fazem queries SQL
// Conectando no Warehouse via .NET (ODBC/TDS igual ao SQL Server)
var connectionString = "Server=xyz.datawarehouse.fabric.microsoft.com;" +
"Database=vendas_dw;Authentication=ActiveDirectoryInteractive;";
using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();
var result = await connection.QueryAsync<VendasMes>(
"SELECT regiao, SUM(valor) as total FROM gold.fato_vendas " +
"WHERE ano_mes = @anoMes GROUP BY regiao",
new { anoMes = "2025-04" });
Real-Time Intelligence (RTI)
RTI é o workload do Fabric para dados em streaming e análise em tempo real. Substitui o Azure Data Explorer (Kusto) com integração nativa ao ecossistema Fabric.
histórico]
Quando usar RTI
- Monitoramento de aplicações (.NET logs → RTI)
- Alertas de negócio em tempo real (queda de vendas, erros de sistema)
- IoT e sensores industriais (cliente Vale, Michelin)
- Streaming de eventos de usuários (click analytics)
// Query KQL (Kusto Query Language) — sintaxe diferente de SQL
// Erros .NET nas últimas 1 hora
AppExceptions
| where TimeGenerated > ago(1h)
| where Application == "impar-api-prod"
| summarize count() by bin(TimeGenerated, 5m), ExceptionType
| render timechart
Comparativo de decisão
| Critério | Lakehouse | Warehouse | RTI |
|---|---|---|---|
| Latência de dados | Minutos-horas | Minutos-horas | Milissegundos |
| Linguagem de query | Spark SQL / Python | T-SQL completo | KQL (Kusto) |
| Schema | Flexível (on-read) | Rígido (on-write) | Semi-estruturado |
| Custo de storage | Baixo (Parquet) | Médio | Médio (compressão KQL) |
| Integração com IA | Excelente (ML) | Boa (SQL → Data Agents) | Boa (alertas IA) |
Como isso se conecta
- 11-01-03 — Medallion architecture organiza Lakehouse + Warehouse em camadas
- 11-03-02 — Data Agents preferem o Warehouse (SQL semântico)
- 11-04-01 — Power BI conecta tanto ao Lakehouse quanto ao Warehouse