Ventanas de mantenimiento para AWS Glue Streaming
AWS Glue lleva a cabo actividades de mantenimiento de forma periódica. Durante estos períodos de mantenimiento, AWS Glue tendrá que reiniciar sus trabajos de streaming. Para controlar cuándo se reinician los trabajos, puede especificar los periodos de mantenimiento. En esta sección, explicamos dónde puede configurar el periodo de mantenimiento y los comportamientos específicos que debe tener en cuenta.
Temas
Configuración de un periodo de mantenimiento
Puede configurar un periodo de mantenimiento mediante AWS Glue Studio o las API.
Configuración de un periodo de mantenimiento en AWS Glue Studio
Puede especificar un periodo de mantenimiento en la página Detalles del trabajo de su trabajo de AWS Glue Streaming. Puede especificar el día y la hora en GMT. AWS Glue reiniciará el trabajo dentro del intervalo de tiempo especificado.
Configuración de un periodo de mantenimiento en la API
También puede configurar el periodo de mantenimiento en la API Create Job. A continuación, se muestra un ejemplo de configuración de un periodo de mantenimiento mediante la API.
aws glue create-job —name jobName —role roleArnForTheJob —command Name=gluestreaming,ScriptLocation=s3-path-to-the-script --maintenance-window="Sun:10"
Un ejemplo de comando es el siguiente:
aws glue create-job —name testMaintenance —role arn:aws:iam::012345678901:role/Glue_DefaultRole —command Name=gluestreaming,ScriptLocation=s3://glue-example-test/example.py —maintenance-window="Sun:10
Comportamiento del periodo de mantenimiento
AWS Glue sigue una serie de pasos para decidir cuándo reiniciar un trabajo:
Cuando se inicia un nuevo trabajo de streaming, AWS Glue comprueba primero si hay un tiempo de espera asociado a la ejecución del trabajo. Un tiempo de espera permite configurar la hora de finalización del trabajo. Si el tiempo de espera es inferior a 7 días, el trabajo no se reiniciará.
Si el tiempo de espera es superior a 7 días, AWS Glue comprueba si el periodo de mantenimiento está configurado para el trabajo. Si es así, se abre esa ventana y se asigna a la ejecución del trabajo. AWS Glue reiniciará el trabajo en un plazo de 3 horas a partir del periodo de mantenimiento especificado. Por ejemplo, si configura el período de mantenimiento para el lunes a las 10:00 h GMT, sus trabajos se reiniciarán entre las 10:00 h GMT y las 13:00 h GMT.
Si el periodo de mantenimiento no está configurado, AWS Glue establece automáticamente la hora de reinicio en 7 días después de la hora de inicio de la ejecución de la tarea. Por ejemplo, si inició el trabajo el 1 de julio de 2024 a las 12:00 h GMT y no especificó los periodos de mantenimiento, el trabajo se configurará para que se reinicie el 8 de julio de 2024 a las 12:00 h GMT.
nota
Si ya está efectuando tareas de streaming, este cambio le afectará a partir del 1 de julio de 2024. Tendrá tiempo hasta el 30 de junio para configurar sus periodos de mantenimiento. Después del 1 de julio, cualquier trabajo de streaming que inicie se reiniciará según esta documentación. Si necesita asistencia adicional, puede contactar con AWS Support.
A veces, es posible que AWS Glue no pueda reiniciar el trabajo, especialmente cuando el microlote en curso no se procesa. En estos casos, el trabajo no se interrumpirá. En estos casos, AWS Glue reiniciará el trabajo después de 14 días y, en este caso, no se respetará el periodo de mantenimiento.
Supervisión de trabajos
Puede supervisar los trabajos en la página Supervisión de AWS Glue Studio.
Para ver la hora prevista para el próximo reinicio de los trabajos de streaming, muestre la columna de la tabla Ejecuciones de trabajos en la página Supervisión.
Haga clic en el icono con forma de engranaje situado en la parte superior derecha de la tabla.
Desplácese hacia abajo y active la columna Hora de reinicio esperado. Están disponibles las opciones UTC y hora local.
A continuación, puede ver las columnas de la tabla.
El trabajo original tendrá el estado “CADUCADO” y la nueva instancia de trabajo tendrá el estado “EN EJECUCIÓN”. La nueva ejecución del trabajo que se reinició tendrá un ID de ejecución de trabajo como una concatenación del ID de ejecución del trabajo inicial más el prefijo “restart_”, que representa el recuento de reinicios. Por ejemplo, si el ID de ejecución del trabajo inicial es jr_1234
, la ejecución del trabajo reiniciada tendrá el ID jr1234_restart_1
del primer reinicio. El segundo reinicio será jr1234_restart_2
para el segundo reinicio y así sucesivamente.
El reintento no se verá afectado por los reinicios. Si se produce un error en una ejecución y se inicia una nueva debido a un reintento automático, el contador de reinicios volverá a empezar desde 1. Por ejemplo, si se produce un error en una ejecución en jr_1234_attempt_3_restart_5
, al reintentarlo automáticamente, se iniciará una nueva ejecución con un identificador: jr_id1_attempt_4
y, si este intento se reinicia transcurridos 7 días, se iniciará con el nuevo ID de ejecución jr_id1_attempt_4_restart_1
.
Gestión de la pérdida de datos
Durante los reinicios por mantenimiento, AWS Glue Streaming sigue un proceso que garantiza la integridad y la coherencia de los datos entre la ejecución del trabajo anterior y la ejecución del trabajo reiniciado. Tenga en cuenta que AWS Glue no garantiza la integridad ni la coherencia de los datos entre los reinicios de los trabajos, por lo que recomendamos tener en cuenta la arquitectura para gestionar los datos duplicados en los trabajos de streaming.
Detección de las condiciones de reinicio por mantenimiento: AWS Glue Streaming supervisa las condiciones que indican cuándo debe activarse un reinicio por mantenimiento, por ejemplo, cuando se alcanza un periodo de mantenimiento después de 7 días o si es necesario reiniciar por completo después de 14 días.
Invocación de una finalización correcta: cuando se cumplen las condiciones de reinicio por mantenimiento, AWS Glue Streaming inicia un proceso de finalización correcta para la tarea que se está ejecutando actualmente. Este proceso incluye los siguientes pasos:
Detención de la ingesta de nuevos datos: el trabajo de streaming deja de consumir nuevos datos de los orígenes de entrada (por ejemplo, temas de Kafka, transmisiones de Kinesis o archivos).
Procesamiento de datos pendientes: el trabajo continúa procesando todos los datos que ya estén presentes en sus búferes o colas internos.
Consignación de compensaciones y puntos de control: el trabajo envía las últimas compensaciones o puntos de control a sistemas externos (por ejemplo, Kafka, Kinesis o Amazon S3) para garantizar que la tarea reiniciada pueda continuar desde el punto en el que la dejó el trabajo anterior.
Reinicio del trabajo: una vez finalizado el proceso de finalización correcto, AWS Glue Streaming reinicia el trabajo con el estado y los puntos de control conservados. El trabajo reiniciado retoma el procesamiento desde el último punto de control o compensación comprometido, lo que garantiza que no se pierdan ni dupliquen datos.
Reanudación del procesamiento de datos: el trabajo reiniciado reanuda el procesamiento de datos desde el punto en el que lo dejó el trabajo anterior. Continúa ingiriendo nuevos datos de los orígenes de entrada, a partir del último desfase o punto de control registrado, y procesa los datos de acuerdo con la lógica de ETL definida.