Amazon web services 为什么在调用AWS Glue bookmark的转换和接收操作时需要设置'transformation_ctx'参数?

Amazon web services 为什么在调用AWS Glue bookmark的转换和接收操作时需要设置'transformation_ctx'参数?,amazon-web-services,aws-glue,Amazon Web Services,Aws Glue,AWS Glue Bookmark文档()似乎建议必须将transformation\u ctx参数传递给source、transform和sink操作,书签才能工作。这反映在该页面中的示例代码中,其中所有create\u dynamic\u frame.from\u catalog()、ApplyMapping.apply()和write\u dynamic\u frame.from\u options()的调用都通过一个transformation\u ctx值传递 我可以理解将这样一个转换

AWS Glue Bookmark文档()似乎建议必须将
transformation\u ctx
参数传递给source、transform和sink操作,书签才能工作。这反映在该页面中的示例代码中,其中所有
create\u dynamic\u frame.from\u catalog()
ApplyMapping.apply()
write\u dynamic\u frame.from\u options()
的调用都通过一个
transformation\u ctx
值传递

我可以理解将这样一个
转换\u ctx
传递到
创建动态框架的意义。从\u catalog()
方法,因为AWS Glue需要在给定的
转换\u ctx
键下存储书签中读取的文件的信息


但是,我不明白为什么像
ApplyMapping.apply()
write\u dynamic\u frame.from\u options()
这样的方法也需要这样做。换句话说,这些操作需要存储在书签中的状态信息是什么?如果我不向这些方法传递
transformation\u ctx
,这会导致什么问题?

几个月前(2019年10月),我对书签也有同样的疑问,因为Amazon提供的文档不是很清楚,我打开了一个支持案例,以了解它是如何实现的

在我的胶水工作中有:

  • 从S3读取函数(粘合上下文。创建动态框架。从选项)
  • 一个选择
  • 对红移的写入函数(glue_context.write_dynamic_frame.from_jdbc_conf)
所有这些操作都有转换值,我测试了不同的可能行为(所有操作都有相同的转换值、不同的固定值、动态值ecc)

在AWS支持的许多消息之后,他们确认书签只在读取函数上起作用(他们也说只有S3作为源,但我没有测试它),所以我问转换在ResolveChoice(以及写入函数)中是否无用,他们说是的!他们确认这没有任何区别


此外,对于write函数,它不会更改任何内容,因此没有书签逻辑,如果它以前已经运行过,则没有“避免函数”。

谢谢您的回答。他们的文档确实需要改进;)。顺便说一句,你能详细解释一下“它只改变输出文件的名称”是什么意思吗?您的意思是s3文件名将根据您是否将transformatino_ctx传递给writer方法而有所不同吗?对不起,我编辑了答案,我在输出中对不同的名称有错误