Amazon DynamoDB logo

Amazon DynamoDB

Amazon DynamoDB

正常免费开源cloudAmazon Web Services62· JavaScript· MIT

Amazon DynamoDB 是 AWS 的托管 NoSQL key-value 数据库,主打高性能、自动扩展、零运维。

访问站点 ↗源码 ↗健康巡检 9 小时前
适合什么时候用

毫秒级响应,自动多 AZ 复制

先注意什么

查询模式必须围绕 partition key 设计,迁移传统 SQL schema 时心智模型差异大

第一步先查

用 AWS SDK 调 DynamoDB.createTable / putItem / query 等。绝大多数场景用 DocumentClient 高阶封装(JS)或同等 SDK,省去手写 type descriptor。本地开发可用 amazon/dynamodb-local docker 镜像,无需联网。

认证
api_key
CORS
不支持
HTTPS
注册
需要
延迟
13 ms
协议
REST
计费
paid
Stars
62

可用率 · 30 天窗口

巡检: 1可用率: 100%平均延迟: 13ms

GitHub 活跃度

62JavaScriptMIT17 未关闭 issue上次提交 110 天前
01

关于这个 API

DynamoDB 是 AWS 自研的分布式 NoSQL 数据库,与传统 RDBMS 的核心区别在于一切围绕 partition key 设计。partition key 决定数据物理分片,决定查询能力——能根据 partition key 高效查;想跨 partition key 查就只能 scan 全表(不推荐)。这种限制换来的是几乎无限的水平扩展能力和稳定的毫秒级延迟。

两种计费模式。On-demand 按每次读写请求计费,零容量规划但单位成本高;Provisioned 预购 RCU/WCU 容量,单位成本低但需自己估容量和管理 auto-scaling。突发流量或不可预测负载选 on-demand;稳定大流量选 provisioned。

Global Tables 提供跨 region 多主复制,对全球分布的应用很关键;DynamoDB Streams 提供变更数据流,配合 Lambda 几行代码就能做 CDC。它没有 join、没有 group by——复杂分析需要导出到 S3 用 Athena 查询,或用 ElasticSearch / Redshift 做次级索引。设计 schema 时最经典建议是 single-table design——把多个实体类型放进同一张表,用复合 key 区分。这与 SQL 直觉相反但符合 DynamoDB 性能模型。

02

你可以做什么

  • 1serverless 应用的主数据存储(配合 Lambda)
  • 2用户会话与认证 token 存储
  • 3高 QPS 写入的日志、事件、计数器
  • 4游戏排行榜与玩家状态
  • 5物联网设备状态聚合
03

优劣对比

优点

  • 毫秒级响应,自动多 AZ 复制
  • on-demand 模式按用量计费,无需容量规划
  • Streams + Lambda 让 CDC 极简单
  • 与 IAM 权限模型原生整合

注意事项

  • 查询模式必须围绕 partition key 设计,迁移传统 SQL schema 时心智模型差异大
  • no joins、no group by,复杂分析需配合 Athena 或导出
  • on-demand 模式高 QPS 下成本可能比 provisioned 高几倍
04

示例请求

通用模板 — 实际 endpoint 请查阅文档替换 <endpoint>。
curl https://github.com/mermade/aws2openapi/<endpoint> \
  -H "Authorization: Bearer $API_KEY"
# Some providers use X-Api-Key instead — verify in the docs.
05

快速开始

用 AWS SDK 调 DynamoDB.createTable / putItem / query 等。绝大多数场景用 DocumentClient 高阶封装(JS)或同等 SDK,省去手写 type descriptor。本地开发可用 amazon/dynamodb-local docker 镜像,无需联网。

06

常见问题

DynamoDB 免费额度多少?+

永久免费:25GB 存储 + 25 RCU + 25 WCU(足够小项目跑全年)。

On-demand 和 Provisioned 怎么选?+

突发流量、原型、低 QPS 用 on-demand 省心;稳定大流量用 provisioned 省钱。可随时切换。

能像 SQL 一样 join 多表吗?+

不能。需要预先把关联数据嵌入同一 item 或冗余写入;这是 NoSQL 范式的核心权衡。

本地能开发吗?+

能。docker pull amazon/dynamodb-local,端口转发 8000 即可,完全离线。

07

技术细节

CORS: NoHTTPS: Yes注册: Yes开源: Yes
认证方式
api_key
计费
paid
协议
REST
SDK
python, javascript, typescript, java, go, ruby, csharp
响应时间
13 ms
上次巡检
2026/5/12 07:36:33
08

接口端点

从 OpenAPI spec 自动解析。显示 12 / 53 个未弃用端点。

POST
/#X-Amz-Target=DynamoDB_20120810.BatchExecuteStatement
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.BatchGetItem
RequestItems:queryX-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.BatchWriteItem
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.CreateBackup
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.CreateGlobalTable
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.CreateTable
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.DeleteBackup
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.DeleteItem
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.DeleteTable
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.DescribeBackup
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.DescribeContinuousBackups
X-Amz-Target:header*
POST
/#X-Amz-Target=DynamoDB_20120810.DescribeContributorInsights
X-Amz-Target:header*

另有 41 个端点未显示,详见 OpenAPI spec。

09

标签

10

更多来自 Amazon Web Services 的 API