使用 AWS CLI 从 DynamoDB 获取所有项目

DynamoDB 中没有"select all"——读取整张表意味着一次分页的 Scan。好消息是:AWS CLI 会自动分页,在幕后按需发起任意多次 1 MB 的服务调用,并打印一份合并后的结果。

Code

aws dynamodb scan --table-name 'Music'

合并后的输出包含表中的每个项目:

{
    "Items": [
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
    ],
    "Count": 1287,
    "ScannedCount": 1287
}

说明

  • 自动分页 — 与 SDK 不同,CLI 默认会替你跟随 LastEvaluatedKey:一条命令,取回每个项目。(--no-paginate 会把它限制为单次服务调用——仅前约 1 MB。)
  • 大表的分块输出 — 完整的表会在打印前载入内存,因此对于大表要分片读取:--max-items 1000 会打印 1000 个项目外加一个 NextToken;用 --starting-token <token> 续读。让 --page-size 等于 --max-items,以避免跨分块时漏行或重复行。
  • 更少字节,同样账单--projection-expression 'Artist, SongTitle'(对保留字配合 --expression-attribute-names)只返回那些属性,但一次 scan 仍会对读取的每个项目的每个字节计费
  • 大表上更快:并行 scan — 用 --segment i --total-segments N 运行 N 份副本,每份都对自己的分片自动分页。总成本相同,但墙钟时间大幅降低。
  • 顺手做过滤?--filter-expression 会在项目被读取(并计费)之后才丢弃它们——见 带过滤器的 Scan。管道传给 jq?加上 --output json,并记住这些值是 DynamoDB JSON。

可视化操作

浏览一张表不需要满终端的 DynamoDB JSON:下载 DynoTable 即可在分页网格中浏览任何表——它会替你翻阅 scan 的各页。而在你 scan 并付费之前,DynamoDB 定价计算器会显示完整读取你的表实际花费多少。

相关示例

References

Last verified 2026-07-13 against the official AWS documentation linked above.

可视化构建此请求

在免费的 DynamoDB 查询构建器中组装此操作 —— 键条件、筛选、索引、Limit、排序方向和分页循环 —— 再把它作为可运行的 SDK v3、CLI 或 boto3 程序复制回来。

打开 DynamoDB 查询构建器

无需控制台即可使用 DynamoDB

DynoTable 是面向 DynamoDB 的快速桌面客户端 —— 浏览表、运行 SQL 风格的查询,并在本地编辑项。