El documento AWS Glue Bookmark ( https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html ) parece sugerir que uno tiene que pasar un parámetro transformation_ctx a la operación de fuente, transformación y receptor para el marcador. trabajar. Esto se refleja en el código de muestra de esa página, donde la invocación de todo create_dynamic_frame.from_catalog() , ApplyMapping.apply() y write_dynamic_frame.from_options() se pasan con un valor transformation_ctx .
Puedo entender el punto de pasar tal transformation_ctx al método create_dynamic_frame.from_catalog() , ya que AWS Glue necesita almacenar la información sobre los archivos que se han leído en el marcador bajo la clave transformation_ctx dada.
Sin embargo, no entiendo por qué esto también es necesario para métodos como ApplyMapping.apply() y write_dynamic_frame.from_options() . Dicho de otro modo, ¿cuál es la información de estado que estas operaciones necesitan almacenar en el marcador? Si no paso transformation_ctx a estos métodos, ¿qué problemas causará esto?
Yo tenía las mismas dudas sobre el bookmarking hace meses (octubre de 2019) y como la documentación que proporciona Amazon no es muy clara abrí un caso de soporte para entender más cómo se implementa.
En mi trabajo de pegamento había:
Todas estas operaciones tienen el valor transform_ctx, probé diferentes comportamientos posibles (mismo transform_ctx para todos, diferentes valores fijos, valores dinámicos, etc.).
Después de muchos mensajes con el soporte de AWS, confirman que el marcador funciona solo en la función de lectura (También dijeron que solo S3 como fuente, pero no lo probé), así que pregunto si transform_ctx es inútil en ResolveChoice (y función de escritura también) y dijeron ¡SÍ! Confirmaron que eso no hace ninguna diferencia.
Además, para la función de escritura no cambia nada, por lo que no hay lógica de marcador, no hay "función de evitar" si ya se ha ejecutado antes.