Tema representativo de entrevista

Entrevista de Ingeniería de Datos: Monitorear la frescura de una tabla CDC de BigQuery

DatosDifícil
Equipo editorial de Offer.ccPublicado Actualizado

Pregunta

Una tabla CDC de BigQuery tiene `max_staleness`: el panel a veces lee una línea base obsoleta permitida, mientras que otras consultas se vuelven lentas cuando combinan cambios pendientes. ¿Cómo monitorea el progreso de la aplicación y distingue estos estados?

Planteamiento y contexto

Dentro del max_staleness configurado de una tabla de captura de datos de cambio (CDC) de BigQuery, un panel de control puede leer la línea base obsoleta permitida con una latencia normal. Una vez que los cambios pendientes son más antiguos que esa ventana, la combinación en tiempo de consulta puede devolver resultados actualizados con una latencia mayor. La tarea consiste en distinguir estos estados y la acumulación de aplicaciones en segundo plano con las propias marcas de agua y métricas de trabajo de la plataforma.

Qué evalúa el entrevistador

  • Medir el progreso aplicado con upsert_stream_apply_watermark.
  • Separar la obsolescencia permitida, la acumulación de aplicaciones en segundo plano y la combinación en tiempo de ejecución.
  • Conectar la capacidad insuficiente en segundo plano con la latencia de las consultas de los usuarios.
  • Alertar según los umbrales de negocio y la duración en lugar de una única muestra ruidosa.

Aclaraciones antes de responder

Establezca la tolerancia del negocio, el max_staleness de cada tabla, los picos de escritura, las reservas en segundo plano y la frecuencia del panel. Incluya un objetivo de eliminación porque una eliminación de CDC se aplica solo después de que la marca de agua supera su tiempo de escritura.

Estructura para una respuesta de 30 segundos

Consulte INFORMATION_SCHEMA.TABLES.upsert_stream_apply_watermark y compare now - watermark tanto con la configuración de la tabla como con el umbral de negocio. Correlaciónelo con el P95 de aplicación en segundo plano, la puesta en cola y las fallas, además del recuento de combinaciones en tiempo de ejecución y la latencia de consulta. Envíe alertas solo cuando una infracción sostenida de la marca de agua se combine con saturación de recursos o impacto en el usuario.

Análisis detallado paso a paso

Cree métricas de baja cardinalidad por producto de datos: antigüedad de la marca de agua, max_staleness, P95 de aplicación en segundo plano, fallas y consultas con combinación en tiempo de ejecución. Dentro de la ventana configurada, una consulta puede leer la línea base. Fuera de ella, BigQuery puede combinar los cambios pendientes en el momento de la consulta, lo que aumenta la latencia; esa combinación en tiempo de ejecución no hace avanzar la marca de agua.

Utilice dos filtros: dos infracciones consecutivas del umbral de negocio generan una advertencia; la saturación de reservas, el tiempo de espera de aplicación agotado o la latencia del panel la promueven a una alerta crítica. Un latido (heartbeat) de origen separa la ausencia de datos nuevos de una acumulación de aplicaciones pendientes.

Diagnostique escrituras, trabajos en segundo plano, capacidad y combinaciones en tiempo de ejecución en ese orden. Luego, agregue capacidad en segundo plano, suavice la entrada o revise la ventana. No debilite el objetivo de negocio simplemente para silenciar alertas.

Ejemplo de respuesta sólida

La marca de agua aplicada es mi señal principal; los trabajos de aplicación y las combinaciones de consultas la explican. Cada minuto comparo la antigüedad de la marca de agua con el SLO y la opción de la tabla, y luego correlaciono el P95 de aplicación, la capacidad y la latencia de cola de las consultas.

La recuperación requiere que la marca de agua se ponga al día, que disminuyan las combinaciones en tiempo de ejecución y que se normalice la latencia del panel. Una reproducción con carga máxima demuestra el margen adicional obtenido.

Errores comunes

  • Monitorear únicamente las escrituras exitosas o los trabajos de pipeline en verde.
  • Tratar la hora del evento como la marca de agua aplicada de BigQuery.
  • Asumir que una combinación en tiempo de ejecución hace avanzar la marca de agua.
  • Aumentar max_staleness solo para eliminar alertas.
  • Carecer de un latido (heartbeat) de origen.

Preguntas de seguimiento

¿Por qué una combinación en tiempo de ejecución puede ralentizar una consulta?

La consulta combina los datos de la línea base con las modificaciones pendientes para devolver resultados actuales, lo que consume tiempo y procesamiento adicionales.

¿Qué sucede si la marca de agua es nula?

Verifique la configuración de CDC, las mutaciones recientes y los trabajos en segundo plano. Trate el estado desconocido como su propio estado, no como un retraso de cero.

¿Cuándo se aplica una eliminación de CDC?

Solo después de que upsert_stream_apply_watermark supere la marca de tiempo en la que se transmitió la eliminación.

¿Cómo demuestra que el escalado funcionó?

Bajo una carga máxima representativa, exija que mejoren conjuntamente el P95 de aplicación, la antigüedad de la marca de agua, el recuento de combinaciones en tiempo de ejecución y la latencia de cola del panel.

Fuentes públicas

Preguntas relacionadas