DynamoDB 能匯出到 S3 嗎?

可以。DynamoDB 內建了匯出到 Amazon S3 的功能,能把資料表在過去 35 天內任一時間點的完整或增量快照,寫成 DynamoDB JSON 或 Amazon Ion。它需要時間點復原(PITR),以非同步方式執行,而且不消耗讀取容量。

完整匯出與增量匯出

完整匯出會擷取你所選時間點上的整張資料表(資料加上本機次要索引)。而增量匯出則只擷取在你指定的時間窗(15 分鐘到 24 小時之間)內變更、更新或刪除的資料。兩者都以非同步方式執行,不影響資料表的效能或可用性。

需求與目的地

唯一的先決條件是資料表已啟用 PITR;匯出讀取的是你的連續備份,而不是線上資料表。你可以匯出到另一個 AWS 帳戶、甚至另一個區域的 S3 儲存貯體,而且資料是端到端加密的。

輸出不是 CSV

匯出寫出的是 DynamoDB JSON 或 Amazon Ion — 也就是帶著 {"S": ...}{"N": ...} 描述符的型別標記傳輸格式 — 絕不是 CSV。想從一次匯出得到試算表,就得再繞一趟 Athena、Glue 或一段腳本;匯出成 CSV 指南逐一說明了每一種做法。

成本

完整匯出是依所選時間點的資料表大小計費;增量匯出則依從連續備份處理的資料量計費(最低收費 10 MB)。S3 儲存與 PUT 請求另外計費。

匯出不是讀取資料表的便宜方法

拿 us-east-1 的一張 100 GB 資料表來估價。匯出是每 GB 0.10 美元,所以是 10.00 美元。用最終一致的 Scan 讀同樣的 100 GB 會消耗 13,107,200 個讀取單位,在隨需模式下是 1.64 美元。在你把它的先決條件算進去之前,匯出就已經貴了六倍:PITR 是每 GB 每月 0.20 美元,所以讓那張資料表保持可匯出的狀態,不管你有沒有真的執行匯出,每個月都是 20 美元。

這筆錢買到的是容量。那次 Scan 在 5,000 RCU 下大約要 44 分鐘,而且每一個單位都花在你的應用程式正在讀的同一張資料表上,所以在一張繁忙的佈建容量資料表上,你要嘛節流了生產流量,要嘛為這件事多佈建容量。匯出完全不碰資料表容量、不可能節流任何東西,而且交給你一個一致的時間點。資料表很小、閒置,或只需要其中一部分時,就用掃描;資料表是活的,就用匯出。

請把 1.64 美元當成一個底線。AWS 指出,稀疏或非常大的資料表,可能被收取超過實際掃描資料量的讀取單位。

深入了解

完整流程請跟著匯出成 CSV 指南走,在 DynamoDB JSON 轉換器裡把匯出的項目拆開,或下載 DynoTable 直接從桌面瀏覽與匯出資料表資料。

參考資料

最後驗證於 2026-07-13,對照上方連結的 AWS 官方文件。

成本於 2026-07-28 估算,匯出、PITR 與請求費率讀自 AWS Price List API 的 us-east-1 資料。Scan 數字所依據的 4 KB 進位方式是實測而非假設:在 DynamoDB Local 3.3.0 上掃描 998 KB 的項目回報了 125 個讀取單位,符合彙總模型,並排除了逐項目進位的模型。

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

一款快速的 DynamoDB 桌面用戶端,可執行 DynamoDB 無法執行的真正 SQL — JOINs、GROUP BY、聚合 — 並支援視覺化編輯與使用你自己的 Bedrock 金鑰的 AI 代理。

30 天免費試用,無需信用卡 — 之後為無時間限制的免費方案。