AWS Glue爬虫对接DynamoDB如何配置以支持列名大小写敏感?
解决Glue与DynamoDB大小写敏感列名问题
1. 修改Glue爬虫配置以保留列名大小写
创建或编辑Glue爬虫时,进入高级属性面板,在自定义参数中添加以下键值对:
- 键:
dynamodb.case.sensitive - 值:
true
该参数会阻止爬虫将DynamoDB属性名自动转为小写,完整保留原始大小写格式。
2. 手动创建Glue表时启用大小写敏感
若爬虫配置调整后仍未解决问题,可手动创建Glue表:
- 在Glue控制台选择DynamoDB作为数据源创建表
- 在表属性中新增属性:
case-sensitive=true - 列定义阶段直接使用DynamoDB中原始大小写的属性名(例如
UserID而非userid) - 通过Athena查询时,必须用双引号包裹大小写敏感的列名,示例SQL:
SELECT "UserID", "EmailAddress" FROM your_dynamodb_table
3. 配置Athena DynamoDB连接器的大小写敏感
针对Athena侧的DynamoDB连接器,需确保启用大小写敏感配置:
- 进入Athena控制台的数据来源>连接器页面,找到目标DynamoDB连接器
- 编辑连接器的Lambda函数配置,添加环境变量
caseSensitive并设置为true
关键注意点
- Glue默认元数据存储不区分大小写,但通过上述参数可强制保留列名的大小写特性
- Athena查询大小写敏感列时,必须用双引号包裹列名,否则会自动转为小写,导致无法匹配DynamoDB中的原始属性名
内容的提问来源于stack exchange,提问作者Martin Macak
相关产品推荐
相关产品推荐

