Ir al contenido
Cloudata
Integración de datos

CSV a SQL Server: un pipeline confiable antes de hacerlo inteligente

Edición octubre de 2026. Un pipeline útil no solo carga filas: demuestra qué recibió, qué rechazó y qué puede repetirse sin duplicar resultados. La IA ayuda a investigar; el contrato decide qué se acepta.

Qué te llevarás de esta lectura

  • Define formato, claves y significado antes de cargar el primer archivo.
  • Separa recepción, validación y publicación mediante una zona de staging.
  • Diseña los reintentos según los efectos del destino y el estado del lote.
  • Usa la IA para explicar diferencias sin cambiar reglas de carga por su cuenta.

Un CSV pequeño puede esconder un problema grande

Imagina que ventas entrega cada mañana un archivo con cliente_id, fecha, moneda e importe. Un día incluye comas dentro del nombre, otro usa punto y coma como delimitador y otro repite el lote anterior. Un proceso que solo pregunta si el archivo existe puede terminar correctamente y producir información equivocada.

Define codificación, delimitador, comillas, cabecera, campos obligatorios, formato de fecha y representación de nulos. Aclara si el importe incluye impuestos y conserva los identificadores como texto cuando los ceros iniciales importen. La lectura de CSV necesita un parser compatible con su contrato, no separar cada línea por comas.

Diseña tres zonas: recibido, validado y publicado

Asigna al lote un identificador y registra origen, hora de recepción, hash del archivo y versión del contrato. El hash detecta contenido repetido; no demuestra que dos archivos con distinto orden representen transacciones distintas. Define la identidad del lote con el sistema productor y conserva una política de retención.

Carga inicialmente en staging: una tabla o espacio aislado con valores originales y el identificador del lote. Valida allí antes de publicar al destino. Una fila rechazada necesita un motivo y una referencia recuperable; su contenido debe almacenarse con los mismos controles de acceso y privacidad que los datos aceptados.

Tabla con desplazamiento
ZonaEvidencia mínima
RecibidoIdentidad del lote, hash, contrato y conteo de origen
ValidadoFilas aceptadas, rechazadas y motivos
PublicadoDestino, claves afectadas y estado confirmado

Comprueba conversiones sin ocultar registros inválidos

TRY_CONVERT devuelve NULL cuando una conversión admitida no puede completarse. Eso permite contar errores, siempre distinguiendo un nulo permitido de un valor obligatorio ausente. Microsoft advierte que una conversión expresamente no permitida todavía puede generar un error. [1]

sql
-- Ejemplo de lectura: staging.ventas ya existe en el laboratorio.
-- @BatchId se suministra como parámetro del comando, no concatenando SQL.
SELECT
    COUNT_BIG(*) AS filas,
    COUNT_BIG(CASE
        WHEN NULLIF(LTRIM(RTRIM(cliente_id)), '') IS NULL THEN 1
    END) AS ids_vacios,
    COUNT_BIG(CASE
        WHEN importe_raw IS NULL
          OR NULLIF(LTRIM(RTRIM(importe_raw)), '') IS NULL
          OR TRY_CONVERT(decimal(18, 2), importe_raw) IS NULL THEN 1
    END) AS importes_invalidos
FROM staging.ventas
WHERE batch_id = @BatchId;

El ejemplo supone importes de texto ya normalizados al formato numérico acordado. No resuelve separadores locales, precisión superior ni reglas de moneda. Prueba también el redondeo a dos decimales: convertir con éxito no demuestra que el resultado conserve la precisión exigida. Es una consulta ilustrativa, no una carga ejecutada contra una base de datos de cliente.

Un reintento debe conocer lo que ya ocurrió

Si el proceso pierde conexión después de escribir, no asumas que el destino quedó intacto. Consulta el estado confirmado del lote y sus claves antes de repetir. La estrategia puede combinar una restricción única, un registro de lotes y una transacción de publicación. La clave correcta depende de si recibes eventos, saldos o fotografías completas.

Para operaciones SQL transaccionales, revisa XACT_ABORT y el manejo de errores según el diseño: con ON, un error de ejecución puede cancelar y revertir la transacción completa; no sustituye la idempotencia ni resuelve todos los errores de compilación. [2] Los commits por lote también pueden dejar partes escritas. Confirma esos límites con pruebas de desconexión y duplicados.

Dónde ayudan la IA y Dova

La IA puede resumir diferencias de esquema o agrupar motivos de rechazo usando diagnósticos saneados. Debe sugerir explicaciones y pruebas, sin inventar identificadores, completar importes desconocidos ni aplicar cambios automáticamente. Compara cada recomendación con registros reproducibles y con el responsable de la regla comercial.

Dova documenta componentes de archivo y base de datos, con modos de escritura y opciones cuya disponibilidad efectiva depende de conexión y worker. [3] Diseña el Mapping, configura la Session y verifica un Workflow de laboratorio antes de programarlo. Monitor aporta evidencia de ejecución; el estado correcto no reemplaza la reconciliación. La guía de operación insiste en revisar efectos parciales antes de recuperar o repetir. [4]

Una prueba de aceptación que sirve para operar

  • Archivo con comillas, caracteres acentuados, cabecera y un importe inválido.
  • Reenvío del mismo lote y duplicados de clave dentro del archivo.
  • Desconexión después de una escritura parcial y recuperación controlada.
  • Cambio inesperado de columna, fecha o formato decimal.
  • Comparación de filas, claves e importes por moneda, sin mezclar monedas.

Mide frescura desde el momento de negocio, porcentaje de rechazo, lotes reconciliados, duración y tiempo de recuperación. Acuerda metas con el consumidor en vez de prometer latencia universal. Esta disciplina convierte una integración cotidiana en un proceso explicable y prepara una base fiable para analítica e IA.

Preguntas que vale la pena hacer

¿Puedo cargar directamente a la tabla final?

Puede ser válido en un caso controlado, pero staging facilita validar, investigar y reconciliar antes de afectar datos operativos. La elección depende del riesgo y del volumen.

¿Upsert evita todos los duplicados?

No. Requiere claves correctas, soporte efectivo del conector y reglas claras del destino. También debes tratar duplicados históricos y la identidad de los lotes.

¿La IA puede reparar automáticamente los importes inválidos?

No debe inventar valores. Puede explicar patrones y proponer reglas; la corrección requiere evidencia del origen y aprobación de negocio.

Dónde encaja Dova

Explora los mappings visuales, workflows y ejecución mediante workers de Dova para organizar una integración. Evalúa los conectores y transformaciones disponibles frente a tus propios requisitos.

Fuentes y lecturas recomendadas

  1. TRY_CONVERT (Transact-SQL)Microsoft Learn · Consultado

    Conversion behavior, NULL results and explicitly forbidden conversion errors.

  2. SET XACT_ABORT (Transact-SQL)Microsoft Learn · Consultado

    Runtime transaction error behavior and limits; not a guarantee of destination idempotency.

  3. Componentes de entrada y salida de MappingCloudata · Dova Docs · Consultado

    Declared file/database components and write modes, subject to effective connector and worker capabilities.

  4. Seguridad y operación: ejecutar, recuperar y retirar recursosCloudata · Dova Docs · Consultado

    Independent data validation, destination effects and controlled recovery.

Guía práctica de la edición octubre 2026. Las fuentes respaldan los principios técnicos; los ejemplos son ilustrativos, no anuncios de productos ni resultados de clientes.

Dova · Cloudata

Lleva estas ideas a tu operación de datos.

Dova es la plataforma de integración de datos de Cloudata. Explora el producto, revisa la documentación o conversemos sobre el flujo que necesitas mejorar.