使用匯出至 S3 並從 S3 匯入的方式移轉資料表 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用匯出至 S3 並從 S3 匯入的方式移轉資料表

先決條件

定價資訊

AWS PITR 的費用 (根據資料表的大小和啟用 PITR 的時間長度)。若僅為匯出啟用 PITR,可在匯出完成後關閉。 AWS 也會針對 S3 請求、匯出資料儲存與匯入作業 (依未壓縮資料大小) 收費。

如需 DynamoDB 定價詳細資訊,請參閱 DynamoDB 定價

注意

從 S3 匯入至 DynamoDB 時,物件大小與數量皆有限制。如需詳細資訊,請參閱匯入配額

請求將資料表匯出至 Amazon S3

  1. 登入 AWS 管理主控台並開啟 DynamoDB 主控台。

  2. 在主控台左側的導覽窗格中,選擇 Exports to S3 (匯出至 S3)。

  3. 選擇來源資料表和目的地 S3 儲存貯體。使用 s3://bucketname/prefix 格式輸入目標帳戶的儲存貯體 URL。/prefix 是可協助整理目的地儲存貯體的選用資料夾。

  4. 選取完整匯出。完整匯出會在您指定的時間點輸出資料表的完整快照。

    1. 選取目前時間以匯出最新的完整資料表快照。

    2. 對於匯出的檔案格式,選擇 DynamoDB JSON 和 Amazon Ion 兩者之一。預設為 DynamoDB JSON。

  5. 按一下 Export (匯出) 按鈕開始匯出。

  6. 小型資料表匯出通常在數分鐘內完成,但 TB 級資料表可能需超過一小時。

從 Amazon S3 請求匯入資料表

  1. 登入 AWS 管理主控台並開啟 DynamoDB 主控台。

  2. 在主控台左側的導覽窗格中,選擇 Import from S3 (從 S3 匯入)。

  3. 在出現的頁面上,選取 Import from S3 (從 S3 匯入)。

  4. 輸入 Amazon S3 來源 URL。您也可以使用瀏覽 S3 按鈕找到它。預期的路徑格式為 s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/data/

  5. 指定您是否為 S3 bucket owner (S3 儲存貯體擁有者)。

  6. 匯入檔案壓縮中,選取 GZIP 以符合匯出。

  7. 匯入檔案格式中,選取 DynamoDB JSON 以符合匯出。

  8. 選取下一步。在指定資料表詳細資訊中,選取要建立的新資料表選項以儲存您的資料。

  9. 選取下一步。在設定資料表設定中,如有需要可自訂其他設定。

  10. 選擇 Next (下一步) 以再次檢視您的匯入選項,然後按一下 Import (匯入),以啟動匯入任務。您會在從 S3 匯入下看到新資料表,其狀態為匯入中。此期間無法存取資料表。小型匯入通常在數分鐘內完成,但 TB 級資料表可能需超過一小時。

  11. 匯入完成後,狀態將顯示為啟用,即可開始使用資料表。

在移轉期間保持資料表同步

若能在移轉期間暫停來源資料表的寫入操作,來源與輸出將在移轉後完全一致。若無法暫停寫入操作,移轉後目標資料表通常會落後來源。若要使來源資料表同步,可使用串流 (DynamoDB Streams 或適用於 DynamoDB 的 Kinesis Data Streams) 重播自備份或匯出以來的寫入。

應在將來源資料表匯出至 S3 的時間戳記之前開始讀取串流記錄。例如,若匯出至 S3 發生於下午 2:00,而目標資料表匯入於下午 11:00 完成,應在下午 1:58 啟動 DynamoDB 串流讀取。「變更資料擷取」的串流選項表摘要說明各串流模型的功能。

使用 DynamoDB Streams 搭配 Lambda,可提供精簡的資料同步方法,讓來源與目標 DynamoDB 資料表保持一致。可使用 Lambda 函式重播目標資料表中的每筆寫入。

注意

項目會在 DynamoDB Streams 中保留 24 小時,因此應規劃在此期間內完成備份與還原,或匯出與匯入作業。