【问题标题】:AWS Glue Job BookmarkingAWS Glue 作业书签
【发布时间】:2018-07-25 23:52:39
【问题描述】:

想看看是否有更多关于在 AWS Glue 中完成作业书签的方式的详细信息。 AWS 文档对此没有提供太多信息。我知道里面有基本的功能:

  • 启用
  • 禁用
  • 暂停
  • 重置

似乎书签是在当时发生的:

job.commit()

我可以访问它吗?可以修改它以重新处理源的某些部分吗?

【问题讨论】:

标签: pyspark aws-glue


【解决方案1】:

一些附加信息:

作业书签设计的基本策略是保存最后完成作业的开始时间。因此,当重新运行作业时,它将仅处理修改时间戳比上一个作业的开始时间更新的文件,该作业在转换上下文参数中被加入书签。

但是,这种设计的问题在于,在某些情况下,某些文件会被错误地归类为已处理。例如:假设一个文件被写入 S3,其中时间戳正好在作业开始之前,但是由于轻微的 S3 一致性延迟,此时作业对它不可见。因此,它不会在运行中处理,当作业完成时书签会更新,并且在下一次运行时它会跳过文件,因为它假定它先前已处理过,因为时间戳较早。

因此,书签功能不仅可以保存之前作业开始时间的时间戳,还可以保存该时间戳周围某个不确定范围内的文件列表。这将包括时间戳之前的时间范围内的阈值文件数。因此,下一次运行将处理该时间戳之后的任何文件以及尚未处理的不确定带中的文件。

转换上下文 (transformation_ctx) 是对已处理文件的内部记录进行更改的元素。 job.init 命令创建或加载书签,而 job.commit 初始化并提交书签。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    查看AWS Glue Developer Guide了解更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-12
      • 2021-08-13
      • 2019-11-05
      • 1970-01-01
      • 2019-11-19
      • 2018-08-05
      • 2019-08-17
      • 2019-02-21
      相关资源
      最近更新 更多