使用匯出至 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 儲存貯體。請使用格式輸入目URL的地帳戶儲存貯體。s3://bucketname/prefix前置字元是選用的資料夾,可協助您保持目的地值區井然有序。

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

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

    2. 對於匯出的檔案格式,請在 DynamoDB JSON 和 Amazon 離子之間進行選擇。預設選項為 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. 匯入完成後,狀態會顯示為「使用中」(Active),您就可以開始使用表格。

  11. 小型匯入應該在幾分鐘內完成,但 TB 範圍內的表格可能需要一個多小時。

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

如果您可以在移轉期間暫停來源資料表上的寫入作業,則來源和輸出應在移轉之後完全符合。如果您無法暫停寫操作,則遷移後目標表通常會稍後於源代碼。若要 catch 蹤來源表格,您可以使用串流 (DynamoDB Streams 或適用於 DynamoDB 的 Kinesis Data Streams) 來重新執行備份或匯出後在來源表格中發生的寫入。

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

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

注意

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