Change data capture emite en streaming los cambios a nivel de fila de una base de datos origen. El CDC basado en log lee directamente el log de transacciones, así que captura inserciones, actualizaciones y borrados definitivos en orden de commit y casi sin carga sobre el origen. Sondear una columna updated_at es más simple pero se pierde los borrados definitivos, se pierde los estados intermedios entre sondeos, depende de que la aplicación mantenga la columna y puede saltarse filas por problemas de reloj o de frontera de transacción.
Por qué lo preguntan los entrevistadores
Esta es una decisión de arquitectura real en casi todo proyecto de ingesta. Los entrevistadores quieren oír las debilidades concretas del sondeo por timestamp, en particular los borrados y las transacciones en vuelo, y si entiendes lo que el CDC basado en log exige del origen: slots de replicación, retención del log, permisos y un plan para el snapshot inicial.
Cómo estructurar tu respuesta
- Define el CDC y nombra sus dos implementaciones principales.
- Enumera exactamente lo que se pierde el sondeo por timestamp.
- Describe lo que el CDC basado en log requiere de la base de datos origen.
- Explica el relevo entre snapshot y stream.
- Di cómo manejarías cambios de esquema en la tabla origen.
Ejemplo de respuesta
El CDC va de obtener cambios a nivel de fila en lugar de releer tablas enteras. El CDC basado en log, con algo como Debezium leyendo el write ahead log de Postgres o el binlog de MySQL, te da cada inserción, actualización y borrado en orden de commit y casi no pone carga de consultas sobre la primaria. Sondear una columna updated_at es mucho más fácil de montar, y está bien para datos de referencia que cambian poco, pero tiene agujeros reales. No puede ver los borrados definitivos en absoluto, así que las filas persisten aguas abajo en silencio para siempre. Se pierde estados intermedios si una fila cambia dos veces entre sondeos, y depende de que todos los escritores se acuerden de poner la columna, cosa que un job heredado de nuestro parque nunca hizo. El CDC basado en log tiene su propio coste operativo. Necesitas un slot de replicación, y si tu consumidor se atasca el log no se libera y el disco del origen se llena, que es un fallo genuinamente peligroso. Así que monitorizo el retraso del slot como una alerta de primera clase junto al retraso del pipeline.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo harías el snapshot inicial sin bloquear el origen?
- ¿Qué pasa si un slot de replicación de Postgres se queda atrás?
- ¿Cómo representas un borrado aguas abajo en una tabla de solo append?
Más preguntas para Ingeniero de datos
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas