Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administrar versiones preliminares de Azure Databricks.
Una mala transformación, un lote mal formado de registros de origen o un cambio inesperado en el esquema pueden hacer que las tablas de una canalización sean incorrectas a partir de un momento determinado en adelante. Retrocede la canalización a un punto anterior al problema para que puedas implementar una corrección y reprocesar solo los datos afectados.
Rewind restaura las versiones de la tabla, los desplazamientos de fuente de streaming y el estado del operador juntos, de modo que la reproducción no omite registros ni escriba duplicados. Tres operaciones reprocesan datos y resuelven diferentes problemas:
- Rewind se usa en una canalización recuperable que generó datos incorrectos a partir de un momento conocido, por ejemplo, tras una transformación defectuosa, una entrada con formato incorrecto o un despliegue de código defectuoso. Restaura los datos de la tabla, los desplazamientos de fuente y el estado del operador a un punto anterior al problema y reprocesa solo los datos afectados, manteniendo el estado del operador. Los datos anteriores a ese punto permanecen intactos.
- La actualización completa reconstruye una tabla a partir de todos los datos de origen disponibles y descarta su contenido actual. Úsala para recalcular todo desde cero, o cuando un cambio de código no sea compatible con el estado existente.
- El reinicio de puntos de control recupera una tubería cuyo punto de control es inválido o corrupto, o que está bloqueado por un cambio de código incompatible con puntos de control. Reinicia el punto de control y continúa hacia adelante preservando el contenido actual de la tabla. Rewind no puede recuperar estos casos, porque no relaja las reglas de compatibilidad de Structured Streaming.
Requisitos
| Requirement | Detail |
|---|---|
| Canal | El canal debe estar en el canal Preview. Consulte Configuración de canalizaciones. |
| Configuración | Establece la configuración del pipelines.rewind.betaEnabled pipeline en true y luego ejecuta el pipeline una sola vez. Cada flujo solo se puede rebobinar después de completar una actualización con el viaje en el tiempo activado. |
| Modo de canalización | Canales activados y continuos. No se soporta el modo en tiempo real. |
| Sources | Tablas Delta, tablas de streaming, Kafka y Auto Loader. |
| Objetivos | Tablas de streaming y vistas materializadas. |
| Flows | Flujos en streaming y caudales de captura de datos de cambio automático (CDC), incluyendo objetivos SCD Tipo 1 y SCD Tipo 2. Se admiten consultas con estado como agregaciones, uniones y deduplicación. |
Cada flujo en la tubería debe cumplir estos requisitos. Mientras pipelines.rewind.betaEnabled sea true, un canal que contenga un flujo que no cumpla los requisitos fallará en sus actualizaciones. Confirma que cada flujo cumple con los requisitos anteriores antes de habilitarlo.
Note
Una canalización que tiene pipelines.rewind.betaEnabled establecida en true no puede volver al canal «Current» hasta que el canal «Current» se actualice a un entorno de ejecución que admita el rebobinado.
Cómo funcionan el rebobinado y la repetición
El retroceso y la repetición son pasos separados.
Rebobinar restaura cada tabla a la versión que tenía en un punto de rebobinado y restablece los puntos de control de transmisión que registran hasta dónde ha llegado cada flujo. Tus transformaciones no se ejecutan y no se reprocesa ningún dato fuente.
La repetición de la ejecución se produce la próxima vez que se ejecute el pipeline. Reprocesa desde el punto de reversión usando la definición actual de la canalización, hasta alcanzar el estado actual, y luego reanuda el procesamiento incremental normal. Rewind no inicia la canalización, así que iníciala tú mismo cuando estés listo.
El canal genera puntos de rebobinado automáticamente, aproximadamente una vez por hora, y los conserva durante 7 días. Un canal que acaba de crear no tiene nada a lo que rebobinarse hasta que genere su primer punto de rebobinado.
El rebobinado de un conjunto de datos también rebobina todo lo que se encuentra a continuación en la misma canalización. Rewind cubre solo una canalización. No se coordina con otras canalizaciones ni con lectores externos de las mismas tablas, así que gestiónalos por separado.
Revertir una canalización mediante la interfaz de usuario
La UI y Genie son las principales formas de usar Rewind. La interfaz enumera los puntos de reversión disponibles e indica qué conjuntos de datos afecta cada uno antes de confirmar.
- En la página de la canalización, haz clic en el botón
situado junto a Ejecutar canalización y, a continuación, haz clic en Rebobinar canalización.
- Selecciona un punto de retroceso o usa un acceso directo como Retroceder hasta ayer o Retroceder hasta el punto más reciente. Haga clic en Siguiente.
- Selecciona qué tablas incluir. Utiliza la vista de grafo para seleccionar conjuntos de datos en el grafo de la pipeline, o la vista de lista para seleccionarlos de una tabla. Deja seleccionada la opción Restablecer todos los puntos de control (valor predeterminado) para restaurar los desplazamientos de origen y el estado de los operadores junto con los datos de la tabla, de modo que la canalización vuelva a procesar a partir del punto de rebobinado. Borra para restaurar solo los datos de la tabla, sin reprocesar, por ejemplo cuando quieres restaurar el contenido de una tabla pero no quieres reprocesar los datos afectados. Esta configuración debe ser la misma para una tabla y sus elementos ascendentes, y no se puede desactivar en un flujo que lea una fuente externa, como Kafka o Auto Loader. Haga clic en Siguiente.
- Revisa el punto de retroceso, la configuración del punto de control y los conjuntos de datos afectados, y luego haz clic en Rebobinar.
Inicie el pipeline para reproducir los datos.
Puedes rebobinar varias veces. Cada rebobinado reemplaza al anterior, así que puedes recuperarte si una repetición falla rebobinando en otro punto.
Después de un retroceso
Un error en la reproducción deja el pipeline retrocedido, pero detenido. Corrige el código o los datos de origen e inicia la canalización para volver a intentarlo, o retrocede a un punto diferente. El pipeline no se revierte por sí solo, y los errores se muestran a través de los diagnósticos estándar del pipeline y del registro de eventos.
La reproducción solo tiene éxito si la definición actual de la tubería es compatible con el estado restaurado; el rebobinado no relaja las reglas de compatibilidad de Streaming Estructurado. Para qué cambios son compatibles, véase Tipos de cambios en consultas de streaming estructurado. Las vistas materializadas siguen una semántica de procesamiento por lotes y toleran cambios de esquema más amplios, pero siguen fallando si una dependencia es incompatible.
Un retroceso que falla a mitad de camino puede dejar el pipeline parcialmente retrocedido. Tiene dos opciones:
- Si retrocede de nuevo hasta el mismo punto o a otro, la tubería converge en ese punto.
- Para forzar que la canalización inicie una actualización normal a pesar del rebobinado incompleto, establece
pipelines.allowUpdateAfterIncompleteRewindentruey reinicia la canalización.
Cuánto retrocede puedes rebobinar
Los puntos de retroceso se mantienen durante 7 días. Dentro de esa ventana, un rebobinado falla si los datos que necesita ya han sido eliminados. Comprueba lo siguiente antes de usar la función de rebobinado:
-
VACUUMo undelta.deletedFileRetentionDurationcorto en tus tablas. Consulte Trabajar con el historial de tablas. - Retención de datos más corta que el intervalo que deseas rebobinar, como un tema de Kafka que conserva los datos durante un día.
Las canalizaciones con varias fuentes o largas cadenas de dependencias necesitan un mayor periodo de retención, porque cada tabla y punto de control tiene que retroceder hasta un punto coherente.
Limitaciones
- Rewind no puede restaurar un pipeline a un momento anterior a una actualización completa.
- Los puntos de restauración se conservan durante 7 días, y la reversión falla si el historial de la tabla o los datos de origen necesarios para alcanzar ese punto ya se han eliminado, por ejemplo, debido a
VACUUMo a un periodo de retención corto de los datos de origen. Mira hasta dónde puedes retroceder. - No se soporta el modo en tiempo real.
- Kinesis, Pulsar, Google Pub/Sub y fuentes personalizadas construidas con las APIs de fuentes de datos DSv2 o Python no son compatibles como fuentes.
- No se soportan sumideros externos ni personalizados, incluidos los sumideros definidos con
create_sink(). Consulte Uso de sinks en canalizaciones. - Las tablas de datos en streaming que usan un filtro de fila o una máscara de columna no se pueden rebobinar. Consulte cómo aplicar filtros de fila y máscaras de columna manualmente.
- El rebobinado con estado requiere el almacén de estados de RocksDB, que las tuberías usan por defecto. No se puede rebobinar un flujo configurado con un almacén de estado diferente.
- Algunas tablas de streaming de AUTO CDC necesitan una actualización antes de poder rebobinarse. La canalización te avisa cuando solicitas el retroceso.
- Las vistas materializadas pueden recalcularse completamente en lugar de refrescarse incrementalmente tras un retroceso. Consulte Actualización incremental para obtener vistas materializadas.
- Rewind se aplica a una sola canalización y no se coordina con lectores externos ni con otras canalizaciones que leen las mismas tablas.
- Rewind no restaura el código de la canalización, la configuración de la tubería ni los metadatos de objetos del Catálogo de Unity como etiquetas y concesiones.