You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从S3导入CSV到DynamoDB,如何指定键类型以创建GSI?

DynamoDB导入数据类型与GSI创建问题解决方案

一、强制CSV导入指定数据类型:先建表再导入

完全可以通过先创建表再导入数据的方式,指定updatedAt的数值类型,步骤如下:

  • 提前在DynamoDB控制台或通过CLI创建表,明确将updatedAt字段的类型设置为N(数值型),同时配置好表的主键结构。
  • 启动S3导入流程时,选择**"导入到现有表"**选项,而非"创建新表"。导入过程会严格匹配你预先定义的字段类型,CSV中的Unix时间戳会被自动解析为数值存入updatedAt,不会再变成字符串。
  • 注意:CSV文件中updatedAt列的内容必须是纯数字格式,不能包含引号、逗号或其他非数字字符,否则会触发类型不匹配的导入错误。

二、JSON导入报错的排查方向

CloudWatch的"Unexpected token"错误通常是JSON格式不符合DynamoDB导入要求导致的,可从以下点排查:

  • 确保JSON文件采用每行一个独立JSON对象的格式,不能用数组包裹所有条目(例如正确格式:{"id": "123", "updatedAt": 1620000000},错误格式:[{"id": "123"}, {"id": "456"}])。
  • 检查文件中是否存在未转义的特殊字符,比如未闭合的引号、非法换行符,这些都会破坏JSON语法结构。
  • 可使用本地工具jq批量校验JSON文件的合规性,命令示例:jq '.' your-file.json,若格式错误会直接提示问题位置。

三、GSI创建与查询逻辑实现

当updatedAt字段为数值型后,直接在DynamoDB表的配置界面创建GSI:

  • 将updatedAt设置为GSI的分区键或排序键,根据你的查询需求选择。
  • 配置好GSI的读写容量模式(按需或预置),即可基于该GSI编写数值范围查询等逻辑。

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:55:01