lección 1

Bienvenido a SmartFactory

Conoce la fábrica de componentes de automoción, los 2000 sensores, el equipo y la escala de 10 millones de eventos por hora que vas a arquitecturar.

30 min

### El salto a la industria -- donde tus decisiones mueven millones

MediTrack te enseñó que los datos no son solo números -- son responsabilidad. Cada decisión de diseño tiene implicaciones éticas y legales. Implementaste right-to-be-forgotten, k-anonymity, audit trails y row-level security. Aprendiste que un data engineer senior no solo mueve bytes: diseña sistemas que protegen a personas.

Han pasado seis meses desde MediTrack. Tu perfil en LinkedIn refleja 4.5 años de experiencia en retail, SaaS, marketing, banca, logística y salud. Has construido pipelines batch y real-time, has gestionado datos sensibles bajo regulación, has diseñado arquitecturas de streaming para 200K envíos diarios. Pero nunca has trabajado en un entorno donde un error de latencia de 3 minutos se traduce directamente en 36.000 euros perdidos por hora.

Fernando Aguirre, VP de Engineering de SmartFactory, te contactó en un evento de data engineering en Madrid. Estabas dando una charla sobre gobernanza de datos en streaming y el enfoque que implementaste en MediTrack para compliance en tiempo real. Al terminar, un hombre de traje oscuro y gesto analítico se acercó: "Impresionante. Yo tengo un problema distinto pero igual de complejo. 2000 sensores. 10 millones de eventos por hora. Y necesito a alguien que no solo implemente pipelines -- necesito a alguien que DECIDA qué arquitectura usar y por qué. Alguien que se siente conmigo, me presente tres opciones con trade-offs y me diga cuál elegiría él. Te interesa?"

Te interesa. Fernando te invitó a visitar la planta de Vitoria-Gasteiz dos semanas después. Caminaste entre máquinas CNC de 4 metros de alto, robots de soldadura que emitían chispas azules, y líneas de montaje que producían 800 piezas por hora. En cada máquina, pequeños dispositivos parpadeaban en verde: los sensores. "Cada uno de esos puntos verdes emite entre 1 y 10 lecturas por segundo", te explicó Fernando. "Temperatura, vibración, presión, calidad dimensional. Todo eso fluye a nuestro Kafka, se procesa en Spark y alimenta dashboards en Grafana que los operarios miran cada 30 segundos. Si una alerta llega 3 minutos tarde, puede que ya sea demasiado tarde."

La oferta fue clara: Senior Data Engineer con autoridad para tomar decisiones arquitectónicas. No reportas a un tech lead -- reportas directamente a Fernando. Tu par es Kenji Tanaka, que lleva un año en SmartFactory y montó la plataforma actual. Entre los dos, debéis llevar la plataforma de datos de "funciona" a "escala y es mantenible". Aceptaste sin dudarlo.

### SmartFactory S.A. -- Fabricante Tier-2 de automoción

SmartFactory S.A. fue fundada en 1987 en Vitoria-Gasteiz (Álava) como un taller de mecanizado de precisión con 12 empleados y 3 tornos manuales. Su fundador, Ignacio Aguirre (padre de Fernando), era un tornero de Mondragón que creyó en la automatización antes de que fuera tendencia. En 35 años, la empresa ha crecido hasta convertirse en un proveedor Tier-2 de la industria automotriz europea, fabricando componentes críticos que terminan dentro de vehículos de BMW, Stellantis y Toyota.

Los productos principales son piezas de alta precisión: discos de freno cerámico-metálicos, engranajes planetarios de transmisión, casquillos de suspensión con tolerancia de 5 micras, y componentes de motor que soportan 1400 grados celsius. Cada pieza pasa por entre 3 y 7 procesos de fabricación: torneado, fresado, tratamiento térmico, rectificado, inspección dimensional y empaquetado. Un defecto en cualquier paso puede convertir una pieza de 45 euros en chatarra.

  • Fundación: 1987 (Vitoria-Gasteiz, Álava)
  • Empleados: ~1.200 (800 en planta, 400 en oficinas/I+D)
  • Plantas: 2 (Vitoria principal 18.000 m2, Pamplona secundaria 8.000 m2)
  • Líneas de producción: 12 activas (6 mecanizado, 3 ensamblaje, 2 tratamiento térmico, 1 inspección)
  • Máquinas instrumentadas: 340 (CNC, robots soldadura, prensas hidráulicas, hornos)
  • Sensores activos: ~2.000 (temperatura, vibración, presión, calidad dimensional)
  • Producción: 800 piezas/hora/línea en mecanizado, 400/hora en ensamblaje
  • Facturación anual: ~180M EUR
  • Clientes OEM: BMW (35%), Stellantis (30%), Toyota (20%), otros (15%)
  • Certificaciones: ISO 9001, IATF 16949 (automoción), ISO 14001 (medioambiental)

### Por qué IoT industrial es un mundo diferente

En FlashRoute procesabas 200 eventos GPS por segundo de repartidores moviéndose por la ciudad. Si perdías un punto GPS, el siguiente llegaba en 5 segundos y podías interpolar. El impacto de perder datos era un ETA ligeramente menos preciso. En SmartFactory procesas 2.800 eventos de sensores por segundo -- 14 veces más volumen. Pero el reto no es solo el volumen. Es lo que ocurre si pierdes datos o llegas tarde.

Imagina un horno de tratamiento térmico a 1.200 grados. El sensor de temperatura mide cada segundo. Si el sistema de control detecta que la temperatura sube 50 grados por encima del setpoint en 30 segundos, activa la alarma y el operario puede intervenir. Pero si tu pipeline de datos pierde esas 30 lecturas, o las procesa con 3 minutos de retraso, nadie se entera hasta que el horno supera los 1.400 grados y daña la pieza (o peor, la resistencia). El coste no es "el dashboard se actualiza tarde" -- es "una máquina de 2 millones de euros se destruye y la línea para 48 horas".

  1. 01.VOLUMEN: 10M eventos/hora = 2.800/segundo sostenido, picos de 4.000/segundo en cambios de turno
  2. 02.LATENCIA: alertas de mantenimiento predictivo en <2 minutos desde que el patrón anómalo aparece
  3. 03.FIABILIDAD: cero pérdida de datos tolerada -- cada lectura perdida es un punto ciego potencial
  4. 04.HETEROGENEIDAD: 4 tipos de sensor con frecuencias y formatos distintos (1-10 Hz, 4 schemas)
  5. 05.REGULACION: BMW exige datos de calidad en formato ISO 8601 con trazabilidad completa
  6. 06.COSTE DE FALLO: línea parada = 800 piezas/h x 45 EUR/pieza = 36.000 EUR/hora. Turno completo: 288.000 EUR
  7. 07.PENALIZACION OEM: BMW penaliza 5% de factura mensual por lote fuera de especificación

La diferencia entre IoT industrial y otros dominios de streaming: en logística o ad-tech, perder un 0.1% de eventos es aceptable. En manufactura, cada evento perdido es un punto ciego en la supervisión de una máquina que opera bajo condiciones extremas. El diseño de tu pipeline debe priorizar DURABILIDAD sobre todo lo demás.

### El stack tecnológico actual

Tu primer día completo. Kenji te sienta en la sala de datos (un espacio acristalado con vistas a la planta desde el segundo piso) y te hace un tour por la arquitectura. "La plataforma tiene 18 meses. Yo la monté desde cero cuando llegué -- antes de eso, los datos de sensores se guardaban en ficheros locales en cada PLC y un operario los copiaba a un USB cada semana para reportes de calidad. Era la edad de piedra."

Kenji abre un Grafana con el dashboard de infraestructura y te explica componente por componente:

  • Ingesta: Apache Kafka 3.6 -- 5 brokers en bare metal (servidores Dell PowerEdge en el data center de planta), 3 topics principales (sensors.temperature, sensors.vibration, sensors.pressure), 24 particiones cada uno
  • Procesamiento real-time: Spark Structured Streaming 3.5 en EMR (3 nodos c5.2xlarge) -- calcula alertas con SLA <2 min
  • Procesamiento batch: PySpark en EMR (mismo cluster, jobs nocturnos) -- features para ML, reportes diarios, exportaciones OEM
  • Data Lake: AWS S3 con Apache Iceberg 1.4 -- zonas raw/silver/gold, ~12TB total, particionado por fecha y tipo de sensor
  • Base operacional: TimescaleDB (PostgreSQL con extensión temporal) -- últimas 24h para consultas rápidas de Grafana
  • Monitoring: Grafana 10 -- 23 dashboards de planta en tiempo real, 8 de infraestructura de datos
  • Orquestación: Apache Airflow 2.8 -- 15 DAGs activos (ingesta batch, reportes OEM, limpieza, backups)
  • ML: Amazon SageMaker -- 2 modelos en desarrollo (mantenimiento predictivo + calidad dimensional)
  • Schema Registry: Confluent Schema Registry -- schemas Avro para todos los topics de Kafka

### El modelo de datos de sensores

Kenji te explica el schema unificado: "Cuando llegué, cada tipo de sensor tenía su propio formato propietario -- el software de Siemens emitía XML, los sensores Keyence usaban CSV, y los de Omega mandaban bytes crudos por Modbus. Lo primero que hice fue crear un gateway de normalización que convierte todo a un JSON estándar antes de publicarlo en Kafka. Cada sensor, sin importar fabricante o tipo, produce eventos con esta estructura:"

1{
2 "sensor_id": "SENS-VIB-L03-M047-01",
3 "machine_id": "MACH-L03-047",
4 "line_id": "LINE-03",
5 "plant_id": "PLANT-VIT",
6 "timestamp": "2024-03-15T08:23:41.847Z",
7 "type": "vibration",
8 "value": 4.72,
9 "unit": "mm/s",
10 "quality_flag": "GOOD",
11 "metadata": {
12 "firmware_version": "2.1.4",
13 "battery_pct": 87,
14 "signal_strength_dbm": -42,
15 "calibration_date": "2024-01-15"
16 }
17}

Schema unificado v1 -- la base de todo el procesamiento actual

La nomenclatura de IDs sigue un patrón jerárquico que permite filtrar eficientemente: SENS-[TIPO]-[LINEA]-[MAQUINA]-[NUMERO]. TIPO es un código de 3-4 letras (TEMP, VIB, PRES, QUAL). LINEA es un número de 2 dígitos. MAQUINA es un número de 3 dígitos dentro de la línea. NUMERO es la posición del sensor en la máquina (puede haber varios del mismo tipo en una máquina grande).

Los cuatro tipos de sensor y sus características operativas:

  • Temperatura (680 sensores): rango 20-1400 C, precisión +/-0.1 C, frecuencia 1 lectura/segundo. Tipo K termopar en hornos, PT100 en maquinaria general. Críticos en tratamiento térmico.
  • Vibración (520 sensores): rango 0-50 mm/s RMS, precisión 0.01 mm/s, frecuencia 1 lectura/segundo (actual, será 5 Hz). Acelerómetros piezoeléctricos. Críticos para mantenimiento predictivo de rodamientos.
  • Presión (480 sensores): rango 0-500 bar, precisión 0.5 bar, frecuencia 1 lectura/segundo. Transductores en sistemas hidráulicos de prensas y CNC. Críticos para detectar fugas.
  • Calidad dimensional (320 sensores): medición en micras, precisión 1 micra, frecuencia 1 lectura por pieza producida (~0.2 Hz). Lásers y cámaras de visión. Críticos para cumplimiento ISO/OEM.

### Tu equipo

El equipo de datos de SmartFactory es compacto pero senior. Fernando no contrata juniors para esta plataforma -- la escala y criticidad del problema lo impiden. "No tengo tiempo para microgestionar ni para formar desde cero. Si te contraté es porque confío en que puedes resolver problemas complejos de forma autónoma. Si necesitas algo de mí, ven con una propuesta, no con una pregunta."

Equipo de datos -- tú diseñas, ellos implementan

### Los personajes que vas a tratar esta semana

Fernando Aguirre (48 años) -- VP Engineering. Ingeniero industrial por la Universidad de Navarra, MBA por IESE. Hijo del fundador pero se ganó el puesto: trabajó 8 años fuera de SmartFactory (Siemens Munich, ABB Zurich) antes de volver. Fue él quien impulsó la digitalización de la planta en 2018 contra la resistencia del consejo. Es directo, analítico y no tolera la ambigüedad. Cuando te pregunta "qué propones?", espera una respuesta estructurada con opciones, datos y recomendación. Si le dices "depende", te responderá "de qué depende -- dame los factores y decide tú". No microgestiona pero revisa resultados con precisión quirúrgica. Frase típica: "No quiero que me preguntes qué hacer. Quiero que evalúes opciones, decidas y me presentes tu recomendación con trade-offs claros. Si me convences, ejecutas. Si no, iteramos."

Patricia Herrera (35 años) -- Lead Manufacturing Engineer. Ingeniera mecánica por la UPV/EHU con 10 años de experiencia en planta. Empezó como operaria de CNC mientras estudiaba (turno de noche) y subió hasta liderar el equipo de ingeniería de procesos. Conoce cada máquina por su nombre -- literalmente les pone apodos. La fresadora de 5 ejes de la línea 3 es "La Bestia", el horno de tratamiento térmico es "El Dragón". No entiende de Kafka ni de Spark, pero sabe exactamente qué patrón de vibración precede a un fallo de rodamiento porque lo ha visto 200 veces. Frase típica: "Un cambio de 0.3g en vibración durante 15 minutos sostenidos indica desgaste de rodamiento. Si no lo pillamos a tiempo, el motor se para en 48h y la línea 3 se queda sin producir."

Kenji Tanaka (33 años) -- Senior Data Engineer, tu par. Nacido en Bilbao, padre japonés (ingeniero en CAF), madre vasca. Estudió informática en Deusto y trabajó 5 años en Iberdrola en datos de redes eléctricas antes de unirse a SmartFactory. Lleva 1 año aquí y montó la plataforma actual de datos desde cero -- antes de él, los datos se copiaban en USBs. Conoce el dominio industrial a la perfección: sabe qué sensores son críticos, cuáles derivan con el tiempo, y cuáles generan falsos positivos. Es cooperativo, generoso con su conocimiento, y tiene sentido del humor seco. Frase típica: "Yo monté la ingesta original hace un año con Kafka + Spark. Funciona pero no escala al nuevo tipo de sensor. Necesito que me ayudes a rediseñar sin romper lo que ya tenemos."

### La escala del problema -- números reales

Kenji te sienta frente a un monitor con Grafana mostrando métricas de la plataforma. "Mira estos números. Son del turno de mañana de ayer -- el pico del día. Fernando quiere que en 12 meses estemos preparados para 50 millones de eventos por hora: está planificando instrumentar Pamplona y añadir sensores de ultrasonido para inspección no destructiva."

Arquitectura actual y métricas operativas -- tu trabajo es llevarla a 5x

### Tu primera semana -- lo que Fernando espera

Fernando te reúne el primer día junto con Kenji. "He preparado tu primera semana para que tengas impacto inmediato. Cada día tiene un entregable concreto. No son tareas aisladas -- son piezas de una arquitectura que vamos a presentar junta el viernes. Esto es lo que espero:"

  1. 01.Día 1 (lunes): Diseñar la ingesta del nuevo sensor de vibración de alta frecuencia. 720 sensores a 5 Hz. Entregable: ADR con 3 opciones evaluadas y recomendación.
  2. 02.Día 2 (martes): Pipeline de features para mantenimiento predictivo. Patricia necesita features en streaming. Entregable: código PySpark Streaming funcional.
  3. 03.Día 3 mañana (miércoles): Exportación de datos de calidad para BMW en formato ISO 8601. Entregable: pipeline de exportación con validación de schema.
  4. 04.Día 3 tarde (miércoles): Un sensor defectuoso inunda Kafka con 50x su volumen normal. Entregable: circuit breaker implementado y documentado.
  5. 05.Día 4 (jueves): Optimización del lake -- compresión Iceberg, particionado temporal, Z-order. Entregable: plan de optimización con métricas antes/después.
  6. 06.Día 5 (viernes): Presentación de arquitectura completa + roadmap 6 meses al VP. Entregable: presentación ejecutiva que Fernando pueda llevar al board.

Nivel de exigencia: Fernando no te va a decir COMO resolver cada problema. Te da el contexto, las restricciones y el entregable. Tú decides el approach, implementas y presentas. Si necesitas información del dominio, pregunta a Patricia (procesos) o Kenji (plataforma actual). Pero la decisión arquitectónica es TUYA. Eso es ser senior.

Reflexión de carrera: Si en FreshMart te decían "sube este CSV a S3", y en FlashRoute te decían "diseña el pipeline de ETAs", aquí te dicen "tenemos este problema, propón la solución". La progresión de junior a senior no es saber más tecnologías -- es saber DECIDIR cuando hay incertidumbre y justificar tu decisión ante alguien que sabe tanto o más que tú.

Respira. Tienes 4.5 años de experiencia, has visto retail, SaaS, marketing, banca, logística y salud. Has diseñado pipelines batch y streaming. Has gestionado datos sensibles bajo regulación. Tienes las herramientas. Ahora es cuestión de aplicarlas en un dominio nuevo con presión real. Vamos a ello.

Descarga los datasets del caso y guárdalos en una carpeta `datos/`. Trabajarás con: `lineas_produccion.csv`, `maquinas.csv`, `sensores.csv` (la `PSR-0087` viene marcada como defectuosa en `status`), `lecturas_sensores.parquet` (`TMP-0047` con deriva ascendente de temperatura y `PSR-0087` inundando ceros), `lecturas_vibracion_sample.parquet` (vibración a 50 Hz de 3 sensores), `produccion.csv`, `mediciones_calidad.csv` (7 combinaciones con `Cpk < 1.33`), `mantenimiento.csv` y `alertas.json` (JSON Lines; incluye `CNC-47` threshold_exceeded y `PSR-0087` circuit_breaker). Los volúmenes reales son enormes; estos son samples coherentes para que diseñes y valides tus ideas en local.

volver a la visión del caso y descargar los datasets

Regístrate para guardar tu progreso.

## comentarios

Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.

Inicia sesión para comentar y responder.

cargando comentarios...