Archivo:
etl_20250825_071501.log
Modificado:
25/08/2025 07:15:08
Tamaño:
5.1 KB
Líneas:
46 líneas
2025-08-25 07:15:01,753 [INFO] Iniciando proceso ETL...
2025-08-25 07:15:01,754 [INFO] === INICIO ETL ===
2025-08-25 07:15:01,754 [INFO] Paso 1: Extracción de datos
2025-08-25 07:15:01,754 [INFO] Iniciando extracción de cabeceras
2025-08-25 07:15:01,754 [INFO] Extrayendo órdenes desde linux_ordenes...
2025-08-25 07:15:01,754 [INFO] Intentando conectar a SQL Server...
2025-08-25 07:15:02,865 [INFO] Conexión SQL Server exitosa
2025-08-25 07:15:02,865 [INFO] Ejecutando consulta (últimos 30 días desde 2025-07-26): SELECT numero, cliente, vendedor, fecha_entrega, dias_restantes, estatus FROM dbo.linux_ordenes WHERE fecha_entrega >= ?
2025-08-25 07:15:04,618 [INFO] Extraídas 138 órdenes
2025-08-25 07:15:04,618 [INFO] [DEBUG] Columnas ordenes: ['numero', 'cliente', 'vendedor', 'fecha_entrega', 'dias_restantes', 'estatus']
2025-08-25 07:15:04,618 [INFO] [DEBUG] dtypes ordenes: {'numero': dtype('O'), 'cliente': dtype('O'), 'vendedor': dtype('O'), 'fecha_entrega': dtype('O'), 'dias_restantes': dtype('int64'), 'estatus': dtype('O')}
2025-08-25 07:15:04,624 [INFO] [DEBUG] Nulos en fecha_entrega (ordenes) tras limpiar: 0
2025-08-25 07:15:04,721 [INFO] Iniciando extracción de líneas
2025-08-25 07:15:04,721 [INFO] Extrayendo pedidos desde linux_pedidos...
2025-08-25 07:15:04,721 [INFO] Intentando conectar a SQL Server...
2025-08-25 07:15:05,308 [INFO] Conexión SQL Server exitosa
2025-08-25 07:15:05,309 [INFO] Ejecutando consulta (últimos 30 días desde 2025-07-26): SELECT id, orden_id, clave, producto, unidad, cantidad, surtido, liq, saldo, fecha_entrega FROM dbo.linux_pedidos WHERE fecha_entrega >= ?
2025-08-25 07:15:07,990 [INFO] Extraídos 208 pedidos
2025-08-25 07:15:07,990 [INFO] [DEBUG] Columnas pedidos: ['id', 'orden_id', 'clave', 'producto', 'unidad', 'cantidad', 'surtido', 'liq', 'saldo', 'fecha_entrega']
2025-08-25 07:15:07,990 [INFO] [DEBUG] dtypes pedidos: {'id': dtype('O'), 'orden_id': dtype('float64'), 'clave': dtype('O'), 'producto': dtype('O'), 'unidad': dtype('O'), 'cantidad': dtype('int64'), 'surtido': dtype('int64'), 'liq': dtype('int64'), 'saldo': dtype('int64'), 'fecha_entrega': dtype('O')}
2025-08-25 07:15:07,996 [INFO] [DEBUG] Nulos en fecha_entrega (pedidos) tras limpiar: 0
2025-08-25 07:15:08,093 [INFO] Extraídas 208 líneas
2025-08-25 07:15:08,093 [INFO] Extracción completada en 6.34s
2025-08-25 07:15:08,093 [INFO] Paso 2: Transformación de datos
2025-08-25 07:15:08,093 [WARNING] No hay datos de cabeceras para transformar
2025-08-25 07:15:08,094 [INFO] Transformando datos de líneas
2025-08-25 07:15:08,094 [INFO] [DEBUG] Nulos por columna (lineas): {'id': 0, 'orden_id': 0, 'clave': 0, 'producto': 0, 'unidad': 0, 'cantidad': 0, 'surtido': 0, 'liq': 0, 'saldo': 0, 'fecha_entrega': 0}
2025-08-25 07:15:08,105 [INFO] Transformadas 208 líneas
2025-08-25 07:15:08,106 [INFO] [DEBUG] Ejemplo líneas transformadas (3): [{'id': '6328_8936', 'ID_UNICO': '6328_8936', 'orden_id': '6328.0', 'clave': '3180360', 'producto': 'TH318 SELLADOR PARABRISAS NEGRO 600 ML', 'unidad': 'PIEZA', 'cantidad': 100, 'surtido': 100, 'liq': 100, 'saldo': 0, 'fecha_entrega': '2025-12-31', 'dias_restantes': 128, 'entregado': 1, 'estatus': 'completado', 'fecha_completado': None, 'F_Alta': None, 'remision_producto': None}, {'id': '6336_8944', 'ID_UNICO': '6336_8944', 'orden_id': '6336.0', 'clave': '1100019', 'producto': 'TAPE AVERY ADHESIVE TRANSFER 1 1/2', 'unidad': 'METRO', 'cantidad': 25, 'surtido': 0, 'liq': 25, 'saldo': 25, 'fecha_entrega': '2025-10-01', 'dias_restantes': 37, 'entregado': 0, 'estatus': 'pendiente', 'fecha_completado': None, 'F_Alta': None, 'remision_producto': None}, {'id': '6373_8992', 'ID_UNICO': '6373_8992', 'orden_id': '6373.0', 'clave': '361602', 'producto': 'SELF SEALER 616, WHITE 2 LT', 'unidad': 'LITRO', 'cantidad': 1762, 'surtido': 0, 'liq': 1762, 'saldo': 1762, 'fecha_entrega': '2025-12-31', 'dias_restantes': 128, 'entregado': 0, 'estatus': 'pendiente', 'fecha_completado': None, 'F_Alta': None, 'remision_producto': None}]
2025-08-25 07:15:08,106 [INFO] Transformación completada en 0.01s
2025-08-25 07:15:08,106 [INFO] Paso 3: Carga de datos
2025-08-25 07:15:08,106 [WARNING] No hay datos de órdenes para cargar
2025-08-25 07:15:08,106 [INFO] Conectando a SQLite: /var/www/otd-app/db/otd.db
2025-08-25 07:15:08,106 [INFO] Conexión SQLite exitosa
2025-08-25 07:15:08,107 [WARNING] No se pudieron crear triggers en SQLite: near "OR": syntax error
2025-08-25 07:15:08,107 [WARNING] No se pudo asegurar el esquema de SQLite: name 'df_ordenes' is not defined
2025-08-25 07:15:08,107 [INFO] [DEBUG] Total pedidos a insertar: 208
2025-08-25 07:15:08,108 [INFO] [INFO] PRAGMA foreign_keys=OFF durante carga de 'pedidos' (opción B)
2025-08-25 07:15:08,108 [INFO] Creado/asegurado índice idx_pedidos_orden_id en pedidos(orden_id)
2025-08-25 07:15:08,109 [WARNING] [DEBUG] Pedidos con orden_id inexistente: 0
2025-08-25 07:15:08,115 [INFO] Insertados 208 pedidos (batch)
2025-08-25 07:15:08,115 [INFO] Carga completada en 0.01s
2025-08-25 07:15:08,115 [WARNING] ETL completado con errores - Órdenes: False, Pedidos: True
2025-08-25 07:15:08,115 [WARNING] === PROCESO ETL COMPLETADO CON ERRORES ===
2025-08-25 07:15:08,115 [INFO] Resumen: órdenes 0, pedidos 208
Tip: Usa Ctrl+F para buscar texto específico en el log