04-06-02 — RAG com Microsoft Fabric e OneLake
TL;DR
Microsoft Fabric unifica dados estruturados (tabelas Delta/Lakehouse) e não estruturados (arquivos no OneLake) num único data lake multi-cloud. Para RAG, isso significa que seus dados corporativos — vendas, logs, documentos — já estão no OneLake e podem alimentar pipelines de RAG sem ETL adicional. Os Fabric Data Agents (GA em 2025) permitem conversational analytics direto sobre dados do OneLake via linguagem natural. O OneLake MCP server abre esse acesso para agentes de IA via protocolo MCP.
OneLake: o data lake unificado para RAG
OneLake é o storage central do Microsoft Fabric — uma única instância por tenant, multi-região, que armazena todos os dados do Fabric em formato open (Delta Parquet). Para RAG, ele representa uma vantagem crucial: seus dados já estão lá, não precisam ser copiados para um blob storage separado antes de serem indexados.
Fabric Data Agents — Conversational Analytics
Fabric Data Agents (GA desde novembro 2024) são agentes pré-construídos que conectam um LLM (Azure OpenAI) diretamente a fontes de dados do Fabric: Lakehouses, Warehouses, Power BI semantic models e KQL databases. O usuário faz perguntas em linguagem natural e o agente traduz para queries SQL/DAX/KQL, executa e sintetiza a resposta.
Como um Fabric Data Agent funciona internamente
Pipeline: Fabric → Embeddings → AI Search → LLM
Quando você tem documentos armazenados no OneLake (PDFs, Word, e-mails), o pipeline para RAG clássico é:
Exemplo: Indexar arquivos do OneLake via Fabric Notebook
# Executar este código em um Fabric Notebook (Spark environment)
from notebookutils import mssparkutils
from azure.search.documents import SearchClient
from azure.core.credentials import AzureKeyCredential
from openai import AzureOpenAI
import json
# Listar arquivos no Lakehouse (OneLake)
files = mssparkutils.fs.ls("Files/documentos/contratos/")
openai_client = AzureOpenAI(
azure_endpoint="https://meu-openai.openai.azure.com",
api_key=mssparkutils.credentials.getSecret("kv-name", "openai-key"),
api_version="2024-08-01-preview",
)
search_client = SearchClient(
endpoint="https://meu-search.search.windows.net",
index_name="rag-contratos",
credential=AzureKeyCredential(
mssparkutils.credentials.getSecret("kv-name", "search-key")
),
)
docs_para_indexar = []
for file in files:
if file.name.endswith(".txt"): # Após extração com Document Intelligence
# Ler conteúdo do arquivo no OneLake
content = mssparkutils.fs.head(file.path, maxBytes=100000)
# Gerar embedding
embedding_response = openai_client.embeddings.create(
input=content[:8000], # Limite do modelo
model="text-embedding-3-small",
)
docs_para_indexar.append({
"id": file.name.replace(".txt", "").replace("/", "-"),
"content": content,
"title": file.name,
"source": file.path,
"content_vector": embedding_response.data[0].embedding,
})
# Upload em batch para AI Search
if docs_para_indexar:
result = search_client.upload_documents(docs_para_indexar)
print(f"Indexados: {sum(1 for r in result if r.succeeded)} documentos")
OneLake MCP Server — Agentes com acesso a dados
O OneLake MCP (Model Context Protocol) server, anunciado pela Microsoft em 2025, expõe dados do OneLake como tools MCP. Agentes de IA (Copilot Studio, Azure AI Agent Service) podem consultar dados do Fabric via linguagem natural sem precisar de código SQL explícito.
# Configuração conceitual do OneLake MCP em um agente
# (via Azure AI Agent Service + MCP)
agent_tools = [
{
"type": "mcp",
"server": {
"type": "azure_fabric_onelake",
"workspace_id": "seu-workspace-id",
"lakehouse_id": "seu-lakehouse-id",
"authentication": "managed_identity",
},
"allowed_tables": ["vendas", "clientes", "contratos"],
}
]
# O agente pode agora responder perguntas como:
# "Quais contratos vencem nos próximos 30 dias?"
# "Qual o total de vendas da região Sul no Q1?"
# Sem que o desenvolvedor escreva SQL — o LLM gera a query
Quando usar Fabric para RAG
| Cenário | Abordagem |
|---|---|
| Dados já estão no OneLake/Lakehouse | ✅ Fabric Notebook → AI Search (zero ETL extra) |
| Perguntas sobre tabelas/métricas | ✅ Fabric Data Agent (text-to-SQL) |
| Documentos PDF/Word no OneLake | ✅ Pipeline RAG clássico via Notebook |
| Dados em silos fora do Azure | ⚠️ Considerar migração ou OneLake shortcuts |
| Real-time (< 1s latência) | ❌ Fabric tem latência de Spark; use AI Search diretamente |
Como isso se conecta
- 04-02-03 Azure AI Search: o destino dos embeddings gerados a partir de dados do OneLake
- 04-06-01 Azure AI Search + OpenAI: o pipeline On Your Data pode ser alimentado por dados do Fabric
- 04-06-03 Desafio RAG jurídico: o Lakehouse do Fabric pode armazenar os 10k PDFs indexados
- 05-Agentes: Fabric Data Agents são agentes especializados em dados estruturados — complementares ao RAG de documentos
Fontes
- Microsoft Learn — Fabric Data Agents (AI Skills) — microsoft.com
- Microsoft Learn — OneLake Overview — microsoft.com
- Microsoft Tech Community — Introducing OneLake MCP Server — techcommunity.microsoft.com
- Microsoft Learn — OneLake Shortcuts — microsoft.com