Saltar a contenido

ETL en 5 Minutos

Esta guía te llevará desde cero hasta tener tu primer ETL funcionando en menos de 5 minutos.

Lo que vamos a lograr

Transferir datos de una base de datos MySQL a Google Sheets automáticamente.

graph LR
    A[MySQL Database] --> B[Fracttal ETL Hub] --> C[Google Sheets]
    A --> D[Orders Table]
    B --> E[Transform Layer]
    B --> F[Validation Engine]
    C --> G[Updated Spreadsheet]

    classDef database fill:#e3f2fd,stroke:#1976d2,stroke-width:3px,color:#1565c0
    classDef etl fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#6a1b9a
    classDef target fill:#e8f5e8,stroke:#388e3c,stroke-width:3px,color:#2e7d32

    class A,D database
    class B,E,F etl
    class C,G target

Prerequisitos (1 minuto)

Antes de empezar, asegúrate de tener:

  • Acceso al Hub ETL (solicita credenciales a tu administrador)
  • Base de datos con tabla de ejemplo
  • Google Sheets cuenta con permisos de escritura

!!! tip "¿No tienes datos de prueba?" Puedes usar nuestra sandbox con datos demo. Salta al ejemplo con sandbox.


Paso 1: Configuración Básica (1 minuto)

Estructura mínima del ETL

mi-primer-etl.json
{
  "id": "12345678-1234-1234-1234-123456789abc",
  "jsonrpc": "2.0",
  "method": "etl.etl_update",
  "params": {
    "id": "my-first-etl",
    "config": {
      "source": {
        "id_type": 1,
        "id_connection": "mi_base_datos",
        "description": "Extraer órdenes de trabajo",
        "name": "MySQL Production",
        "feature": "read_data",
        "parameters": {
          "query_string": {
            "table": "orders",
            "limit": "100"
          }
        }
      },
      "target": {
        "id_type": 5,
        "id_connection": "mi_google_sheet",
        "description": "Escribir a Google Sheets",
        "name": "Orders Spreadsheet",
        "feature": "append",
        "parameters": {
          "spreadsheet_id": "TU_SPREADSHEET_ID_AQUI",
          "range": "Hoja1!A:E"
        }
      }
    }
  }
}

Personaliza tu configuración

  1. Cambia TU_SPREADSHEET_ID_AQUI por el ID real de tu Google Sheet
  2. Ajusta la tabla: Cambia "table": "orders" por tu tabla real
  3. Configura el rango: Modifica "Hoja1!A:E" según tus columnas

Paso 2: Ejecutar el ETL (1 minuto)

Opción A: API REST

curl -X POST https://etl-hub.fracttal.com/api/v1/etl \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer TU_TOKEN" \
  -d @mi-primer-etl.json

Opción B: Panel Web

  1. Ve a ETL Hub Dashboard
  2. Click "Nuevo ETL"
  3. Pega tu configuración JSON
  4. Click "Ejecutar"

Paso 3: Verificar el Resultado (1 minuto)

Si todo salió bien, deberías ver:

Respuesta exitosa

{
  "id": "12345678-1234-1234-1234-123456789abc",
  "jsonrpc": "2.0",
  "result": {
    "status": "success",
    "records_processed": 45,
    "execution_time": "2.3s",
    "target_url": "https://docs.google.com/spreadsheets/d/TU_ID/edit"
  }
}

En Google Sheets

Tu hoja debería tener datos similares a:

order_id customer amount status date
ORD-001 ACME Corp 1250.00 completed 2024-10-28
ORD-002 TechCo 850.50 pending 2024-10-29

Troubleshooting Rápido

Error común: "Connection failed"

{"error": "Connection timeout to database"}
Solución: Verifica que la conexión mi_base_datos esté configurada correctamente.

Error común: "Spreadsheet not found"

{"error": "Unable to open spreadsheet"}
Solución: 1. Verifica el ID del spreadsheet 2. Asegúrate de que la cuenta de servicio tenga permisos

Error común: "Schema validation"

{"error": "Invalid configuration format"}
Solución: Usa nuestro validador online para verificar el JSON.


Sandbox Demo

¿Quieres probar sin configurar conexiones? Usa nuestro entorno de prueba:

etl-demo-sandbox.json
{
  "id": "demo-12345678-1234-1234-1234-123456789abc",
  "jsonrpc": "2.0",
  "method": "etl.etl_update",
  "params": {
    "id": "sandbox-demo",
    "config": {
      "source": {
        "id_type": 14,
        "id_connection": "debug_demo",
        "description": "Datos de prueba generados",
        "name": "Demo Data",
        "feature": "generate_mock_data",
        "parameters": {
          "record_count": 10,
          "data_type": "orders"
        }
      },
      "target": {
        "id_type": 14,
        "id_connection": "debug_console",
        "description": "Mostrar en consola",
        "name": "Debug Output",
        "feature": "print_data"
      }
    }
  }
}

Resultado esperado: Verás 10 registros de órdenes ficticias en el log de ejecución.


Próximos Pasos

¡Felicidades! Ya tienes tu primer ETL funcionando. Ahora puedes:

Aprender más

Casos práticos

Optimización


¿Necesitas ayuda?

!!! success "¡Lo lograste!" Has completado tu primer ETL en menos de 5 minutos. ¡Ahora puedes automatizar cualquier transferencia de datos!