DynamoDB vs Amazon DocumentDB

兩者都是全受管的 AWS NoSQL 資料庫,但它們解決不同的問題。 DynamoDB 是無伺服器的鍵值與文件儲存;Amazon DocumentDB 是 MongoDB 相容的文件資料庫。本頁以事實方式比較兩者,讓你 在決定資料模型之前選對工具。

DynamoDB 與 DocumentDB 有什麼差別?

DynamoDB 是無伺服器的鍵值與文件資料庫,沒有伺服器或 叢集需要管理 — 你依請求量或佈建容量來擴充。 Amazon DocumentDB 是 MongoDB 相容的文件資料庫,執行於 一組執行個體叢集(一個主要節點加上讀取複本)之上。DynamoDB 使用自己的 API; DocumentDB 說 MongoDB API,因此既有的 MongoDB 應用程式、驅動程式與工具 都能對它運作。

DynamoDB vs Amazon DocumentDB 一覽

特性DynamoDBAmazon DocumentDB
資料模型鍵值與文件(帶有型別 attribute 的 item)文件(collection 中的 JSON/BSON 文件)
查詢 APIDynamoDB API(GetItemQueryScanPutItemUpdateItem)加上 PartiQLMongoDB API — 與 MongoDB 相同的驅動程式、工具,以及 mongo/mongosh shell
最大記錄大小每個 item 400 KB每份文件 16 MB(BSON,MongoDB 文件上限)
索引global secondary index(GSI)與 local secondary index(LSI)MongoDB 風格的 secondary index,包含複合索引
一致性預設最終一致;可選強一致讀取;ACID 交易從主要節點讀取為強一致;複本讀取可為最終一致(read preference);ACID 交易
擴充 / 佈建無伺服器 — 無執行個體或叢集;隨需或佈建容量以執行個體為基礎的叢集(一個主要節點加最多 15 個複本)或彈性叢集;也提供無伺服器執行個體類別
定價模式依請求付費(隨需)或佈建讀/寫容量,加上儲存依執行個體小時計算運算,加上 I/O 請求、儲存與備份儲存
最適合高擴充的鍵值與無伺服器工作負載,且存取模式已知既有 MongoDB 工作負載,以及需要在 AWS 上使用 MongoDB API 的文件應用程式

大小依各服務自身的文件為準。DynamoDB 以 二進位單位量測大小(1 KB = 1024 bytes);16 MB 的 DocumentDB 數字是標準的 MongoDB BSON 文件上限。

DynamoDB 較適合的時機

  • 你想要零基礎設施管理。 DynamoDB 沒有執行個體、 叢集或複本需要調整大小、修補或容錯移轉 — 你建立一張表並 對它讀寫即可。容量不是隨需(依請求付費)就是佈建。
  • 你的工作負載是鍵值或單表且存取模式已知。 DynamoDB 會回報事先圍繞查詢所做的設計。參見 如何在 DynamoDB 中建模資料single-table design
  • 你需要在極高擴充下有可預測的效能。 DynamoDB 提供 個位數毫秒的讀寫,且會隨流量成長維持平穩。
  • 你正在 AWS 上建構無伺服器架構。 DynamoDB 與 Lambda 及依請求付費計費自然搭配,沒有閒置執行個體成本。

DocumentDB 較適合的時機

  • 你已經在跑 MongoDB。 DocumentDB 相容 MongoDB API,因此你 既有的驅動程式、工具與應用程式碼通常只需極少 變更即可連線 — 對平移遷移到 AWS 很有用。
  • 你需要大型文件或豐富的臨時查詢。 DocumentDB 的 16 MB 文件上限遠大於 DynamoDB 的 400 KB item,而 MongoDB 查詢語言支援彈性的 filter 與彙總,無需預先設計 每一種存取模式。
  • 你偏好文件優先的模型搭配熟悉的 API。 如果你的團隊以 MongoDB collection 與文件思考,而非 partition/sort key, DocumentDB 能保留那套心智模型。

兩者都不是絕對「較好」— DynamoDB 以查詢彈性換取免管理的 無伺服器擴充,而 DocumentDB 以無伺服器的簡潔換取 MongoDB 相容性以及更大、更彈性的文件。

使用 DynamoDB

一旦你選了 DynamoDB,DynoTable 是一款桌面 DynamoDB 用戶端, 可在不使用 AWS Console 的情況下瀏覽、編輯與查詢你的表。它會讀取 你標準的 AWS 憑證,因此你的資料留在你的帳戶中,也留在 DynamoDB 裡。

由於 DynamoDB 有自己的 expression 語法,而非 SQL 或 MongoDB 查詢語言,免費的 DynamoDB Expression Builder可協助你建立 正確的 key condition、filter expression 與 update expression,並直接複製 到你的 SDK 程式碼中。若要在遷移前先核對成本, DynamoDB pricing calculator可估算 隨需與佈建容量的花費。

FAQ

DocumentDB 和 DynamoDB 一樣嗎? 不一樣。它們是兩個各自獨立的 AWS 資料庫服務。DynamoDB 是無伺服器的 鍵值與文件儲存,有自己的 API,而 Amazon DocumentDB 是 MongoDB 相容的文件資料庫,執行於一組執行個體叢集上。它們 不共用任何查詢 API,佈建、擴充與定價方式也不同。

DynamoDB 和 DocumentDB 哪個比較便宜? 視工作負載而定,因此沒有通用答案。DynamoDB 依 請求(隨需)或依佈建容量加上儲存計費,沒有閒置 執行個體成本 — 對於尖峰或低基準流量通常較便宜。DocumentDB 依 執行個體小時加上 I/O、儲存與備份計費,對於在調校得當的執行個體上執行的 穩定、高輸送量工作負載,可能較具成本效益。

DynamoDB 支援 MongoDB API 嗎? 不支援。DynamoDB 使用自己的 API(GetItemQueryScanPutItemUpdateItem),並且也支援 PartiQL,一種 SQL 相容的查詢語言。Amazon DocumentDB 才是提供 MongoDB API 相容性的 AWS 服務。

相關

Last verified 2026-07-12 against the AWS DynamoDB and Amazon DocumentDB developer guides. Amazon DocumentDB and MongoDB are trademarks of their respective owners, referenced here for identification only.

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

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