DynamoDB vs Google Cloud Bigtable
DynamoDB 和 Google Cloud Bigtable 都是按键分区数据的分布式 NoSQL 数据库,但它们面向不同形态的工作负载。DynamoDB 是一款面向 AWS 的无服务器键值与文档存储,为操作型(OLTP 风格)访问而构建。Bigtable 是一款 GCP 宽列存储,专为扩展至 PB 级的分析、时序和高吞吐量摄取工作负载而设计。
你该用 DynamoDB 还是 Bigtable?
如果你在 AWS 上,想要一个无服务器、按请求付费的键值/文档数据库来支持操作型访问模式,且无需运维集群,那么选择 DynamoDB。如果你在 GCP 上,拥有超高吞吐量或 PB 级的时序、物联网或分析数据,想要 HBase/Cassandra API 兼容性,并且可以预置集群节点,那么选择 Google Cloud Bigtable。通常由云平台和工作负载形态决定。
DynamoDB vs Bigtable 速览
| 特性 | DynamoDB | Google Cloud Bigtable |
|---|---|---|
| 数据模型 | NoSQL 键值与文档;表中项目类型化,最大 400 KB | 宽列存储;以行键为键的稀疏、有序映射,具有列族和单元格(可以非常宽) |
| 查询语言 / API | 原生 API(GetItem、Query、Scan)外加 PartiQL——一种 SQL 兼容语言 | Bigtable API(行键读取和扫描);HBase 和 Cassandra API 兼容;支持 SQL 查询 |
| 键 / 访问 | 分区键加可选排序键;访问围绕已知模式设计 | 单个行键决定排序顺序;在有序键空间上进行范围扫描 |
| 二级索引 | 全局二级索引(GSI)和本地二级索引(LSI) | 无二级索引;你需要设计行键(并可自行维护索引表) |
| 一致性 | 默认最终一致性;可按请求使用强一致性读取 | 单集群实例上强一致性;多集群实例默认最终一致性(可配置) |
| 扩展模型 | 自动分区;无服务器按需或预置容量 | 预置的集群节点(带自动扩缩);跨众多机器扩展至 PB 级 |
| 事务 | 区域内跨多个项目的 ACID 事务 | 单行原子读-改-写;无通用的多行 ACID 事务 |
| 定价 / 运维模型 | 按请求(按需)或预置容量外加存储;无服务器,仅限 AWS | 按预置的节点小时数外加 SSD/HDD 存储(及网络)计费;基于节点,仅限 GCP |
| 最佳适用工作负载 | 需要一致低延迟、键访问可预测的操作型应用 | PB 级时序、物联网、分析,以及带范围扫描的高吞吐量摄取 |
何时 DynamoDB 是更好的选择
- 你在 AWS 上,想要零运维。 DynamoDB 是无服务器的——没有集群节点需要定容或扩展。按需容量按请求计费,并自动适应流量。
- 你的访问是操作型且基于键的。 按 id 获取、查询某个分区,以及在分区内过滤都能自然地映射到 DynamoDB,而二级索引让你无需维护单独的表即可按备用键查询。
- 你想要按请求的强一致性。 DynamoDB 提供按需的强一致性读取,无需配置集群拓扑。
- 你需要原生的 AWS 集成。 IAM、Lambda 和 Streams 减少了粘合代码。
何时 Bigtable 是更好的选择
- 你在 GCP 上,拥有 PB 级数据。 Bigtable 专为跨数百或数千台机器扩展至 PB 级而构建,通过增加节点来提升吞吐量。
- 你的工作负载是时序、物联网或分析型的。 单个有序行键加宽行适合时间有序的数据和大范围扫描,并能对接 Hadoop/Spark/Beam 生态。
- 你想要 HBase 或 Cassandra API 兼容性。 Bigtable 支持开放的 HBase API 标准和 Cassandra API,便于从这些系统迁移。
- 你需要非常高的持续写入吞吐量,并具备可预测的预置节点容量。
使用 DynamoDB
如果 DynamoDB 适合你的操作型工作负载,DynoTable 是一款面向它的原生桌面客户端,支持 macOS、Windows 和 Linux。它读取你标准的 AWS 凭证链,因此你的数据留在 DynamoDB 中,无需迁移任何东西。它能浏览并就地编辑项目、可视化地构建键条件和过滤器,并新增了一个 SQL Workbench,可在 DynamoDB 的访问模式规则内表达关系形态的查询,还带有一个运行在你自己 AWS Bedrock 凭证上的 AI 助手。
免费的 DynamoDB Expression Builder 无需安装即可生成 SDK、CLI 和 PartiQL 形式的键条件、过滤和更新表达式。DynoTable 是一款闭源商业应用;本页描述它做什么,而不是它如何构建。
FAQ
DynamoDB 是基于 Bigtable 的吗?
不是。它们是来自 AWS 和 Google 的独立产品。Bigtable 的 2006 年设计影响了更广泛的 NoSQL 领域(包括 Cassandra),而 DynamoDB 可追溯到 Amazon 2007 年的 Dynamo 工作,但它们在这一领域共享的是设计脉络,而非代码库。
Bigtable 有像 DynamoDB 那样的二级索引吗?
没有。Bigtable 只有单个行键,没有二级索引——你需要针对读取模式设计行键,如有需要,自行维护索引表。DynamoDB 则提供全局和本地二级索引,让你可以直接按备用键查询。
时序数据该选 DynamoDB 还是 Bigtable?
Bigtable 专为大规模时序而生:按时间范围排序的行键加宽行适合范围扫描和 PB 级数据量。DynamoDB 也能处理时序数据——通常采用复合排序键和按时间分桶的分区——在 AWS 上中等规模时是更简单的选择,但 Bigtable 是为超高容量的分析端而设计的。
相关
- 了解 DynamoDB 分区键的工作原理 和面向时间有序数据的 排序键策略。
- 在 DynamoDB 一致性指南 和 何时使用 DynamoDB 中理解读取模式。
- 用免费的 DynamoDB Expression Builder 快速构建查询。
- 下载 DynoTable 来浏览、查询和编辑你的 DynamoDB 表。
Last verified 2026-07-12 against the official AWS DynamoDB Developer Guide and Google Cloud Bigtable documentation. Google Cloud Bigtable 是 Google LLC 的商标;此处引用仅用于标识目的。