Cómo crear un Fabric Pipeline para copiar archivos a OneLake en Microsoft Fabric
Este tutorial muestra cómo crear un Fabric Pipeline para copiar archivos desde un storage externo (por ejemplo, un Azure Blob) a OneLake en Microsoft Fabric, con una transformación simple. Es útil para automatizar la ingestión, garantizar histórico y preparar datos para Lakehouse o Warehouse.
Requisitos previos
- Cuenta con acceso a un workspace en Microsoft Fabric y permisos para crear Pipelines.
- Fuente de datos (p. ej.: Azure Blob Storage) con archivos CSV o Parquet y credenciales SAS/connection string.
- OneLake con una carpeta (container) de destino o permiso para crear una.
- Conocimientos básicos de T-SQL y JSON para configurar activities.
Paso 1: Crear un Linked Service para el storage de origen
Un Linked Service describe cómo el Pipeline accede a la fuente de datos. En el Fabric Pipeline, se crea un Linked Service para el Azure Blob (o S3) usando la connection string o SAS.
// Exemplo de JSON esquemático para Linked Service (Azure Blob Storage)
{
"type": "AzureBlobStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net"
}
}
Paso 2: Crear un Linked Service para OneLake (destino)
Crear un Linked Service que apunte a OneLake. En Fabric, puede usarse el conector OneLake nativo o apuntar a la ruta del Lakehouse. Este paso garantiza que el Pipeline escribe en la ubicación correcta.
// Exemplo esquemático para OneLake (pseudoconfig)
{
"type": "OneLake",
"typeProperties": {
"rootPath": "/OneLake/YourTenant/Namespace/Area/DestinationFolder"
}
}
Paso 3: Crear datasets de origen y destino
Datasets describen los archivos que queremos copiar. Cree un dataset para los CSV en el blob y otro para el destino en OneLake (puede ser Parquet o 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" }
}
}
}
Paso 4: Crear un Pipeline con Copy activity
El Pipeline usa una Copy activity para mover los archivos del blob a OneLake. Puede configurar el mapeo de columnas y la transformación de datos (por ejemplo, seleccionar columnas o convertir 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" } }
]
}
}
}
]
}
}
Paso 5: Añadir triggers para automatizar (programación)
Para ejecutarlo automáticamente, añada un trigger de schedule en el Pipeline. Puede ser diario, por horas o basado en evento. Aquí mostramos una programación diaria.
{
"name": "DailyTrigger",
"properties": {
"type": "ScheduleTrigger",
"typeProperties": { "recurrence": { "frequency": "Day", "interval": 1 } }
}
}
Paso 6: Probar y tratar errores comunes
Ejecute el Pipeline manualmente para validar. Errores comunes: credenciales incorrectas (401/403), ruta de destino inexistente y mapeo de tipos. Revise los logs en la run history del Pipeline y habilite retry/backoff en las activities.
// Exemplo de retry simples na activity
"policy": { "retry": 3, "intervalInSeconds": 30 }
Verificar el resultado
Confirme que los archivos aparecieron en OneLake en la carpeta de destino y que el formato (Parquet/Delta) es correcto. Abra un Lakehouse o use un Notebook/Spark SQL para leer algunos registros y validar columnas y tipos:
-- Exemplo T-SQL em Warehouse ou Spark SQL
SELECT TOP 10 *
FROM parquet.`/OneLake/.../processed/2026-10-01/`;
Conclusión
Después de automatizar la copia a OneLake, puede añadir transformaciones más complejas (Spark Jobs, Dataflow), gestionar versiones con Delta e integrar con Power BI. Pruebe a añadir validaciones de calidad antes de la copia. ¿Cuál será la próxima transformación que quiere automatizar?