如何在AWS SDLF流水线的source_mappings.json中配置数值文件名匹配?
解决AWS SDLF中无日期、带连续数字文件名的流转配置问题
针对你遇到的AWS Serverless DataLake Framework(SDLF)中,文件名带4位连续数字(如file_1084.dat、file_1085.dat)无法匹配流转的问题,以下是可行的配置方案:
核心配置调整
SDLF的source_mappings.json中,IncludePatterns采用Globbing匹配规则而非标准正则,因此\d{4}这类正则语法不生效;同时因文件名无日期,需调整日期相关配置项:
修改后的配置示例
[ { "SourceId": "ABC123", "Target": { "Location": { "Subdirectory": "domainxxx/systemyyy/filezzz/file_XX" } }, "Source": { "Location": { "IncludePatterns": ["systemyyy/file_[0-9][0-9][0-9][0-9].dat"] } }, "System": "systemyyy" } ]
关键调整说明
- 精确匹配4位数字文件名:用
[0-9][0-9][0-9][0-9]替代正则语法,匹配文件名中固定4位的连续数字,确保只命中目标格式的文件。 - 移除日期相关配置:删除
Source下的DatePattern字段(该字段用于从文件名提取日期),同时将Target路径中的%Y%m%d占位符移除,避免生成无效路径。 - 灵活匹配任意长度数字:如果需要兼容不同长度的数字后缀,可将
IncludePatterns简化为["systemyyy/file_*.dat"],匹配所有以file_开头、.dat结尾的文件。
验证注意事项
- 确保Landing桶内的文件路径与
IncludePatterns中的路径结构一致(比如文件在systemyyy子目录下就保留前缀;若在根目录则去掉前缀)。 - 配置完成后,可上传测试文件到Landing桶,检查是否正常流转到Raw阶段的目标路径。
内容的提问来源于stack exchange,提问作者Artemination
相关产品推荐
相关产品推荐

