本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用匯出至 S3 並從 S3 匯入來移轉表格
先決條件
-
您必須為表格啟用時間點復原 (PITR),才能執行匯出至 S3。如需詳細資訊,請參閱啟用 point-in-time 復原。
-
執行匯出的有效IAM權限。如需詳細資訊,請參閱請求在 DynamoDB 中匯出資料表。
-
足以執行匯入的有效IAM權限。如需詳細資訊,請參閱請求在 DynamoDB 中匯入資料表。
定價資訊
AWS 的費用PITR(根據表格的大小和啟用的PITR時間長度)。如果除了匯出之PITR外不需要,您可以在匯出結束後將其關閉。 AWS 此外,針對 S3 發出的請求、將匯出的資料存放在 S3 和匯入時收取費用 (根據匯入資料的未壓縮大小)。
如需有關 DynamoDB 定價的詳細資訊,請參閱 DynamoDB
注意
從 S3 匯入至 DynamoDB 時,物件的大小和數量會受到限制。如需詳細資訊,請參閱匯入配額。
步驟 1:請求將表格匯出到 Amazon S3
-
登入 AWS 管理主控台並開啟 DynamoDB 主控台。
-
在主控台左側的導覽窗格中,選擇 Exports to S3 (匯出至 S3)。
-
選擇來源資料表和目的地 S3 儲存貯體。請使用格式輸入目URL的地帳戶儲存貯體。
s3://bucketname/prefix
前置字元是選用的資料夾,可協助您保持目的地值區井然有序。 -
選擇「完整匯出」。完整匯出會輸出資料表在您所指定時間點的完整資料表快照。
-
選取目前時間以匯出最新的完整表格快照
-
對於匯出的檔案格式,請在 DynamoDB JSON 和 Amazon 離子之間進行選擇。預設選項為 DynamoDB JSON。
-
-
按一下 Export (匯出) 按鈕開始匯出。
-
小型資料表匯出應在幾分鐘內完成,但 TB 範圍內的資料表可能需要一個多小時。
步驟 2:請求從 Amazon S3 匯入資料表
-
登入 AWS 管理主控台並開啟 DynamoDB 主控台。
-
在主控台左側的導覽窗格中,選擇 Exports to S3 (從 S3 匯入)。
-
在出現的頁面上,選取Import from S3 (從 S3 匯入)。
-
輸入 Amazon S3 來源URL。您也可以使用「瀏覽 S3」按鈕找到它:
s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/
。 -
指定您是否為 S3 bucket owner (S3 儲存貯體擁有者)。
-
在「匯入檔案壓縮」下,選GZIP取以符合匯出。
-
在「匯入檔案格式」下,選取 DynamoDB JSON 以符合匯出。
-
選取「下一步」按鈕,然後選擇要建立用來儲存資料的新資料表選項。
-
選擇 Next (下一步) 以再次檢視您的匯入選項,然後按一下 Import (匯入),以啟動匯入任務。您將看到您的新表格列在狀態為「創建」的表中。在此期間無法存取資料表。
-
匯入完成後,狀態會顯示為「使用中」(Active),您就可以開始使用表格。
-
小型匯入應該在幾分鐘內完成,但 TB 範圍內的表格可能需要一個多小時。
在移轉期間保持資料表同步
如果您可以在移轉期間暫停來源資料表上的寫入作業,則來源和輸出應在移轉之後完全符合。如果您無法暫停寫操作,則遷移後目標表通常會稍後於源代碼。若要 catch 蹤來源表格,您可以使用串流 (DynamoDB Streams 或適用於 DynamoDB 的 Kinesis Data Streams) 來重新執行備份或匯出後在來源表格中發生的寫入。
當您將來源資料表匯出至 S3 時,您應該在時間戳記前開始讀取串流記錄。例如,如果匯出至 S3 的時間是下午 2:00,且匯入至目標資料表的匯入是在晚上 11 點結束,您應該在下午 1:58 啟動 DynamoDB 串流讀取。變更資料擷取表格的串流選項總結了每個串流模型的功能。
將 DynamoDB Streams 與 Lambda 搭配使用,可提供簡化的方法,在來源和目標 DynamoDB 表之間同步處理資料。您可以使用 Lambda 函數重播目標資料表中的每次寫入。
注意
項目會在 DynamoDB Streams 中保留 24 小時,因此您應該計劃在該視窗內完成備份和還原或匯出和匯入。