使用匯出至 S3 並從 S3 匯入來遷移資料表 - Amazon DynamoDB

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

使用匯出至 S3 並從 S3 匯入來遷移資料表

先決條件

定價資訊

AWS 的費用 PITR(根據資料表的大小和PITR啟用的時間長度)。如果除了匯出PITR之外不需要,您可以在匯出結束後將其關閉。 AWS 也會針對 S3 提出的請求、將匯出資料儲存在 S3 中以及匯入 (根據匯入資料未壓縮的大小) 收取費用。

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

注意

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

步驟 1:請求將資料表匯出至 Amazon S3

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

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

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

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

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

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

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

  6. 小型資料表匯出應在幾分鐘內結束,但 TB 範圍內的資料表可能需要超過一小時的時間。

步驟 2:從 Amazon S3 請求資料表匯入

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

  2. 在主控台左側的導覽窗格中,選擇 Exports to 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. 選擇 Next (下一步) 以再次檢視您的匯入選項,然後按一下 Import (匯入),以啟動匯入任務。您會在資料表中看到新資料表,其中包含狀態建立 。在此期間無法存取資料表。

  10. 匯入完成後,狀態會顯示為作用中,您可以開始使用資料表。

  11. 小型匯入應在幾分鐘內完成,但 TB 範圍內的資料表可能需要超過一小時的時間。

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

如果您可以在遷移期間暫停來源資料表上的寫入操作,則來源和輸出應在遷移後完全相符。如果您無法暫停寫入操作,目標資料表通常會在遷移後略落後於來源。若要追查來源資料表,您可以使用串流 (DynamoDB Streams 或 Kinesis Data Streams for DynamoDB) 來重播自備份或匯出以來來源資料表中發生的寫入。

當您將來源資料表匯出至 S3 時,您應該在時間戳記之前開始讀取串流記錄。例如,如果匯出至 S3 的時間為下午 2:00,而目標資料表的匯入在下午 11:00 結束,您應該在下午 1:58 啟動 DynamoDB 串流讀取。變更資料擷取表的串流選項總結了每個串流模型的功能。

將 DynamoDB Streams 與 Lambda 搭配使用,可提供簡化的方法來同步來源和目標 DynamoDB 資料表之間的資料。您可以使用 Lambda 函數來重播目標資料表中的每個寫入。

注意

項目會保留在 DynamoDB Streams 中 24 小時,因此您應該計劃在該時段內完成備份、還原或匯出和匯入。