本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用匯出至 S3 並從 S3 匯入來遷移資料表
先決條件
-
您必須為資料表啟用 Point-in-Time復原 (PITR),才能執行匯出至 S3。如需詳細資訊,請參閱在 point-in-time DynamoDB 中啟用復原。
-
執行匯出的有效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 儲存貯體。使用
s3://bucketname/prefix
格式輸入目的地帳戶儲存貯體URL的 。字首是選用的資料夾,可協助您整理目的地儲存貯體。 -
選擇完整匯出 。完整匯出會輸出資料表在您所指定時間點的完整資料表快照。
-
選取目前時間以匯出最新的完整資料表快照
-
對於匯出的檔案格式 ,選擇 DynamoDB JSON和 Amazon Ion。預設選項為 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 (匯入),以啟動匯入任務。您會在資料表中看到新資料表,其中包含狀態建立 。在此期間無法存取資料表。
-
匯入完成後,狀態會顯示為作用中,您可以開始使用資料表。
-
小型匯入應在幾分鐘內完成,但 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 小時,因此您應該計劃在該時段內完成備份、還原或匯出和匯入。