使用 AWS CLI 讀取 DynamoDB 所有項目

DynamoDB 沒有「select all」— 讀取整個表格意味著一個分頁的 Scan。好消息是:AWS CLI 會自動分頁,在幕後視需要進行多次 1 MB 的服務呼叫,並印出一份合併後的結果。

Code

aws dynamodb scan --table-name 'Music'

合併後的輸出包含表格中的每一個項目:

{
    "Items": [
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
    ],
    "Count": 1287,
    "ScannedCount": 1287
}

說明

  • 自動分頁 — 與 SDK 不同,CLI 預設會為你追蹤 LastEvaluatedKey:一個指令、每一個項目。(--no-paginate 會將它限制為單一服務呼叫 — 只有前約 1 MB。)
  • 大表格的分塊輸出 — 完整的表格會在印出前載入記憶體,因此對大表格請以分片方式讀取:--max-items 1000 印出 1000 個項目加上一個 NextToken;以 --starting-token <token> 續讀。讓 --page-size 等於 --max-items,以避免跨分塊遺漏/重複列。
  • 更少的位元組、相同的帳單--projection-expression 'Artist, SongTitle'(搭配 --expression-attribute-names 處理保留字)只回傳那些屬性,但 scan 仍會對讀取的每個項目的每個位元組計費
  • 在大表格上更快:平行 scan — 以 --segment i --total-segments N 執行 N 份,每一份各自對自己的分片自動分頁。總成本相同,但實際耗時大幅降低。
  • 順便過濾?--filter-expression 會在項目被讀取(並計費)之後丟棄它們 — 見 帶 filter 的 Scan。要 pipe 給 jq?加上 --output json,並記得那些值是 DynamoDB JSON。

改用視覺化操作

單純看看一個表格,不需要一整個終端機的 DynamoDB JSON:下載 DynoTable 即可在分頁的格線中瀏覽任何表格 — 它會為你翻過 scan 的分頁。而在你 scan 並付費之前,DynamoDB 定價計算機 會顯示完整讀取一次你的表格實際花多少。

相關範例

References

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

以視覺化方式建構此請求

在免費的 DynamoDB 查詢建構器中組合此操作 — 鍵條件、Filter、Index、Limit、排序方向與分頁迴圈 — 再把它複製成可執行的 SDK v3、CLI 或 boto3 程式。

開啟 DynamoDB 查詢建構器

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

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