希望查看是否有更多有关AWS Glue中完成工作书签的方式的详细信息。 AWS文档对此没有提供太多帮助。我知道里面有基本功能:
似乎书签同时发生:
job.commit()
我可以访问它吗?可以修改它以重新处理部分源代码吗?
答案 0 :(得分:0)
一些其他信息:
工作书签设计的基本策略是节省最后完成的工作的开始时间。因此,当重新运行作业时,它将仅处理修改时间戳比“转换上下文”参数中标记为上一个作业的“开始”时间新的文件。
但是,这种设计的问题在于,在某些情况下,某些文件将被错误地归类为已处理。例如:假设一个文件被写入S3,时间戳是在作业开始之前,但是由于S3一致性延迟很小,在那时作业看不到该文件。因此,它不会在运行中得到处理,该书签会在作业完成时更新,并且在下一次运行时会跳过该文件,因为它认为它是由于时间戳较早而先前已处理过。
因此,“书签”功能不仅可以保存先前作业开始时间的时间戳,还可以保存该时间戳周围某个不确定范围内的文件列表。这将包括在时间戳记之前的时间范围内的文件阈值数量。因此,下一次运行将处理该时间戳之后的任何文件以及该不确定范围内尚未处理的文件。
转换上下文(transformation_ctx)是对已处理文件的内部记录进行更改的元素。然后job.init命令创建或加载书签,而job.commit初始化并提交书签。
希望有帮助。
答案 1 :(得分:0)