DynamoDB vs Google Cloud Bigtable

DynamoDB 與 Google Cloud Bigtable 都是依鍵分區的分散式 NoSQL 資料庫,但它們針對不同形態的工作負載。DynamoDB 是為營運型(OLTP 風格)存取而打造的無伺服器 AWS 鍵值與文件儲存。Bigtable 是一款 GCP 寬欄儲存,為分析、時間序列與高輸送量匯入工作負載設計,可擴充至 PB 等級。

你該用 DynamoDB 還是 Bigtable?

若你在 AWS 上,想要一個無伺服器、按請求付費的鍵值/文件資料庫,用於營運型存取模式且沒有叢集要運行,就選 DynamoDB。若你在 GCP 上,具有極高輸送量或 PB 規模的時間序列、IoT 或分析資料,想要 HBase/Cassandra API 相容,並能佈建叢集節點,就選 Google Cloud Bigtable。通常是雲平台與工作負載形態來決定。

DynamoDB vs Bigtable 一覽

特性DynamoDBGoogle Cloud Bigtable
資料模型NoSQL 鍵值與文件;資料表中每個具型別項目最大 400 KB寬欄儲存;一個以 row key 為鍵、稀疏且排序的 map,帶有 column families 與 cells(可以非常寬)
查詢語言 / API原生 API(GetItemQueryScan)加上 PartiQL(一種 SQL 相容語言)Bigtable API(row-key 讀取與 scan);HBase 與 Cassandra API 相容;查詢的 SQL 支援
鍵 / 存取分區鍵加可選排序鍵;存取圍繞已知模式設計單一 row key 決定排序順序;在排序鍵空間上做範圍 scan
次要索引全域次要索引(GSI)與本地次要索引(LSI)無次要索引;你要設計 row key(並可自行維護索引表)
一致性預設最終一致;可依請求選用強一致讀取單一叢集實例為強一致;多叢集實例預設為最終一致(可設定)
擴充模式自動分區;無伺服器隨需或佈建容量佈建的叢集節點(含自動擴充);跨眾多機器擴充至 PB
交易區域內跨多個項目的 ACID 交易單列原子的 read-modify-write;無一般性的多列 ACID 交易
定價 / 營運模式按請求付費(隨需)或佈建容量加儲存;無伺服器,僅限 AWS依佈建的 node-hours 加 SSD/HDD 儲存(及網路)計費;以節點為基礎,僅限 GCP
最適合的工作負載具可預測鍵存取、需要一致低延遲的營運型應用PB 規模的時間序列、IoT、分析,以及帶範圍 scan 的高輸送量匯入

DynamoDB 較佳的情況

  • 你在 AWS 上且想要零營運。 DynamoDB 是無伺服器 — 沒有叢集節點要調整大小或擴充。隨需容量按請求計費並自動隨流量擴充。
  • 你的存取是營運型且以鍵為基礎。 依 id 取得、查詢某分區,以及在分區內 filter,都自然對應到 DynamoDB,而次要索引讓你能以替代鍵查詢,無需維護另外的資料表。
  • 你想要依請求的強一致性。 DynamoDB 隨需提供強一致讀取,無需設定叢集拓撲。
  • 你需要原生的 AWS 整合。 IAM、Lambda 與 Streams 能減少膠合程式碼。

Bigtable 較佳的情況

  • 你在 GCP 上且資料達 PB 規模。 Bigtable 為跨數百或數千台機器擴充至 PB 等級而打造,透過增加節點提升輸送量。
  • 你的工作負載是時間序列、IoT 或分析型。 單一排序 row key 加上寬列適合時間排序的資料與大範圍 scan,並能餵入 Hadoop/Spark/Beam 生態系。
  • 你想要 HBase 或 Cassandra API 相容。 Bigtable 支援開放的 HBase API 標準與一套 Cassandra API,能減輕從那些系統遷移的難度。
  • 你需要極高的持續寫入輸送量,並具備可預測的佈建節點容量。

使用 DynamoDB

如果 DynamoDB 符合你的營運型工作負載,DynoTable 是一款適用於 macOS、Windows 與 Linux 的原生桌面用戶端。它讀取你標準的 AWS 憑證鏈,因此你的資料留在 DynamoDB,沒有東西要遷移。它能瀏覽與內嵌編輯項目、以視覺方式建構鍵條件與 filter,並加上一個能在遵守 DynamoDB 存取模式規則下表達關聯式形態查詢的 SQL Workbench,還有一個以你自己的 AWS Bedrock 憑證運行的 AI 助手。

免費的 DynamoDB Expression Builder 能以 SDK、CLI 與 PartiQL 形式產生鍵條件、filter 與更新運算式,無需安裝。DynoTable 是一款閉源商業應用;本頁描述它做什麼,而非它如何建構。

FAQ

DynamoDB 是以 Bigtable 為基礎嗎?

不是。它們是 AWS 與 Google 各自獨立的產品。Bigtable 於 2006 年的設計影響了更廣的 NoSQL 領域(包含 Cassandra),而 DynamoDB 可追溯至 Amazon 2007 年的 Dynamo 工作,但它們在這個領域中共享的是設計淵源,而非同一份程式碼。

Bigtable 像 DynamoDB 一樣有次要索引嗎?

沒有。Bigtable 只有單一 row key 且無次要索引 — 你要為讀取模式設計 row key,必要時自行維護索引表。DynamoDB 則提供全域與本地次要索引,讓你能直接以替代鍵查詢。

時間序列資料要用 DynamoDB 還是 Bigtable?

Bigtable 是為大規模時間序列量身打造:一個依時間範圍排序的 row key 加上寬列,適合範圍 scan 與 PB 級的量。DynamoDB 也能處理時間序列 — 常見做法是複合排序鍵加上以時間分桶的分區 — 在中等規模下是 AWS 上較簡單的選擇,但 Bigtable 是為量非常大的分析端設計。

相關內容

Last verified 2026-07-12 against the official AWS DynamoDB Developer Guide and Google Cloud Bigtable documentation. Google Cloud Bigtable is a trademark of Google LLC; referenced here for identification only.

不必透過主控台就能操作 DynamoDB

DynoTable 是一款快速的 DynamoDB 桌面用戶端 — 瀏覽表格、執行 SQL 風格的查詢,並在本機編輯項目。