Solución de errores en AWS Glue (AWS Glue) - AWS Glue
Error: Resource unavailable (Recurso no disponible)Error: Could Not Find S3 Endpoint or NAT Gateway for subnetId in VPC (No se encontró el punto de conexión S3 o puerta de enlace NAT para subnetId en la VPC)Error: Inbound Rule in Security Group Required (La regla de entrada del grupo de seguridad es obligatoria)Error: Outbound Rule in Security Group Required (La regla de salida del grupo de seguridad es obligatoria)Error: Job run failed because the role passed should be given assume role permissions for the AWS Glue service (Error de trabajo porque el rol transferido debería tener premisos para asumir el rol para el servicio AWS Glue)Error: DescribeVpcEndpoints action is unauthorized. unable to validate VPC ID vpc-id (La acción DescribeVPCEndpoints no está autorizada. No se puede validar el ID de VPC vpc-id)Error: DescribeRouteTables action is unauthorized. unable to validate subnet id: Subnet-id in VPC id: vpc-id (La acción DescribeRouteTables no está autorizada. No se puede validar el ID de subred: Subnet-id en el ID de VPC vpc-id)Error: Failed to call ec2:DescribeSubnets (Error al llamar a ec2:DescribeSubnets)Error: Failed to call ec2:DescribeSecurityGroups (Error al llamar a ec2:DescribeSecurityGroups)Error: Could Not Find Subnet for AZ (No se pudo encontrar la subred de AZ)Error: Job run exception when writing to a JDBC target (Excepción de ejecución de flujo de trabajo al escribir en un destino JDBC)Error: Amazon S3 timeout (Tiempo de espera de Amazon S3)Error: Amazon S3 access denied (Acceso denegado a Amazon S3)Error: Amazon S3 access key ID does not exist (El ID de clave de acceso de Amazon S3 no existe)Error: Job run fails when accessing Amazon S3 with an s3a:// URI (Se produce un error en la ejecución de trabajo al obtener acceso a Amazon S3 con un URI de s3a://)Error: Amazon S3 service token expired (Token de servicio de Amazon S3 caducado)Error: No private DNS for network interface found (No se encontró un DNS privado para la interfaz de red)Error: Development endpoint provisioning failed (Error en el aprovisionamiento del punto de conexión de desarrollo)Error: Notebook Server CREATE_FAILED (CREATE_FAILED el servidor del bloc de notas)Error: Local notebook fails to start (El bloc de notas local no se inicia)Error: Notebook usage errors (Errores de uso del bloc de notas)Error: Running crawler failed (Error de ejecución del rastreador)Error: Partitions were not updated (Las particiones no se han actualizado)Error: Upgrading Athena Data Catalog (Error de actualización del catálogo de datos de Athena)Error: no se pudo actualizar el marcador de trabajo debido a que la versión no coincideError: A job is reprocessing data when job bookmarks are enabled (Un trabajo está reprocesando datos cuando los marcadores de trabajo están habilitados)

Solución de errores en AWS Glue (AWS Glue)

Si detecta errores en AWS Glue, utilice las siguientes soluciones como ayuda para encontrar la fuente de los problemas y corregirlos.

nota

El repositorio GitHub de AWS Glue contiene orientación adicional para solucionar problemas en la sección de preguntas frecuentes deAWS Glue.

Temas

Error: Resource unavailable (Recurso no disponible)

Si AWS Glue devuelve un mensaje de recurso no disponible, los mensajes de error o los registros le serán útiles para obtener más información sobre el problema. Las siguientes tareas describen métodos generales para solucionar problemas.

  • Por cada conexión o punto de enlace de desarrollo que utilice, compruebe que el clúster no se haya quedado sin interfaces de red elásticas.

Error: Could Not Find S3 Endpoint or NAT Gateway for subnetId in VPC (No se encontró el punto de conexión S3 o puerta de enlace NAT para subnetId en la VPC)

Compruebe el ID de la subred y el ID de la VPC indicados en el mensaje como ayuda para diagnosticar el problema.

  • Compruebe que tenga un punto de enlace de la VPC de Amazon S3 configurado, elemento obligatorio con AWS Glue. Además, compruebe la gateway de NAT si forma parte de su configuración. Para obtener más información, consulte Puntos de enlace de Amazon VPC para Amazon S3 .

Error: Inbound Rule in Security Group Required (La regla de entrada del grupo de seguridad es obligatoria)

Al menos un grupo de seguridad debe abrir todos los puertos de entrada. Para limitar el tráfico, el grupo de seguridad de origen de su regla de entrada puede restringirse al mismo grupo de seguridad.

Error: Outbound Rule in Security Group Required (La regla de salida del grupo de seguridad es obligatoria)

Al menos un grupo de seguridad debe abrir todos los puertos de salida. Para limitar el tráfico, el grupo de seguridad de origen de su regla de salida puede restringirse al mismo grupo de seguridad.

Error: Job run failed because the role passed should be given assume role permissions for the AWS Glue service (Error de trabajo porque el rol transferido debería tener premisos para asumir el rol para el servicio AWS Glue)

El usuario que define un flujo de trabajo debe tener permiso para iam:PassRole para AWS Glue.

Error: DescribeVpcEndpoints action is unauthorized. unable to validate VPC ID vpc-id (La acción DescribeVPCEndpoints no está autorizada. No se puede validar el ID de VPC vpc-id)

  • Compruebe que la política que se haya pasado a AWS Glue contenga el permiso ec2:DescribeVpcEndpoints.

Error: DescribeRouteTables action is unauthorized. unable to validate subnet id: Subnet-id in VPC id: vpc-id (La acción DescribeRouteTables no está autorizada. No se puede validar el ID de subred: Subnet-id en el ID de VPC vpc-id)

  • Compruebe que la política que se haya pasado a AWS Glue contenga el permiso ec2:DescribeRouteTables.

Error: Failed to call ec2:DescribeSubnets (Error al llamar a ec2:DescribeSubnets)

  • Compruebe que la política que se haya pasado a AWS Glue contenga el permiso ec2:DescribeSubnets.

Error: Failed to call ec2:DescribeSecurityGroups (Error al llamar a ec2:DescribeSecurityGroups)

  • Compruebe que la política que se haya pasado a AWS Glue contenga el permiso ec2:DescribeSecurityGroups.

Error: Could Not Find Subnet for AZ (No se pudo encontrar la subred de AZ)

  • Puede que la zona de disponibilidad no esté disponible para AWS Glue. Cree y utilice una nueva subred en una zona de disponibilidad que no sea la que se ha especificado en el mensaje.

Error: Job run exception when writing to a JDBC target (Excepción de ejecución de flujo de trabajo al escribir en un destino JDBC)

Cuando ejecuta un flujo de trabajo que escribe en un destino JDBC, es posible que el flujo de trabajo presente errores en los siguientes casos:

  • Si su flujo de trabajo escribe en una tabla de Microsoft SQL Server y la tabla tiene definidas columnas de tipo Boolean, la tabla tiene que definirse previamente en la base de datos de SQL Server. Cuando defina el flujo de trabajo en la consola de AWS Glue utilizando un destino de SQL Server con la opción Create tables in your data target (Crear tablas en el destino de los datos), no mapee ninguna columna de origen con ninguna columna de destino que tenga un tipo de datos Boolean. Es posible que se produzca un error cuando el flujo de trabajo se ejecute.

    Para evitar el error, ejecute la siguiente operación:

    • Elija una tabla existente con la columna Boolean (booleana).

    • Edite la transformación ApplyMapping y mapee la columna Boolean del origen con un número o una cadena del destino.

    • Edite la transformación ApplyMapping para eliminar la columna Boolean del origen.

  • Si su flujo de trabajo escribe en una tabla de Oracle, es posible que deba ajustar la longitud de los nombres de los objetos de Oracle. En algunas versiones de Oracle, la longitud de identificador máxima está limitada a 30 o 128 bytes. Este límite afecta a los nombres de tablas y de columnas de los almacenes de datos de destino de Oracle.

    Para evitar el error, ejecute la siguiente operación:

    • Dé un nombre a las tablas de destino de Oracle que esté dentro de los límites de su versión.

    • Los nombres de columna predeterminados se generan a partir de los nombres de campos de los datos. Para gestionar el error cuando los nombres de las columnas superan el límite establecido, utilice las transformaciones ApplyMapping o RenameField para cambiar el nombre de la columna para que esté dentro del límite aceptado.

Error: Amazon S3 timeout (Tiempo de espera de Amazon S3)

Si AWS Glue devuelve un error de tiempo de espera de conexión agotado, puede que se deba a que está intentando obtener acceso a un bucket de Amazon S3 ubicado en otra región de AWS.

  • Un punto de enlace de la VPC de Amazon S3 solo puede dirigir el tráfico a los buckets que se encuentran dentro de una región de AWS. Si necesita conectarse a buckets de otras regiones, puede recurrir a una gateway de NAT para evitar este problema. Para obtener más información, consulte Puerta de enlace NAT.

Error: Amazon S3 access denied (Acceso denegado a Amazon S3)

Si AWS Glue devuelve un error de acceso denegado a un bucket u objeto de Amazon S3, puede deberse a que el rol de IAM proporcionado no tiene una política con permiso para el almacén de datos.

  • Un flujo de trabajo de ETL debe tener acceso al almacén de datos de Amazon S3 utilizado como origen o destino. Un rastreador debe tener acceso al almacén de datos de Amazon S3 que rastrea. Para obtener más información, consulte Paso 2: creación de un rol de IAM para AWS Glue (AWS Glue) .

Error: Amazon S3 access key ID does not exist (El ID de clave de acceso de Amazon S3 no existe)

Si AWS Glue devuelve un error de ID de clave de acceso no existe al ejecutar un flujo de trabajo, puede deberse a uno de los motivos siguientes:

  • Un trabajo de ETL utiliza un rol de IAM para obtener acceso a los almacenes de datos. Confirme que el rol de IAM de su trabajo no se haya eliminado antes de iniciar el trabajo.

  • Un rol de IAM contiene permisos para obtener acceso a sus almacenes de datos. Confirme que todas las políticas de Amazon S3 asociadas que contengan s3:ListBucket sean correctas.

Error: Job run fails when accessing Amazon S3 with an s3a:// URI (Se produce un error en la ejecución de trabajo al obtener acceso a Amazon S3 con un URI de s3a://)

Si un trabajo devuelve un error similar a Failed to parse XML document with handler class (No se pudo analizar documento XML con la clase de controlador), podría deberse a un error al intentar enumerar centenares de archivos mediante un URI s3a://. Obtenga acceso a su almacén de datos mediante un URI s3:// en su lugar. En el siguiente seguimiento de excepciones se destacan los errores que se buscan:

1. com.amazonaws.SdkClientException: Failed to parse XML document with handler class com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$ListBucketHandler 2. at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseXmlInputStream(XmlResponsesSaxParser.java:161) 3. at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseListBucketObjectsResponse(XmlResponsesSaxParser.java:317) 4. at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:70) 5. at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:59) 6. at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62) 7. at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:31) 8. at com.amazonaws.http.response.AwsResponseHandlerAdapter.handle(AwsResponseHandlerAdapter.java:70) 9. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleResponse(AmazonHttpClient.java:1554) 10. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1272) 11. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056) 12. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743) 13. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717) 14. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) 15. at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) 16. at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) 17. at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) 18. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4325) 19. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4272) 20. at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4266) 21. at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:834) 22. at org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:971) 23. at org.apache.hadoop.fs.s3a.S3AFileSystem.deleteUnnecessaryFakeDirectories(S3AFileSystem.java:1155) 24. at org.apache.hadoop.fs.s3a.S3AFileSystem.finishedWrite(S3AFileSystem.java:1144) 25. at org.apache.hadoop.fs.s3a.S3AOutputStream.close(S3AOutputStream.java:142) 26. at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:74) 27. at org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:108) 28. at org.apache.parquet.hadoop.ParquetFileWriter.end(ParquetFileWriter.java:467) 29. at org.apache.parquet.hadoop.InternalParquetRecordWriter.close(InternalParquetRecordWriter.java:117) 30. at org.apache.parquet.hadoop.ParquetRecordWriter.close(ParquetRecordWriter.java:112) 31. at org.apache.spark.sql.execution.datasources.parquet.ParquetOutputWriter.close(ParquetOutputWriter.scala:44) 32. at org.apache.spark.sql.execution.datasources.FileFormatWriter$SingleDirectoryWriteTask.releaseResources(FileFormatWriter.scala:252) 33. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:191) 34. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:188) 35. at org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1341) 36. at org.apache.spark.sql.execution.datasources.FileFormatWriter$.org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask(FileFormatWriter.scala:193) 37. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:129) 38. at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:128) 39. at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) 40. at org.apache.spark.scheduler.Task.run(Task.scala:99) 41. at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282) 42. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 43. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 44. at java.lang.Thread.run(Thread.java:748)

Error: Amazon S3 service token expired (Token de servicio de Amazon S3 caducado)

Al transferir datos hacia y desde Amazon Redshift, se utilizan las credenciales temporales de Amazon S3, que caducan después de 1 hora. Si tiene un trabajo de larga duración, se podría producir un error. Para obtener información acerca de cómo configurar sus trabajos de larga duración para mover datos hacia y desde Amazon Redshift, consulte Movimiento de datos desde y hacia Amazon Redshift.

Error: No private DNS for network interface found (No se encontró un DNS privado para la interfaz de red)

Si un flujo de trabajo genera un error o un punto de enlace de desarrollo no aprovisiona correctamente, podría ser debido a un problema en la configuración de la red.

  • Si utiliza el DNS suministrado por Amazon, el valor de enableDnsHostnames debe establecerse en true. Para obtener más información, consulte DNS.

Error: Development endpoint provisioning failed (Error en el aprovisionamiento del punto de conexión de desarrollo)

Si AWS Glue no aprovisiona correctamente un punto de enlace de desarrollo, podría ser debido a un problema en la configuración de la red.

  • Cuando defina un punto de enlace de desarrollo, la VPC, la subred y los grupos de seguridad se validan para confirmar que cumplan determinados requisitos.

  • Si ha proporcionado la clave pública SSH opcional, compruebe que esta sea una clave pública SSH válida.

  • Consulte en la consola de la VPC que su VPC utilice la opción DHCP option set (Conjunto de opciones de DHCP) válida. Para obtener más información, consulte Conjuntos de opciones de DHCP.

  • Si el clúster permanece en estado PROVISIONING (APROVISIONAMIENTO), póngase en contacto con AWS Support.

Error: Notebook Server CREATE_FAILED (CREATE_FAILED el servidor del bloc de notas)

Si AWS Glue no consigue crear el servidor del bloc de notas de un punto de enlace de desarrollo, podría ser debido a uno de los siguientes problemas:

  • AWS Glue transfiere un rol de IAM a Amazon EC2 cuando está configurando el bloc de notas del servidor. El rol de IAM debe tener una relación de confianza con Amazon EC2.

  • El rol de IAM debe tener un perfil de instancias con el mismo nombre. Cuando crea el rol para Amazon EC2 con la consola de IAM, se crea automáticamente el perfil de instancias con el mismo nombre. Compruebe si el registro contiene un error de nombre de perfil de instancias iamInstanceProfile.name no válido. Para obtener más información, consulte Uso de perfiles de instancia.

  • Compruebe que su rol tenga permiso para obtener acceso a buckets aws-glue* en la política que pasa para crear el servidor del bloc de notas.

Error: Local notebook fails to start (El bloc de notas local no se inicia)

Si el bloc de notas local no se inicia y notifica errores del tipo que un directorio o una carpeta no se pueden encontrar, podría ser debido a uno de los siguientes problemas:

  • Si usa Microsoft Windows, asegúrese de que la variable de entorno JAVA_HOME apunte al directorio de Java correcto. Es posible actualizar Java sin actualizar esta variable; si la variable apunta a una carpeta que ya no existe, los blocs de notas Zeppelin no se iniciarán.

Error: Notebook usage errors (Errores de uso del bloc de notas)

Cuando utiliza un bloc de notas Apache Zeppelin, es posible que se produzcan errores debido a su configuración o entorno.

  • Debe proporcionar un rol de IAM con una política asociada al crear el servidor del bloc de notas. Si la política no incluye todos los permisos necesarios, es posible que se genere un error como, por ejemplo, assumed-role/name-of-role/i-0bf0fa9d038087062 is not authorized to perform some-action AccessDeniedException. Compruebe la política que se transfiere al servidor del bloc de notas en la consola de IAM.

  • Si el bloc de notas Zeppelin no se reproduce correctamente en su navegador web, compruebe los requisitos de Zeppelin para admitir el navegador. Por ejemplo, pueden requerirse versiones y una configuración concretas para el navegador Safari. Es posible que necesite actualizar su navegador o que tenga que utilizar otro navegador.

Error: Running crawler failed (Error de ejecución del rastreador)

Si AWS Glue no consigue ejecutar correctamente un rastreador para catalogar sus datos, puede ser debido a una de las siguientes razones. En primer lugar compruebe si un error aparece en la lista de rastreadores de la consola de AWS Glue. Compruebe si hay un icono de exclamación junto al nombre del rastreador y pase el ratón por encima del icono para ver si hay mensajes asociados.

  • Compruebe los registros del rastreador ejecutado en CloudWatch Logs en /aws-glue/crawlers.

Error: Partitions were not updated (Las particiones no se han actualizado)

Si las particiones no se actualizaron en el Data Catalog al ejecutar un trabajo de ETL, estas instrucciones de registro de la clase DataSink de CloudWatch Logs pueden resultarle útiles:

  • "Attempting to fast-forward updates to the Catalog - nameSpace:": muestra qué base de datos, tabla e identificador de catálogo se intenta modificar en este trabajo. Si esta instrucción no está aquí, compruebe si enableUpdateCatalog está establecido en true y se ha pasado correctamente como un parámetro getSink() o en additional_options.

  • "Schema change policy behavior:": muestra qué valor updateBehavior del esquema se ha pasado.

  • "Schemas qualify (schema compare):": será true o false.

  • "Schemas qualify (case-insensitive compare):": será true o false.

  • Si ambos son falsos y su updateBehavior no está establecido en UPDATE_IN_DATABASE, entonces el esquema de DynamicFrame tendrá que ser idéntico o contener un subconjunto de las columnas que se muestran en el esquema de la tabla del Data Catalog.

Para obtener más información sobre la actualización de particiones, consulte este artículo sobre la actualización del esquema y las particiones en el catálogo de datos.

Error: Upgrading Athena Data Catalog (Error de actualización del catálogo de datos de Athena)

Si se producen errores al actualizar su Athena Data Catalog en AWS Glue Data Catalog, consulte la Guía del usuario de Amazon Athena, tema: Actualización a AWS Glue Data Catalog paso a paso.

Error: no se pudo actualizar el marcador de trabajo debido a que la versión no coincide

Es posible que esté intentando aplicar parámetros en trabajos de AWS Glue para aplicar la misma transformación/lógica en distintos conjuntos de datos de Amazon S3. Desea realizar un seguimiento de los archivos procesados en las ubicaciones proporcionadas. Cuando ejecuta el mismo trabajo en el mismo bucket de origen y escribe en el mismo destino o en uno diferente simultáneamente (concurrencia >1), el trabajo falla con este error:

py4j.protocol.Py4JJavaError: An error occurred while callingz:com.amazonaws.services.glue.util.Job.commit.:com.amazonaws.services.gluejobexecutor.model.VersionMismatchException: Continuation update failed due to version mismatch. Expected version 2 but found version 3

Solución: establezca la concurrencia en 1 o no ejecute el trabajo simultáneamente.

Actualmente, los marcadores de AWS Glue no admiten ejecuciones de trabajos simultáneos y las confirmaciones fallarán.

Error: A job is reprocessing data when job bookmarks are enabled (Un trabajo está reprocesando datos cuando los marcadores de trabajo están habilitados)

Es posible que en algunos casos tenga habilitados marcadores de trabajo de AWS Glue, pero su trabajo de ETL está reprocesando los datos que ya se han procesado anteriormente. Compruebe si hay estas causas comunes de este error:

Simultaneidad máxima

Asegúrese de que el número máximo de ejecuciones simultáneas que para el trabajo sea 1. Para obtener más información, consulte la discusión de simultaneidad máxima en Agregar trabajos en AWS Glue. Si tiene varios trabajos simultáneas con marcadores de trabajo y la simultaneidad máxima está establecida en 1, el marcador de trabajo no funciona correctamente.

Objeto de trabajo ausente

Asegúrese de que su script de ejecución de trabajo termina con la siguiente confirmación:

job.commit()

Al incluir este objeto, AWS Glue registra la marca temporal y la ruta de la ejecución del trabajo. Si ejecuta el trabajo de nuevo con la misma ruta, AWS Glue procesa solo los archivos nuevos. Si no incluye este objeto y los marcadores de trabajo están habilitados, el trabajo vuelve a procesar los archivos ya procesados junto con los nuevos archivos y crea redundancia en el almacén de datos de destino del trabajo.

Parámetro de contexto de transformación ausente

El contexto de transformación es un parámetro opcional en la clase GlueContext, pero los marcadores de trabajo no funcionan si no lo incluye. Para solucionar este error, añada el parámetro de contexto de transformación al crear la DynamicFrame, tal y como se muestra a continuación:

sample_dynF=create_dynamic_frame_from_catalog(database, table_name,transformation_ctx="sample_dynF")

Origen de entrada

Si utiliza una base de datos relacional (una conexión JDBC) para la fuente de entrada, los marcadores de trabajo funcionan solamente si las claves de principal de la tabla se encuentran en orden secuencial. Los marcadores de trabajo funcionan en nuevas filas, pero no en filas actualizadas. Esto se debe a que los marcadores de trabajo buscan las claves principales, que ya existen. Esto no se aplica si su origen de entrada es Amazon Simple Storage Service (Amazon S3).

Hora de la última modificación

Para orígenes de entrada de Amazon S3, los marcadores de trabajo comprueban la hora de última modificación de los objetos, en lugar de los nombres de archivo, para verificar qué objetos deben volver a procesarse. Si los datos de origen de entrada se han modificado desde la última ejecución de trabajo, los archivos se vuelven a procesar al ejecutar el trabajo de nuevo.