使用AWS Glue Crawler的Delta Lake表CloudFormation模板报空Delta目标错误
解决AWS CloudFormation创建Delta Lake爬虫时的"Invalid delta target with empty delta tables"错误
你在使用CloudFormation模板创建启用写入清单(WriteManifest)的Delta Lake爬虫时,遇到报错"Invalid delta target with empty delta tables",但通过AWS控制台使用相同数据路径可成功操作。
你的原模板存在结构错误:
AWSTemplateFormatVersion: "2010-09-09" AWSTemplateFormatVersion: "2010-09-09" Description: **Delta lake tables using aws glue crawler** Resources: Crawl: Type: AWS::Glue::Crawler Properties: Name: crawler_name DatabaseName: database_name Role: role_arn Targets: DeltaTargets: - DeltaTables: - S3_path_for_delta_table_folder (having deltalogs as child inside) - WriteManifest: True
错误原因
DeltaTargets的结构不符合CloudFormation的要求:你把DeltaTables和WriteManifest拆分成了两个独立的数组元素,CloudFormation会将它们识别为两个不同的Delta目标。第二个目标未指定DeltaTables路径,因此触发"空Delta表"的报错。
修正后的模板
AWSTemplateFormatVersion: "2010-09-09" Description: Delta lake tables using aws glue crawler Resources: Crawl: Type: AWS::Glue::Crawler Properties: Name: crawler_name DatabaseName: database_name Role: role_arn Targets: DeltaTargets: - DeltaTables: - S3_path_for_delta_table_folder (having deltalogs as child inside) WriteManifest: True
关键修正点
- 将
DeltaTables和WriteManifest放在同一个-开头的对象条目下,确保属于同一个Delta目标配置 - 调整
DeltaTables数组元素的缩进,保证YAML语法解析正确 - 移除重复的
AWSTemplateFormatVersion行(原模板中重复声明了该字段,属于冗余语法)
内容的提问来源于stack exchange,提问作者Swaraj Sontakke
相关产品推荐
相关产品推荐

