(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como criar um Fabric Pipeline para copiar ficheiros para OneLake em Microsoft Fabric

João Barros 16 de October de 2026 3 min de leitura

Este tutorial mostra como criar um Fabric Pipeline para copiar ficheiros de um storage externo (por exemplo, um Azure Blob) para OneLake no Microsoft Fabric, com uma transformação simples. É útil para automatizar a ingestão, garantir histórico e preparar dados para Lakehouse ou Warehouse.

Pré-requisitos

  • Conta com acesso a um workspace no Microsoft Fabric e permissões para criar Pipelines.
  • Fonte de dados (ex.: Azure Blob Storage) com ficheiros CSV ou Parquet e credenciais SAS/connection string.
  • OneLake com uma pasta (container) de destino ou permissão para criar uma.
  • Noções básicas de T-SQL e JSON para configurar activities.

Passo 1: Criar um Linked Service para o storage de origem

Um Linked Service descreve como o Pipeline acede à fonte de dados. No Fabric Pipeline, cria-se um Linked Service para o Azure Blob (ou S3) usando a connection string ou SAS.

// Exemplo de JSON esquemático para Linked Service (Azure Blob Storage)
{
  "type": "AzureBlobStorage",
  "typeProperties": {
    "connectionString": "DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net"
  }
}

Passo 2: Criar um Linked Service para OneLake (destino)

Criar um Linked Service que aponte para OneLake. No Fabric, pode usar-se o conector OneLake nativo ou apontar para o caminho do Lakehouse. Este passo garante que o Pipeline escreve para o local correcto.

// Exemplo esquemático para OneLake (pseudoconfig)
{
  "type": "OneLake",
  "typeProperties": {
    "rootPath": "/OneLake/YourTenant/Namespace/Area/DestinationFolder"
  }
}

Passo 3: Criar datasets de origem e destino

Datasets descrevem os ficheiros que queremos copiar. Crie um dataset para os CSV no blob e outro para o destino em OneLake (pode ser Parquet ou Delta).

// Dataset de origem (CSV)
{
  "name": "SourceCsv",
  "properties": {
    "linkedServiceName": "AzureBlobLinkedService",
    "type": "DelimitedText",
    "typeProperties": {
      "location": { "container": "input", "folderPath": "daily" },
      "columnDelimiter": ",",
      "firstRowAsHeader": true
    }
  }
}

// Dataset de destino (Parquet em OneLake)
{
  "name": "DestParquet",
  "properties": {
    "linkedServiceName": "OneLakeLinkedService",
    "type": "Parquet",
    "typeProperties": {
      "location": { "folderPath": "processed/2026-10-01" }
    }
  }
}

Passo 4: Criar um Pipeline com Copy activity

O Pipeline usa uma Copy activity para mover os ficheiros do blob para OneLake. Pode configurar o mapeamento de colunas e a transformação de dados (por exemplo, seleccionar colunas ou converter tipos).

{
  "name": "CopyBlobToOneLake",
  "properties": {
    "activities": [
      {
        "name": "CopyCSVToParquet",
        "type": "Copy",
        "inputs": [{ "referenceName": "SourceCsv" }],
        "outputs": [{ "referenceName": "DestParquet" }],
        "typeProperties": {
          "enableStaging": false,
          "translator": {
            "type": "TabularTranslator",
            "mappings": [
              { "source": { "name": "id" }, "sink": { "name": "id", "type": "Int64" } },
              { "source": { "name": "value" }, "sink": { "name": "value", "type": "Double" } }
            ]
          }
        }
      }
    ]
  }
}

Passo 5: Adicionar triggers para automatizar (agendamento)

Para correr automaticamente, adicione uma trigger de schedule no Pipeline. Pode ser diária, horária ou baseada em evento. Aqui mostramos um agendamento diário.

{
  "name": "DailyTrigger",
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": { "recurrence": { "frequency": "Day", "interval": 1 } }
  }
}

Passo 6: Testar e tratar erros comuns

Execute o Pipeline manualmente para validar. Erros comuns: credenciais incorrectas (401/403), caminho destino inexistente e mapeamento de tipos. Verifique os logs na run history do Pipeline e habilite retry/backoff nas activities.

// Exemplo de retry simples na activity
"policy": { "retry": 3, "intervalInSeconds": 30 }

Verificar o resultado

Confirme que os ficheiros apareceram no OneLake na pasta de destino e que o formato (Parquet/Delta) está correcto. Abra um Lakehouse ou use um Notebook/Spark SQL para ler alguns registos e validar colunas e tipos:

-- Exemplo T-SQL em Warehouse ou Spark SQL
SELECT TOP 10 *
FROM parquet.`/OneLake/.../processed/2026-10-01/`;

Conclusão

Depois de automatizar a cópia para OneLake, pode acrescentar transformações mais complexas (Spark Jobs, Dataflow), gerir versões com Delta e integrar com Power BI. Experimente adicionar validações de qualidade antes da cópia. Qual será a próxima transformação que quer automatizar?