11-02-01 — Data Factory Pipelines e Dataflows Gen2
TL;DR
O Fabric tem dois mecanismos de ETL/ELT: Data Factory Pipelines (orquestração de alto nível — executa notebooks, stored procedures, copia dados, chama APIs) e Dataflows Gen2 (transformações low-code via Power Query, sem código Spark). Use Pipelines para orquestrar fluxos complexos e Dataflows Gen2 para transformações simples que analistas não-programadores precisam manter. Ambos são substitutos diretos do SSIS para quem está migrando de ambientes on-premises.
Data Factory Pipelines
Os Pipelines do Fabric são similares ao Azure Data Factory v2 — mas nativos ao Fabric, sem custo adicional de serviço. Um pipeline é um grafo de atividades executadas em sequência ou paralelo.
Atividades principais
| Atividade | O que faz | Quando usar |
|---|---|---|
| Copy Data | Copia dados entre fontes/destinos | Ingestão Bronze |
| Notebook | Executa notebook PySpark/Scala | Transformações Silver/Gold |
| Dataflow Gen2 | Executa um Dataflow | ETL low-code |
| Stored Procedure | Chama SP no Warehouse | Atualizações Gold |
| Web Activity | Chama REST API externa | Notificações, webhooks |
| Script | Executa T-SQL ou KQL | DDL/DML simples |
| ForEach | Loop sobre lista | Processar múltiplos arquivos |
| If Condition | Branch condicional | Tratamento de erros |
Configurando um pipeline via código (API)
# Criando pipeline via Fabric REST API (Python)
import requests
import json
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
pipeline_definition = {
"name": "pipeline_sap_para_bronze",
"properties": {
"activities": [
{
"name": "CopySAP",
"type": "Copy",
"inputs": [{"referenceName": "SAPDataset", "type": "DatasetReference"}],
"outputs": [{"referenceName": "BronzeDataset", "type": "DatasetReference"}],
"typeProperties": {
"source": {"type": "SapTableSource", "partitionOption": "PartitionOnInt"},
"sink": {"type": "LakehouseTableSink", "tableActionOption": "Append"}
}
}
]
}
}
response = requests.post(
f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items",
headers=headers,
json={"type": "Pipeline", "displayName": "pipeline_sap_bronze", "definition": pipeline_definition}
)
Dataflows Gen2
Dataflows Gen2 são transformações visuais baseadas em Power Query — a mesma linguagem M do Excel e Power BI. Analistas de negócio conseguem criar transformações sem escrever Spark ou SQL.
Casos de uso ideais para Dataflows Gen2
- Analistas que sabem Power Query mas não Python/Spark
- Transformações simples: filtrar, renomear colunas, mudar tipos, fazer joins básicos
- Ingestão de Excel e SharePoint Lists
- Prototipação rápida antes de codificar em PySpark
Limitações dos Dataflows
- Performance inferior ao Spark para volumes > 100 GB
- Transformações complexas (ML, NLP) não são possíveis
- Debugging mais difícil que notebooks Python
- Não suporta Delta Lake time travel nativamente
Scheduling e monitoramento
# Monitorando execuções de pipeline via API
response = requests.get(
f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{pipeline_id}/jobs",
headers=headers
)
jobs = response.json()["value"]
for job in jobs:
print(f"Job {job['id']}: {job['status']} - Duração: {job['duration']}ms")
if job['status'] == 'Failed':
print(f" Erro: {job['failureReason']['message']}")
Como isso se conecta
- 11-01-03 — Pipelines implementam o fluxo Bronze → Silver → Gold da Medallion
- 11-02-02 — OneLake Mirroring é uma alternativa a pipelines para fontes suportadas
- 11-04-02 — O desafio final usa um Pipeline para ingestão SAP