如何利用AWS Glue Job Bookmark基于updated_at增量读取MongoDB数据
解决AWS Glue Job Bookmark MongoDB增量加载失效问题
开启Job Bookmark全局开关
- 先确认Glue Job的Job bookmark功能已启用:在Glue控制台的Job配置页面,找到"Job bookmark"选项,设置为Enabled。全局开关未开启时,脚本内的书签配置不会生效。
修正MongoDB连接参数结构
你当前把书签配置直接放在了connection_options根层级,对于MongoDB数据源,jobBookmarkKeys等参数需要嵌套在additional_options子字典中,调整后的代码如下:
read_mongo_options = { "URI": mongo_uri, "database": "test", "collection": "test", "username": "test", "password": "test", "additional_options": { "jobBookmarkKeys": ["updated_at"], "jobBookmarkKeysSortOrder": "asc" } } datasource0 = glueContext.create_dynamic_frame_from_options( connection_type="mongodb", connection_options=read_mongo_options, transformation_ctx = "datasource0" )
验证updated_at字段有效性
- 确保MongoDB集合中的
updated_at是ISODate类型,不能是字符串或其他非有序格式,否则书签无法正确对比时间戳。 - 确认数据更新时,
updated_at字段会被同步更新,不存在空值或未更新的记录。
检查S3写入配置
- 写入S3时建议使用默认的
append模式,避免overwrite模式误删历史数据,同时确保写入逻辑没有触发全量重写:
glueContext.write_dynamic_frame.from_options( frame=datasource0, connection_type="s3", connection_options={"path": "s3://your-target-bucket/path/"}, format="parquet", transformation_ctx="datasink0" )
重置异常书签(测试用)
如果之前的书签记录存在异常,可在Glue控制台的Job详情页点击Reset job bookmark,重新运行Job让书签从头开始记录。
内容的提问来源于stack exchange,提问作者Saniya Pathan
相关产品推荐
相关产品推荐

